All pastes #921899 Raw Edit

new 14.p

public text v1 · immutable
#921899 ·published 2008-02-28 13:14 UTC
rendered paste body
program ask14(input,output,f1,f2);
  const  size=15;
  type  string20=array [1..20] of char ;
        student=record
                Epitheto,Onoma : string20;
                AM  :integer
                end;
         lista=array[1..size] of student;
  var  f1,f2 : file of student;
       w : lista;
       i : integer;

procedure merge(var a,b,c : lista;
             fa,la,fb,lb,fc:integer;
           var lc:integer);
   var ia,ib,ic : integer;
 begin
 ia:=fa;ib:=fb;ic:=fc;
 repeat
  if a[ia] < b[ib] then begin c[ic]:=a[ia];ia:=ia+1 end
                 else begin c[ic]:=b[ib];ib:=ib+1 end;
    ic:=ic+1;
 until (ia>la) or (ib>lb);
 for ia:=ia to la do begin c[ic]:=a[ia];ic:=ic+1 end;
 for ib:=ib to lb do begin c[ic]:=b[ib];ic:=ic+1 end;
 lc:=ic-1
 end;


procedure mergesort(var a : lista;fa,la:integer);
    var b:lista; i,mid:integer;
    begin
      if fa<la then
      begin mid:=(fa+la) div 2;
      mergesort(a,fa,mid);mergesort(a,mid+1,la);
      merge(a,a,b,fa,mid,mid+1,la,fa,la);
      for i:=fa to la do a[i]:=b[i]
      end
    end;

  begin
  rewrite(f1);
  w[1].AM:=98901;w[1].Epitheto:="ΚΩΣΤΟΠΟΥΛΟΣ";w[1].Onoma:="ΝΙΚΟΛΑΟΣ";
  w[2].AM:=98902;w[2].Epitheto:="ΔΙΑΜΑΝΤΙΔΗΣ";w[2].Onoma:="ΔΗΜΗΤΡΙΟΣ";
  w[3].AM:=98806;w[3].Epitheto:="ΝΙΚΟΛΑΟΥ";w[3].Onoma:="ΠΕΤΡΟΣ";
  w[4].AM:=98856;w[4].Epitheto:="ΠΑΠΑΔΙΑΜΑΝΤΗΣ";w[4].Onoma:="ΚΩΝΣΤΑΝΤΙΝΟΣ";
  w[5].AM:=98847;w[5].Epitheto:="ΚΩΣΤΟΠΟΥΛΟΣ";w[5].Onoma:="ΔΗΜΗΤΡΙΟΣ";
  w[6].AM:=98790;w[6].Epitheto:="ΕΥΣΤΡΑΤΙΟΥ";w[6].Onoma:="ΜΑΡΙΑ";
  w[7].AM:=98791;w[7].Epitheto:="ΔΗΜΗΤΡΙΟΥ";w[7].Onoma:="ΑΛΕΞΑΝΔΡΑ";
  w[8].AM:=98999;w[8].Epitheto:="ΚΩΣΤΟΠΟΥΛΟΥ";w[8].Onoma:="ΙΩΑΝΝΑ";
  w[9].AM:=98903;w[9].Epitheto:="ΔΙΑΜΑΝΤΙΔΗΣ";w[9].Onoma:="ΔΗΜΗΤΡΙΟΣ";
  w[10].AM:=98907;w[10].Epitheto:="ELGHALI";w[10].Onoma:="ABDULLAH";
  w[11].AM:=98990;w[11].Epitheto:="ΠΑΠΑΔΙΑΜΑΝΤΟΠΟΥΛΟΣ";w[11].Onoma:="ΑΛΕΞΑΝΔΡΟΣ";
  write(f1,w[i]);
  close(f1);
  reset(f1);rewrite(f2);read(f1,w[i]);
  for i:=1 to size do
  begin
  write(w[i].Onoma:20);write(w[i].Epitheto:20);write(w[i].AM:6);
  end;
  mergesort(w,1,size);writeln;writeln;
  for i:=1 to size do
  begin
  write(f2,w[i]);
  write(w[i].Onoma:20);write(w[i].Epitheto:20);write(w[i].AM:6);
  writeln;
  end;
  close(f1);close(f2);
  end.