TYPE HS=RECORD HT

Bài 1:

type HS=record

ht:string;

lop:string[10];

dt,dv,dtb:real;

xl:string[10];

end;

hs1=array[1..20] of hs;

var hss:hs1;

i,j,n:integer;

procedure nhap(var hss:hs1);

begin

writeln(' nhap thong tin cho hoc sinh:');

for i:=1 to n do

with hss[i] do

begin

writeln(' nhap ho ten');

readln(ht);

writeln(' nhap lop');

readln(lop);

writeln(' nhap diem toan');

readln(dt);

writeln(' nhap diem van');

readln(dv);

dtb:=(dt*2+dv)/3;

if dtb>=8.0 then xl:=' loai gioi'

else if dtb>=6.5 then xl:='loai kha'

else if dtb>=5.0 then xl:='loai trung binh'

else xl:=' loai chua dat';

end;

end;

{---}

procedure sx(var hss:hs1);

var tam:hs;

for i:=1 to n-1 do

for j:=i+1 to n do

if hss[i].dtb<hss[j].dtb then

begin

tam:=hss[i];

hss[i]:=hss[j];

hss[j]:=tam;

end;

readln;

Begin

writeln(' nhap so hoc sinh');

readln(n);

nhap(hss);

sx(hss);

writeln(' ket qua sau khi sap xep');

for i:=1 to n do

with hss[i] do

writeln(ht,' ',lop,' ',dtb:0:2,' ',xl);

readln;

End.