Tải bản đầy đủ (.doc) (5 trang)

Đáp án đề thi tin học trẻ huyện Dĩ An 2009_THPT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (58.34 KB, 5 trang )

Hội Thi Tin Học Trẻ Huyện Dĩ An 2009
Đáp Án
HỆ: Trung Học Phổ Thông
Thời gian: 150 phút
Bài 1
: Viết chương trình
a) Nhập vào 2 số nguyên n, m và 2 dãy số nguyên (1 đ)
A
1
, A
2
, A
3
, …, A
n
B
1
, B
2
, B
3
, …, B
m
b) Cộng từng phần tử tương ứng của 2 dãy trên vào dãy: (1 đ)
KQ
1
, KQ
2
, KQ
3
, …,KQ


max
c) Xuất giá trị của dãy KQ ra màn hình theo thứ tự giảm dần. (1 đ)
Ví dụ:
Dãy A: 6 5 8
Dãy B: 4 2 8 5 3
Xuất ra màn hình dãy KQ: 16 10 7 5 3
Program Bai1;
var a,b,kq: array[1..100] of integer;
n,m,max,i,j,tmp: integer;
begin
write('Nhap n: ');
readln(n);
writeln('Nhap gia tri cho mang a');
for i:=1 to n do
begin
write('a[',i,']= ');
readln(a[i]);
end;
write('Nhap m: ');
readln(m);
writeln('Nhap gia tri cho mang b');
for i:=1 to m do
begin
write('b[',i,']= ');
readln(b[i]);
end;
if (n<m) then
1/5
KQ: 10 7 16 5 3
Hội Thi Tin Học Trẻ Huyện Dĩ An 2009

Begin
max:=m;
for i:=1 to m do
kq[i]:=b[i];
for i:=1 to n do
kq[i]:=kq[i]+a[i];
end
else
Begin
max:=n;
for i:=1 to n do
kq[i]:=a[i];
for i:=1 to m do
kq[i]:=kq[i]+b[i];
end;
for i:=1 to max-1 do
for j:=i+1 to max do
if kq[i]<kq[j] then
begin
tmp:=kq[i];
kq[i]:=kq[j];
kq[j]:=tmp;
end;
for i:=1 to max do
write(kq[i]:5);
readln;
end.
Bài 2
: Viết chương trình
a) Nhập vào số thực x và số nguyên N > 0, nếu N < 0 người dùng nhập lại.

(1.5 đ)
b) Tính tổng S và xuất giá trị ra màn hình: (1.5 đ)
S = x
1
– x
2
+ x
3
– x
4
….. (-1)
N+1
x
N
Ví Dụ:
X = 1.5 N = 3 (S = 1.5
1
– 1.5
2
+ 1.5
3
)
 Tổng S: 2.625
2/5
Hội Thi Tin Học Trẻ Huyện Dĩ An 2009
Program Bai2;
var x,s,tmp: real;
n,i,dau: integer;
begin
repeat

write('Nhap n > 0: ');
readln(n);
until (n>0);
write('Nhap so thuc X: ');
readln(x);
s:=0;
dau:=1;
tmp:=1;
for i:=1 to n do
begin
tmp:=tmp*x;
s:=s+dau*tmp;
dau:=-dau;
end;
write('Tong S la: ',s:8:3);
readln;
end.
Bài 3
: Viết chương trình
a) Nhập danh sách lớp: (2 đ)
Thông tin mỗi học sinh gồm: họ, tên. Lưu vào tập tin HOSO.txt
b) Đọc thông tin của các học sinh từ tập tin HOSO.txt xuất ra màn hình (2 đ)
program hoso;
type
hs=record
ho:string[30];
ten:string[10];
end;
var
3/5

Hội Thi Tin Học Trẻ Huyện Dĩ An 2009
f: file of hs;
a:hs;
nhap:char;
chon:byte;
st:string;
procedure nhap_hoso;
begin
write(' Ten tap tin: ');
readln(st);
assign(f,st);
(*$I-*)
reset(f);
if IOResult<>0 then
rewrite(f)
else
seek(f,filesize(f));
repeat
write('Nhap mau tin (Y/N)?');
readln(nhap);
if upcase(nhap)='Y' then
with a do
begin
write('ho: ');
readln(ho);
write('ten: ');
readln(ten);
write(f,a);
end;
until upcase(nhap)<>'Y';

close(f);
end;
procedure doc_hoso;
begin
write('Tap tap tin: ');
readln(st);
assign(f,st);
4/5
Hội Thi Tin Học Trẻ Huyện Dĩ An 2009
(*$I-*)
reset(f);
if IOResult<>0 then
begin
writeln('Khong co tap tin ',st);
halt(0);
end;
writeln;
writeln(':----------------------------------------:');
writeln(':Ho va Ten :');
writeln(':----------------------------------------:');
while not eof(f) do
begin
read(f,a);
with a do
writeln(':',ho,' ':30-length(ho),ten,' ':10-length(ten),':');
end;
writeln(':----------------------------------------:');
close(f);
end;
begin

repeat
writeln;
writeln('(1) Nhap ho so (2) Xuat ho so (3) Thoat');
write('Chon so: ');
readln(chon);
case chon of
1:nhap_hoso;
2:doc_hoso;
3:
else
write('Chon sai ? ');
end;
until chon=3;
end.
----- Hết -----
5/5

×