pascal / delphi
Dinamično povezan seznam - realnih števil

// deklaracija elementa seznama
type kazalec=^element;
element=record
vrednost: real;
naslednji: kazalec;
end;
var
prvi: kazalec=nil; // kazalec na prvi element v seznamu
zadnji: kazalec=nil; // kazalec na zadnji element v seznamu
temp: kazalec; // pomožni kazalec
begin
// vstavi novi element na začetek seznama
new(temp);
temp^.vrednost:=1.1;
temp^.naslednji:=prvi;
prvi:=temp;
// vstavi novi element na konec seznama
if zadnji=nil then // če je to prvi element seznama
begin
new(temp);
temp^.vrednost:=1.2;
temp^.naslednji:=prvi;
prvi:=temp;
zadnji:=temp;
end
else // drugače
begin
new(temp);
temp^.vrednost:=1.2;
temp^.naslednji:=nil;
zadnji^.naslednji:=temp;
zadnji:=temp;
end;
// pregled vseh vrednosti seznama
temp:=prvi;
while temp<>nil do // ponavljaj dokler ne pridemo do zadnjega elementa (nil)
begin
writeln(temp^.vrednost); // izpisi posamezni element
temp:=temp^.naslednji; // naslednji element
end;
// zbrisi vse elemente
while prvi<>nil do // ponavljaj dokler ne pridemo do zadnjega elementa (nil)
begin
temp:=prvi;
prvi:=temp^.naslednji;
dispose(temp); // izbriši element
end;
end.
Matrike - seštevanje dveh matrik dimenzije (4x4)
type matrika=array[1..4, 1..4] of real;
var
m1, m2, m3: matrika;
procedure sestej(a: matrika; b: matrika; var c: matrika); // a, b:vh. par. c:izh. parameter
var i, j: integer;
begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
c[i, j]:=a[i, j]+b[i, j];
end;
end;
end;
procedure izpisi(m: matrika);
var i, j: integer;
begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
write(m[i, j], ' ');
end;
writeln;
end;
end;
// glavni program
begin
sestej (m1, m2, m3); // sestej matriki m1 in m2 - rezultat v m3
izpisi(m3); // izpiši rezultat
end.
Textovne datoteke
var
f: textfile;
s: string;
begin
// pisanje v text datoteko
assignfile(f, 'ime_datoteke.txt'); // ime datoteke v katero bomo pisali
rewrite(f); // pisemo od zacetka (če želimo dodajati - namesto rewrite uporabimo append
writeln(f, 'bla bla');
closefile(f); // zapremo datoteko
// branje iz text datoteke
assignfile(f, 'ime_datoteke.txt'); // ime datoteke s katere bomo brali
reset(f);
while not eof(f) do // beremo toliko časa dokler ne pridemo do konca datoteke
begin
readln(f,s); // v s shrani eno vrstico iz datoteke
end;
closefile(f); // zapremo datoteko
end.
Binarne datoteke
type oseba=record
ime: string[40];
starost: integer;
end;
var
a, b: oseba;
f: file of oseba;
begin
// pisanje v binarno datoteko
assignfile(f, 'ime_datoteke.dat'); // ime datoteke v katero bomo pisali
rewrite(f); // pišemo od začetka (če želimo dadajati - namesto rewrite uporabimo append
a.ime:='Janez';
a.starost:=10;
write(f, a);
closefile(f); // zapremo datoteko
// branje iz binarne datoteke
assignfile(f, 'ime_datoteke.dat'); // ime datoteke s katere bomo brali
reset(f);
while not eof(f) do // beremo toliko časa dokler ne pridemo do konca datoteke
begin
read(f, b); // v b shranimo en zapis iz datoteke
end;
closefile(f); // zapremo datoteko
end.
|