2011 m. balandžio 13 d., trečiadienis

Kelios universitetinės programos

Pavyzdys vienos iš pirmųjų (gana paprastų) programų, kurias reikėjo parašyti per Pascal'io laborus (sąlyga komentare, t.y. figūriniuose skliaustuose):

Program skaiciu_seka;
{A) Sekos pabaigos požymis: bet kuris skaicius,
kuris didesnis už prieš tai ivesta skaiciu (jis
priklauso sekai);
B) „Statistika“: didžiausias skirtumas tarp
gretimu sekos nariu.}
var a, b, maX, y :integer;
begin
read(a);
read(b);
maX:=a-b;
while a>=b do
begin
y:=a-b;
if y>=maX then maX:=y;
a:=b;
writeln('ivesk dar sk.: ');
read(b);
end;
writeln('didziausias skirtumas yra: ', maX);
end.


Vėliau mokėmės masyvus, ir juos supratau gana greitai ir ėmiau dažnai naudoti: nereikai rašyti daug "copy+paste", ir nereikia kurti krūvas įvairių kintamųjų.
Štai programos, kuri prašo suvesti 4x4 matricos elementus, ir kuri išrenka MAX ir MIN skaičių iš stulpelių, kodas (2010-10-03):

program gyvas_masyvas_RS_2010_10_03;
const N=4;
e=3;
var A: array [1..N] of array [1..N] of integer;
B: array [1..N] of integer; {max}
C: array [1..N] of integer; {min}
i,j : byte;

begin

for i:=1 to N do
begin
for j:=1 to N do
read(A[i][j]) ;
writeln;
end;

for i:=1 to N do
for j:=1 to N do
if j< A[i][j] then B[j]:=A[i][j];

for i:=2 to N do
for j:=1 to N do
if C[j] > A[i][j] then C[j]:=A[i][j];

writeln;
writeln('Didziausios reiksmes stulpeliuose: ');

for j:=1 to N-1 do
write(B[j]:e);
writeln(B[j+1]:e);

writeln('Maziausios reiksmes stulpeliuose: ');

for j:=1 to N-1 do
write(C[j]:e);
writeln(C[j+1]:e);

readln;
readln;

end.

Komentarų nėra:

Rašyti komentarą