All pastes #67783 Raw Edit

Mine

public text v1 · immutable
#67783 ·published 2006-06-20 16:18 UTC
rendered paste body
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.