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.
Trang 1Đá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 đ)
A1 , A2 , A3 , …, An
B1 , B2 , B3 , …, Bm
b) Cộng từng phần tử tương ứng của 2 dãy trên vào dãy: (1 đ)
KQ1 , KQ2 , KQ3 , …,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
KQ: 10 7 16 5 3
Trang 2Begin
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 = x1 – x2 + x3 – x4 … (-1)N+1xN
Ví Dụ:
X = 1.5 N = 3 (S = 1.51 – 1.52 + 1.53)
Tổng S: 2.625
Trang 3Program 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
Trang 4f: 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);
Trang 5(*$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