De thi HSG mon tin 9

UBND thµnh phè huÕ
Phßng Gi¸o dôc
thi häc sinh giái m«n tin häc cÊp thµnh phè

Líp 9 - N¨m häc 2006-2007
Thêi gian: 120 phót (Kh«ng kÓ thêi gian giao ®Ò)

Yªu cÇu: Mçi thÝ sinh t¹o mét Folder mang tªn lµ: K9- chøa trong D:\ vµ lu c¸c file sau vµo ®óng Folder võa t¹o.
C©u 1 (3 ®iÓm) : T¹o file mang tªn BAI1.PAS thùc hiÖn ch¬ng tr×nh sau :
KÕt qu¶ thi cña häc sinh gåm nh÷ng th«ng tin sau: Hä tªn, líp, ®iÓm to¸n (DT),
®iÓm v¨n(DV), ®iÓm trung b×nh (DTB), xÕp lo¹i(XL). Trong ®ã:
-

§iÓm trung b×nh ®îc tÝnh nh sau: DTB=(DT*2+DV)/3

-

XÕp lo¹i dùa trªn ®iÓm trung b×nh nh sau:
 NÕu
 NÕu
 NÕu

 Cßn

DTB>=8.0, xÕp lo¹i giái
8.0>DTB>=6.5, xÕp lo¹i kh¸.
6.5>DTB>=5.0, xÕp lo¹i trung b×nh
l¹i xÕp lo¹i cha ®¹t

H·y viÕt ch¬ng tr×nh díi d¹ng c¸c ch¬ng tr×nh con thùc hiÖn viÖc in ra mµn
h×nh danh s¸ch häc sinh theo thø tù gi¶m dÇn cña ®iÓm trung b×nh kÌm theo
c¸c th«ng tin: Hä tªn, líp, ®iÓm trung b×nh, xÕp lo¹i.
C©u 2 (3 ®iÓm) : T¹o file mang tªn BAI2.PAS thùc hiÖn ch¬ng tr×nh sau :
ViÕt ch¬ng tr×nh theo yªu cÇu sau:
-

Khi nhÊn phÝm “n” hoÆc “N”: ch¬ng tr×nh thùc hiÖn ®æi mét sè thËp
ph©n sang d·y sè nhÞ ph©n.

-

Khi nhÊn phÝm “t” hoÆc “T”: ch¬ng tr×nh thùc hiÖn ®æi d·y sè nhÞ ph©n

sang sè thËp ph©n.

C©u 3 (4 ®iÓm) : T¹o file mang tªn BAI3.PAS thùc hiÖn ch¬ng tr×nh sau:
Hai file SN1.TXT, SN2.TXT chøa c¸c sè nguyªn bÊt k×. H·y viÕt ch¬ng tr×nh t¹o
file KQ.OUT chøa c¸c sè nguyªn ®îc s¾p xÕp theo thø tù t¨ng dÇn, mçi sè trong
file KQ.OUT lµ tæng cña hai sè nguyªn lÊy tõ file SN1.TXT vµ SN2.TXT.
VÝ dô: File SN1.TXT chøa c¸c sè nguyªn: 1 9 7 12; SN2.TXT chøa c¸c sè
nguyªn: 31 5 2 1 th× file KQ.OUT cã kÕt qu¶: 9 13 14 32.
ThÝ sinh kh«ng ®îc sö dông tµi liÖu

Gi¸m thÞ kh«ng gi¶i thÝch g× thªm
®¸p ¸n 9
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
begin
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;
end;
{------------------------}
procedure sx(var hss:hs1);
var tam:hs;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if hss[i].dtb