Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 1

type

ADRESACEL = ^Celula;Celula = record


NP: string; m: real; Urm: ADRESACEL;
end;

var
P, R, V, U, D, Q: ADRESACEL;s: string;nm1, nm2, nm3, nm4: integer;f, o:
text;k, w: boolean;

procedure n1(nm1, nm2, nm3, nm4: integer; s: string);


begin
if(w = true) then
begin
new(R); R^.NP := s; R^.m := (nm1 + nm2 + nm3 + nm4) / 4; R^.Urm := nil;
V^.Urm := R; V := R; end
else begin
R^.NP := s; R^.m := (nm1 + nm2 + nm3 + nm4) / 4; w := true;
end; end;

procedure n2(nm1, nm2, nm3, nm4: integer; s: string);


begin
if(k = true) then
begin
new(Q); Q^.NP := s; Q^.m := (nm1 + nm2 + nm3 + nm4) / 4; Q^.Urm := nil;
U^.Urm := Q; U := Q; end
else begin
Q^.NP := s; Q^.m := (nm1 + nm2 + nm3 + nm4) / 4; k := true;
end; end;

begin
assign(f, 'ELEVI.IN'); reset(f);
assign(o, 'ELEVI.OUT'); rewrite(o);
new(R); P := R; R^.Urm := nil; V := R;
new(Q); D := Q; Q^.Urm := nil; U := Q;

while not eof(f) do


begin
readln(f, s); readln(f, a1, a2, a3, a4);
if((nm1 < 5) or (nm2 < 5) or (nm3 < 5) or (nm4 < 5)) then n2(s, nm1, nm2,
nm3, nm4)
else n1(s, nm1, nm2, nm3, nm4);
end;
R := P; Q := D;

writeln(o, 'Prima lista: ');


while R <> nil do
begin
writeln(o, R^.NP, ' ', R^.m:2:2); R := R^.Urm;
end;

writeln(o, 'A doua lista');


while Q <> nil do
begin
writeln(o, Q^.NP, ' ', Q^.m:2:2); Q := Q^.Urm;
end;

close(f); close(o);
end.

You might also like