Đề thi học sinh giỏi Tin học – Vòng 1 thời gian: 150phút

doc 4 trang Người đăng haibmt Lượt xem 3767Lượt tải 1 Download
Bạn đang xem tài liệu "Đề thi học sinh giỏi Tin học – Vòng 1 thời gian: 150phút", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đề thi học sinh giỏi Tin học – Vòng 1 thời gian: 150phút
ĐỀ 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:

  • docvong 1.doc