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<daug) do
begin
n:=n+1;
A[n].pav := '';
A[n].vardas := '';
A[n].data := '';
A[n].paros := 0;
A[n].tipas := '';
while (ch <> ' ') 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<daug) do
begin
m:=m+1;
B[m].kaina :=0;
B[m].gkaina := 0;
B[m].bkaina := 0;
B[m].proc := 0;
while (ch <> ' ') 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.