program Noname1; const daug = 100; type elementas1 = record pav :string[20]; vardas :string[20]; data :string[12]; paros :real; tipas :string[15]; end; elementas2 = record tipas:string[15]; kaina:real; gkaina:real; bkaina:real; proc :real; end; elementas3 = record pav1 :string[20]; vardas1 :string[20]; data1 :string[12]; paros1:real; mokestis:real; end; mas1 = array [1..daug] of elementas1; mas2 = array [1..daug] of elementas2; mas3 = array [1..daug] of elementas3; var A : mas1; B:mas2; C: mas3; n,m :integer; //------------------------------------------------------------------------------ procedure skaito (var A :mas1; var n :integer); var ch : char; keit: real; F1 :text; error : integer; par1 :string[3]; begin Assign(F1, 'duom.txt'); Reset(F1); Readln(F1); n := 0; Read (F1,ch); while (not EoF(F1)) and (n ' ') do begin if (ch <> #10) then A[n].pav := A[n].pav + ch; Read (F1,ch); end; while ch = ' ' do read(F1,ch); while (ch <> ' ') do begin if (ch <> #10) then A[n].vardas := A[n].vardas + ch; Read (F1,ch); end; while ch = ' ' do read(F1,ch); while (ch <> ' ') do begin if (ch <> #10) then A[n].data := A[n].data + ch; Read (F1,ch); end; while ch = ' ' do read(F1,ch); par1:=''; begin if (ch <> #10) then par1 := par1 + ch; Read (F1,ch); end; while ch = ' ' do read(F1,ch); Val (par1,keit,error); A[n].paros := keit; while (ch <> #13) and (ch<> #26) do begin A[n].tipas := A[n].tipas + ch; Read (F1,ch); end; Read(F1, ch); end; Close(F1); end; //------------------------------------------------------------------------------ procedure skaito2 ( Var B:mas2; var m:integer ); var ch : char; keit: real; sk :string[15]; error : integer; F2 :text; begin Assign(F2, 'duom1.txt'); Reset(F2); Readln(F2); m := 0; Read (F2,ch); while (not EoF(F2)) and (n ' ') do begin if (ch <> #10) then B[m].tipas := B[m].tipas + ch; Read (F2,ch); end; while ch = ' ' do read(F2,ch); sk := ''; while ch <> ' ' do begin if ch <> #10 then sk := sk + ch; Read (F2,ch); end; Val (sk,keit,error); B[m].kaina := keit; sk := ''; while ch <> ' ' do begin if ch <> #10 then sk := sk + ch; Read (F2,ch); end; Val (sk,keit,error); B[m].gkaina := keit; sk := ''; while ch <> ' ' do begin if ch <> #10 then sk := sk + ch; Read (F2,ch); end; Val (sk,keit,error); B[m].bkaina := keit; sk := ''; while (ch <> #13) and (ch<> #26) do begin sk := sk + ch; Read (F2,ch); end; Val (sk,keit,error); B[m].proc := keit; Read(F2, ch); end; Close(F2); end; //------------------------------------------------------------------------------ procedure veiksmai (A:mas1; B:mas2; var C:mas3; n :integer; m :integer); var i,j :integer; begin for i :=1 to n do begin for j :=1 to m do begin if A[i].tipas = B[j].tipas then begin C[i].pav1 := A[i].pav; C[i].vardas1 := A[i].vardas; C[i].data1 := A[i].data; C[i].paros1 := A[i].paros; C[i].mokestis := (B[j].kaina + B[j].gkaina + B[j].bkaina); end; end; end; end; //------------------------------------------------------------------------------ procedure isveda (A:mas1; n :integer); var i :integer; begin WriteLn ('----------------------------------------------------------------------'); WriteLn ('| Pavarde | Vardas | Data | paros | tipas '); WriteLn ('----------------------------------------------------------------------'); for i:=1 to n do begin with A[i] do WriteLn('| ',pav,' ':10-Length(pav),' | ',vardas,' ':15-Length(vardas),'| ', data,' ':11-Length(data),'|' , paros:7:0,' '+ + ' | ', tipas,' ':10- Length(tipas),' |'); end; WriteLn ('----------------------------------------------------------------------'); Writeln; end; //------------------------------------------------------------------------------ procedure isveda2 (C:mas3; n : integer); var i :integer; begin WriteLn ('-------------------------------------------------------------------'); WriteLn ('| Pavarde | Vardas | Data | paros | mokestis |'); WriteLn ('-------------------------------------------------------------------'); for i:=1 to n do begin with C[i] do WriteLn('| ',pav1,' ':10-Length(pav1),' | ',vardas1,' ':15-Length(vardas1),'| ', data1,' ':11-Length(data1),'|' , paros1:7:0,' '+ + ' | ', mokestis:7:0,' |'); end; WriteLn ('-------------------------------------------------------------------'); end; //------------------------------------------------------------------------------ begin WriteLn('Hi!'); Skaito(A,n); Skaito2(B,m); Veiksmai(A,B,C,n,m); Isveda(A,n); isveda2(C,n); Readln; end.