ĐỀ THI HỌC SINH GIỎI TIN HỌC – VỊNG 1 THỜI GIAN: 150PHÚT NGÀY THI: 20/9/2008 Viết CT nhập vào 3 số thực a, b, c. Kiểm tra xem a, b, c có phải là 3 cạnh của một tam giác hay không? Kết xuất DUNG hay SAI ra màn hình. Nếu đúng thì cho biết đó là tam giác gì ? (cân, vuông, đều,thường) và tính diện tích của tam giác đó. Cho biết công thức tính diện tích của một tam giác bất kì theo ba cạnh như sau: S = với p là nửa chu vi của tam giác. Dữ liệu vào: 3 số thực a,b,c bất kỳ Kết quả ra: Có phải là 3 cạnh của một tam giác không ? Nếu phải thì đó là tam giác gì và tính diện tích của tam giác đó. Ví dụ: Dữ liệu vào Dữ liệu ra 3 4 5 DUNG - Tam giac vuong Dien tich: 6.00 5 5 11 SAI Tên tập tin: D:\THI\VONG1\Tamgiac.pas Viết chương trình vẽ hình bằng ký tự tự chọn, xuất hiện trên màn hình menu chọn cho phép người sử dụng chọn loại hình để vẽ như sau: ’1. Vẽ hình chữ nhật rỗng.’ ’2. Vẽ tam giác vuông đặc đỉnh ở trên.’ ’3. Vẽ tam giác cân rỗng đỉnh ở trên.’ Dữ liệu vào: Nhập số lựa chọn 1 hoặc 2 hoặc 3, Nếu vẽ hình chữ nhật thì nhập chiều dài, chiều rộng; Nếu vẽ tam giác thì nhập chiều cao; nhập ký tự cần vẽ. Kết quả ra: Hình vẽ với ký tự tự chọn. Ví dụ: Dữ liệu vào Dữ liệu ra 2 3 @ 1. Ve hinh chu nhat rong. 2. Ve tam giac vuong dac dinh o tren 3. Ve tam giac can rong dinh o tren Moi nhap lua chon: Nhap chieu cao: Nhap mot ky tu: @ @@ @@@ Tên tập tin: D:\THI\VONG1\vehinh.pas Viết chương trình in ra màn hình các số từ x đến y là số chẵn và chia hết cho 3. với x, y nhập từ bàn phím? Đếm xem cĩ tất cả bao nhiêu số? Dữ liệu vào: Số nguyên x và y (x<y). Kết quả ra: Các số chẵn chia hết cho 3 trong phạm vi từ x đến y và đếm cĩ bao nhiêu số. Ví dụ: Dữ liệu vào Dữ liệu ra 3 40 12 18 24 30 36 Co tat ca: 6 so Tên tập tin: D:\THI\VONG1\Demso.pas Số Palindrom là số đối xứng nghĩa là đọc từ trái qua phải giống như đọc từ phải qua trái. (vd: 15951; 44444 Dĩ nhiên số 01210 khơng phải là số đối xứng). Em hãy viết chương trình hiển thị các số đối xứng cĩ 5 chữ số và chia hết cho một số nguyên nhập từ bàn phím, hiển thị theo qui cách mỗi dịng hiện 5 số, mỗi trang màn hình chứa 100 số và đếm xem cĩ bao nhiêu số như vậy? Dữ liệu vào: Số nguyên. Kết quả ra: Các số đối xứng cĩ 5 chữ số và đếm cĩ bao nhiêu số. Hiển thị theo qui cách. Ví dụ: Dữ liệu vào Dữ liệu ra 13 10101 11011 15951 16861 17771 18681 19591 20202 21112 22022 26962 27872 28782 29692 30303 31213 32123 33933 34843 35753 36663 37573 38483 39393 40004 44944 45854 46764 47674 48584 49494 50105 51015 55955 56865 57775 58685 59595 60206 61116 62026 66966 67876 68786 69696 70307 71217 72127 73037 77977 78887 79797 80408 81318 82228 83138 84048 88988 89898 90509 91419 92329 93239 94149 95059 98689 99599 Co tat ca:67 so Tên tập tin: D:\THI\VONG1\palindro.pas HẾT ĐÁP ÁN ĐỀ THI HỌC SINH GIỎI TIN VÒNG 1 – NGÀY 20/9/2008 BAI 1: TAMGIAC.PAS var a,b,c,s,p:real; kq:boolean; ltg:string; {loai tam giac} begin readln(a,b,c); kq:=false; if (a+b>c)and(a+c>b)and(b+c>a)then kq:=true; if kq then {kq=true, dung la tam giac thi moi lam cac lenh duoi} begin if (a*a=b*b+c*c)or(b*b=a*a+c*c)or(c*c=b*b+a*a)then ltg:='vuong' else if (a=b)and(b=c) then ltg:='deu' {Neu o phai tg deu thi moi xet den truong hop tg can} else if (a=b)or(a=c)or(c=b) then ltg:='can' else ltg:='thuong'; p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('DUNG,tam giac ',ltg); writeln('Dien tich:',s:6:2); end else writeln('SAI'); readln; end. BAI 2: VEHINH.PAS uses crt; var d,r,n,luachon,h,c:integer; ch:char; begin clrscr; writeln('1. Ve hinh chu nhat rong.'); writeln('2. Ve hinh tam giac vuong dac dinh o tren.'); writeln('3. Ve hinh tam giac can rong dinh o tren.'); write('Nhap lua chon:');readln(luachon); Write('Nhap ky tu de ve:');readln(ch); case luachon of 1: BEGIN write('Nhap chieu dai va chieu rong:'); readln(d,r); clrscr; for h:=1 to r do begin for c:=1 to d do if (c=1)or(h=1)or(h=r)or(c=d) then write(ch) else write(' '); writeln; end; END; 2: BEGIN write('Nhap chieu cao:');readln(n); clrscr; for h:=1 to n do begin for c:=1 to n do if (c<=h) then write(ch) else write(' '); writeln; end; END; 3: BEGIN write('Nhap chieu cao:');readln(n); clrscr; 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; {KET THUC LENH CASE} readln; end. BAI 3: DEMSO.PAS var x,y,i,d:longint; begin d:=0; readln(x,y); for i:=x to y do if (i mod 2=0)and(i mod 3=0) then begin write(i:6); inc(d); end; writeln; writeln('Co tat ca:',d,' so'); readln; end. BAI 4: PALINDRO.PAS uses crt; var a,b,c,d,e,f,dem:integer; begin write('Nhap mot so nguyen:');readln(f); clrscr; for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do for d:=0 to 9 do for e:=1 to 9 do if (a=e)and(b=d)and((10000*a+1000*b+100*c+10*d+e) mod f = 0) then begin write(a:6,b,c,d,e); dem:=dem+1; if dem mod 5 = 0 then writeln; if dem mod 100 = 0 then readln; end; writeln; writeln('Co tat ca:',dem,' so'); readln; end.
Tài liệu đính kèm: