A. Considerații teoretice
B. Exemple
const lmax = 1000; {lungimea maxima a unui sir} type mystring = record lng: 0..lmax; s: array[1..lmax] of char end;
unit Unitati; interface const lmax = 1000; type mystring = record lng: 0..lmax; s: array[1..lmax] of char end; procedure ReadMyString(var SirulDeCitit: mystring); procedure WriteMyString(SirulDeScris: mystring); procedure Concatenare(Primul, AlDoilea: mystring; var Rezultat: mystring); function Valoare(Sir: mystring): longint; procedure GenSir(Numar: longint; var Sir: mystring) implementation ... procedure Concatenare; var i: integer; begin for i := 1 to Primul.lng do Rezultat.s[i] := Primul.s[i]; for i := 1 to AlDoilea.lng do Rezultat.s[i + Primul.lng] := AlDoilea.s[i]; Rezultat.lng := Primul.lng + AlDoilea.lng end; {concatenare} ... end.
program TestUnitati; uses Unitati; var A,B,C: mystring; begin ReadMyString(A); ReadMyString(B); WriteMyString(A); writeln; WriteMyString(B); writeln; writeln('Val (A)=', Valoare(A)); Concatenare(A, B, C); WriteMyString(C); end.
C. Teme
const Maxgrad = 25; type Polinom = record {tip exportat de unitate} Grad: integer; Coeficienti: array[1..Maxgrad] of real end;