1. Trang chủ
  2. » Giáo án - Bài giảng

Đáp án tin HSG 2010-2011 NH

8 173 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 50,5 KB

Nội dung

ĐÁP ÁN Bài1 (2.5đ) Viết chương trình trò chơi đánh tù tì giữa người và máy tính Nhiệm vụ của chương trình -Tên tập tin Tuti.pas - Cho hiện mê nu hướng dẫn người chơi máy cho ra kết quả Ví dụ : búa =B , bao = P , kéo =K - Máy cho ra kết quả thắng , hòa hay thua Cho nhập và khởi động được ran domize (1đ) viết được chương trình chạy cho ra kết quả (1.5đ) program tuti; uses crt; var so,i,j,k,n,m,dem:integer; kt:boolean; s1,s2:string; nguoi:char; t1,t2:set of 'a' 'z'; begin clrscr; writeln('tro choi oanh tu ti bat dau'); writeln('tro choi oanh tu bat dau ban ra gi bua=b bao =p keo= k '); read(nguoi); randomize ; so:=random(3); case so of 0: case nguoi of 'p' : writeln('chuc mung ban thang may = '); 'k': writeln('chia buon ban thua may '); 'b' : writeln(' ban hue may '); end; 1: case nguoi of 'b': writeln('chuc mung ban thang may = '); 'p': writeln('chia buon ban thua may '); 'k' : writeln(' ban hue may '); end; 2: case nguoi of 'k':writeln('chuc mung ban thang may = '); 'b': writeln('chia buon ban thua may '); 'p' : writeln(' ban hue may '); end; end; readln; readln; end. Bài 2 viết chương trình vẽ hình (2.5điểm) a) Chữ nhật đặc 0.5đ b) Chữ nhật rỗng 0.5đ c) Tam giác cân đặc 0.5d d) Tam giác cân rỗng 1đ Nhiệm vụ chương trình: Tên tập tin vehinh.pas -Cho hiện mê nu để người sử dụng lựa chọn vẽ hình nào? - Cho chọn kí tự để vẽ - Hình chữ nhật cho phép nhập vào chiều dài ,chiều rộng . -Tam giác cho nhập chiều cao. program vehinh; uses crt; var c,h,n,d,r,luachon:integer; ch: char; begin clrscr; writeln('ve hinh chu nhat dat nhap: 1'); writeln('ve hinh chu nhat rong nhap: 2'); writeln('ve tam giac can dac nhap: 3'); writeln('ve tam giac can rong nhap: 4'); writeln; repeat write('moi ban nhap so de chon ');readln(luachon); until(0<luachon)and (luachon<5); write('moi ban nhap ki tu de ve ');readln(ch); case luachon of 1: begin write('Nhap chieu dai hinh chu nhat dac');read(d); write('Nhap chieu rong hinh chu nhat dac');read(r); clrscr; for c:=1 to d do begin for h:=1 to r do write(ch); writeln; end; end; 2: begin write('Nhap chieu dai hinh chu nhat rong');read(d); write('Nhap chieu rong hinh chu nhat rong');read(r); clrscr; for c:=1 to d do begin for h:=1 to r do if (c=1) or (h=1)or (c=d) or(h=r) then write(ch)else write(' '); writeln; end; end; 3: begin write('Nhap chieu cao tam giac dac');read(n); clrscr; for c:=1 to n do begin for h:=n-c+1 to n+c-1 do begin gotoxy(h,c);write(ch); end; writeln; end; end; 4: begin write('Nhap chieu cao tam giac rong');read(n); for h:=1 to n do begin for c:=1 to 2*n-1 do if(c=n-h+1)or(c=n+h-1)or (h=n) then write(ch) else write(' '); writeln; end; end; end; readln; readln; end. Bài3: (2.5đ) viết chưowng trình cho phép nhập hồ sơ tối đa 50 cán bộ gồn họ và tên,năm sinh,quê quán ,tiềnlương Nhiệm vụ chương trình: tên tập tin hoso.pas - Mỗi lần nhập xong một hồ sơ đều có hỏi nhập nữa không (1đ) - sau khi nhập cho hiện ra màn hình theo thứ tự đã nhập (0.5đ) - Cho hiện ra màn hình theo thứ tự đã được sắp xếp theo tuổi (1đ) program li_lich_can_bo; uses crt; const n=50; type hoso = record ht,qq:string; ns,l:integer; end; var cb: array[1 n] of hoso; socb,i,j:integer; tl:char; tam:hoso; begin clrscr; writeln('chuong trinh nhap ho so'); i:=1; socb:=0; repeat write('ho ten ',i,': '); readln(cb[i].ht); write('que quan ',i,': '); readln(cb[i].qq); write('nam sinh ',i,': '); readln(cb[i].ns); write('luong ',i,': '); readln(cb[i].l); i:=i+1; socb:=socb+1; writeln('co nhap nua khong C/K ');readln (tl); until tl ='k'; writeln(socb, ' li lich can bo'); for i:=1 to socb do begin write(' ho ten can bo : ',cb[i].ht); write(' que quan can bo: ',cb[i].qq); write(' nam sinh can bo: ',cb[i].ns); write(' luong can bo: ',cb[i].l); writeln; end; writeln('ho so sap xep theo tuoi'); for i:=1 to socb do for j:=i+1 to socb do if cb[j].ns < cb[i].ns then begin tam.ht:= cb[i].ht; tam.qq:= cb[i].qq; tam.ns:= cb[i].ns; tam.l:= cb[i].l; cb[i].ht:= cb[j].ht; cb[i].qq := cb[j].qq; cb[i].ns:= cb[j].ns; cb[i].l:= cb[j].l; cb[j].ht := tam.ht; cb[j].qq := tam.qq; cb[j].ns := tam.ns; cb[j].l := tam.l; end; for i:=1 to socb do begin write(' ho ten can bo :',cb[i].ht); write(' que quan can bo: ',cb[i].qq); write(' nam sinh can bo : ',cb[i].ns); write(' luong can bo : ',cb[i].l); writeln; end; readln; end. Bài 4 (2.5điểm) Viết chương trình nhập một mảng hai chiều 3 cột 3 dòng và sắp xếp Nhiệm vụ tên tập tin xepmang.pas - dữ liệu vào là mảng hai chiều 3 cột 3 dòng các số nguyên (0.5đ) - dữ liệu ra mảng hai chiều 3 cột 3 dòng các số theo thứ tự đã nhập (0.5đ) - dữ liệu ra dãy theo mảng một chiều được sắp xếp (0.5đ) - dữ liệu ra dãy đã theo mảng hai chiều được sắp xếp (1đ) Ví dụ: Dữ liệu vào Dữ liêu ra 1 3 7 9 3 7 9 0 1 3 0 1 3 2 4 5 2 4 5 Dữ liêu ra 2 0 1 2 3 3 4 5 7 9 Dữ liêu ra 3 0 1 2 3 3 4 5 7 9 program nhapsapxepmanghaichieu; uses crt; const n =100; var a:array[1 n,1 n] of integer; b:array[1 n] of integer; tam,k,min,i,j,z,tong:integer; tl:char; begin repeat {vong lap cho bien tra loi} clrscr; { bat dau nhap mang} writeln('moi ban nhap tri cho mang hai chieu'); for i:=1 to 3 do for j:=1 to 3 do begin write('a[',i,',',j,'] = '); readln (a[i,j]); end; {bat dau viet mang} writeln(' mang hai chieu da nhap la'); for i:=1 to 3 do begin for j:=1 to 3 do write(a[i,j]:5); writeln; end; {gan tri mang hai chieu cho mang 1 chieu} k:=1; for i:=1 to 3 do for j:=1 to 3 do begin b[k]:= a[i,j]; k:=k+1; end; writeln; {mang mot chieu la} Writeln('mang mot chieu '); for k:=1 to 9 do write(b[k]:5); writeln; {bat dau sap xep hinh xoan} for i:=1 to 9 do for j:=i+1 to 9 do if b[i]> b[j]then begin tam:=b[i]; b[i]:=b[j]; b[j]:=tam; end; writeln; {mang mot chieu da sap xepla} Writeln('mang mot chieu da sap xep '); writeln; for k:=1 to 9 do write(b[k]:5); writeln; {gan tri mang 1 chieu cho mang 2 chieu} k:=1 ; for i:=1 to 3 do for j:=1 to 3 do begin a[i,j]:=b[k] ; k:=k+1; end; writeln; writeln(' mang hai chieu da sap xep theo hinh xoan la'); for i:=1 to 3 do begin for j:=1 to 3 do write(a[i,j]:5); writeln; end; writeln('ban co lam nua khong C/K ') ;readln(tl); until upcase (tl)='K'; {ket thuc vong lap repeat} end. . ĐÁP ÁN Bài1 (2.5đ) Viết chương tr nh trò chơi đ nh tù tì giữa người và máy t nh Nhiệm vụ của chương tr nh -Tên tập tin Tuti.pas - Cho. chưowng tr nh cho phép nh p hồ sơ tối đa 50 cán bộ gồn họ và tên,năm sinh,quê quán ,tiềnlương Nhiệm vụ chương tr nh: tên tập tin hoso.pas - Mỗi lần nh p xong

Ngày đăng: 06/11/2013, 20:11

TỪ KHÓA LIÊN QUAN

w