Hội ThiTinHọcTrẻHuyệnDĩ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 ThiTinHọcTrẻHuyệnDĩ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 ThiTinHọcTrẻHuyệnDĩ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 ThiTinHọcTrẻHuyệnDĩ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 ThiTinHọcTrẻHuyệnDĩ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 . 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). 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: ');