Tài liệu bồi dưỡng học sinh giỏi tin học 9

15 6 0
Tài liệu bồi dưỡng học sinh giỏi tin học 9

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sau đó in ra màn hình: họ tên, điểm trung bình, xếp lọai của học sinh đó (trên 1 dòng)... Kiểm tra xem số n có là số nguyên tố không..[r]

(1)

BÀI TẬP PASCAL ÔN THI HỌC SINH GIỎI

4.1 Viết chương trình nhập vào số nguyên, kiểm tra xem chúng có phải ước không Program bt4_1;

Var a,b:integer; Begin

write('nhap a,b:'); readln(a,b);

if (a mod b) = then writeln(b,' la uoc cua ',a) else writeln(b,' khong la uoc cua ',a);

if (b mod a) = then writeln(a,' la uoc cua ',b) else writeln(a,' khong la uoc cua ',b);

readln; End

4.2 Viết chương trình giải hệ phương trình:

 

 

 

f dy cx

e by ax Program bt4_2;

Var a,b,c,d,e,f,dt,dx,dy,x,y:real; Begin

write('nhap a,b,c,d,e,f:'); readln(a,b,c,d,e,f);

dt:=a*d-b*c; dx:=b*f-e*d; dy:=a*f-c*e; if dt<>0 then begin

x:=dx/dt; y:=dy/dt;

writeln('ptr co nghiem x,y',x:10:2,y:10:2); end;

if dt=0 then

if (dx=0) and (dy=0) then writeln('ptr vo so nghiem'); if (dx=0) and (dy<>0) then writeln('ptr vo nghiem'); readln;

End

4.3 Viết chương trình nhập vào số nguyên a, b, c Kiểm tra xem số có thỏa mãn: - Là cạnh tam giác thường

- Là cạnh tam giác cân - Là cạnh tam giác đều - Không cạnh tam giác

Program bt4_3; Var a,b,c:integer; Begin

(2)

write('nhap a,b,c:'); readln(a,b,c);

if (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+b>c) then if (a=b) and (b=c) then writeln('la tam giac deu')

else

if (a=b) or (b=c) or (a=c) then writeln('la tam giac can') else writeln('la tam giac thuong')

else writeln('khong la canh cua tam giac'); readln;

End

4.4 Viết chương trình nhập vào họ tên, điểm văn, điểm tóan, điểm anh văn học sinh Sau in hình: họ tên, điểm trung bình, xếp lọai học sinh (trên dịng) Cho biết: - Điểm trung bình: (điểm văn + điểm tóan + điểm anh văn) / 3

- Xếp loại: Giỏi, điểm trung bình >= 9.0

Khá, 7.0 <= điểm trung bình < 9.0

Trung bình, 5.0 <= điểm trung bình < 7.0 Yếu, điểm trung bình < 5.0

Program bt4_4;

Var hoten:string[37]; dv,dt,dnn:byte; dtb:real;

xl:string[15]; Begin

write('nhap ho ten:'); readln(hoten);

write('nhap diem toan, diem van, diem ngoai ngu:'); readln(dt,dv,dnn);

dtb:=(dt+dv+dnn)/3;

if dtb>=9.0 then xl:='Gioi';

if (dtb>=7.0) and (dtb<9.0) then xl:='Kha';

if (dtb>=5.0) and (dtb<7.0) then xl:='Trung binh'; if dtb<5.0 then xl:='Yeu';

writeln('Ho ten:',hoten:25,'Diem TB:',dtb:10:2,'Xep loai:',xl:20); readln;

End

4.5 Viết chương trình nhập vào tháng, năm tính số ngày tháng Biết năm nhuần năm chia hết cho chia hết cho 100 phải chia hết cho 400

Program bt4_5;

Var ngay,thang,nam:integer; Begin

write('nhap thang:'); readln(thang);

(3)

case thang of

1,3,5,7,8,10,12:ngay:=31; 4,6,9,11:ngay:=30;

2:if nam mod <> then ngay:=28

else if (nam mod 100= 0)and(nam mod 400<>0)then ngay:=28 else ngay:=29;

end;

writeln('thang',thang,'nam',nam,'ngay',ngay); readln;

End

4.6 Viết chương trình nhập vào ký tự Nếu ký tự thường in ký tự hoa tương ứng, ký tự hoa in ký tự thường tương ứng, ký tự khác in nó

Program bt4_6; Var kt:char; Begin

write('nhap vao ky tu:'); readln(kt);

case kt of

'A' 'Z':kt:=chr(ord(kt)+32);

'a' 'z':kt:=chr(ord(kt)-32);{hoac 'a' 'z':kt:=upcase(kt);} end;

writeln('ky tu da doi la:',kt); readln;

End

5.1 Viết chương trình nhập vào số nguyên dương n, tìm tất ước số n Program bt5_1;

Var i,n:integer; Begin

write('nhap n:'); readln(n);

writeln('cac uoc cua ',n,'la:'); for i:=1 to n

if (n mod i)=0 then write(i:6); readln;

End

5.2 Viết chương trình tính tổng S=1+2+…….+n, với n số nguyên dương nhập từ bàn phím. Program bt5_2;

Var s,i,n:integer; Begin

write('nhap n:'); readln(n);

s:=0;

(4)

End

5.3 Viết chương trình tính tổng S=-1+2-3+…….+(-1)n+n, với n số nguyên dương nhập từ bàn phím.

Program bt5_3; Var s,i,n:integer; Begin

write('nhap n:'); readln(n);

s:=0;

for i:=1 to n

if (i mod 2)=0 then s:=s+i else s:=s-i;

writeln('tong s=',s); readln;

End

5.4 Viết chương trình tính tổng S= 1 2  n1 n , với n số nguyên dương nhập từ bàn phím.

Program bt5_4; Var i,n:integer; s:real;

Begin

write('nhap n:'); readln(n);

s:=0;

for i:=1 to n s:=sqrt((n-i+1)+s); writeln('ket qua s=',s:10:2);

readln; End

5.5 Viết chương trình tính tổng S=12+22+………+n2, với n số nguyên dương nhập từ bàn phím

Program bt5_5; Var s:real; i,n:integer; Begin

write('nhap n:'); readln(n);

s:=0;

for i:=1 to n s:=s+exp(2*ln(i));

writeln('tong',n,'so nguyen duong binh phuong=',s:10:2); readln;

End

5.6 Viết chương trình tính tổng bình phương n số lẻ dương đầu tiên.

{VD: n=4 tính (1*1)+(3*3)}

(5)

Var s:real; i,n:integer; Begin

write('nhap n:'); readln(n);

s:=0;

for i:=1 to n

if i mod <> then s:=s+exp(2*ln(i)) else writeln('khong tinh');

writeln('tong s=',s:10:2); readln;

End

5.7 Viết chương trình tính tổng bình phương n số lẻ dương đầu tiên. {VD:n=3 thi tinh (1*1)+(3*3)+(5*5)}

var i,n,s:integer; begin

write('nhap n='); readln(n);

s:=1;

for i:=2 to 2*n-1 if i mod = then s:=s+sqr(i+1); writeln('s= ',s);

readln end

5.11 Viết chương trình nhập vào số nguyên đếm số chữ số số (VD: 1999 có chữ số)

Program bt5_11; Var n:longint; dem:byte; Begin

write('nhap n:'); readln(n);

dem:=0;

write('so ',n,' co '); repeat

n:=n div 10; dem:=dem+1; until n=0;

writeln(dem,' chu so'); readln;

End

5.12 Viết chương trình nhập vào số nguyên in số đảo ngược số đó. Program bt5_12;

Var n:integer; Begin

(6)

readln(n); repeat

write(n mod 10); n:=n div 10; until n=0;

readln; End

5.13 Viết chương trình nhập vào số nguyên a, b Tìm ước số chung lớn chúng Program bt5_13;

Var r,a,b:integer; Begin

write('nhap a,b:'); readln(a,b);

while b<>0 begin

r:=a mod b; a:=b;

b:=r; end;

writeln('uoc so chung lon nhat cua a, b la: ',a); readln;

End

5.14 Viết chương trình nhập vào số nguyên dương n Kiểm tra xem số n có số ngun tố khơng. Program bt5_14;

Var i,n:integer; Begin

write('nhap n:'); readln(n);

i:=2;

while n mod i <> i:=i+1;

if i=n then writeln(n,' la so nguyen to')

else writeln(n,' khong phai la so nguyen to'); readln;

End

5.15 Viết chương trình nhập vào số nguyên dương n Kiểm tra xem n có phải số hịan thiện khơng.

Program bt5_15; Var n,t,i:integer; Begin

write('nhap n:'); readln(n);

t:=0;

for i:=1 to n-1

if n mod i = then t:=t+i;

(7)

else writeln(n,' khong phai la so hoan thien'); readln;

End

5.17 Viết chương trình tìm tất số có chữ số abc cho abc = a3+b3+c3 Program bt5_17;

Var a,b,c:longint; Begin

for a:=1 to for b:=0 to for c:=0 to

if 100*a+10*b+c=a*a*a+b*b*b+c*c*c then writeln(a,b,c); readln;

End

5.18 Viết chương trình tìm tất số có chữ số cho tổng tất chữ số tích chúng VD: a+b+c = a*b*c

Program bt5_18; Var a,b,c:longint; Begin

for a:=1 to for b:=0 to for c:=0 to

if a+b+c=a*b*c then writeln(a,b,c); readln;

End

5.19 Có loại tờ giấy bạc 500đ, 200đ, 100đ Viết chương trình tìm tất phương án để có được số tiền 1700đ từ loại giấy bạc trên

Program bt5_19; Var a,b,c:integer; Begin

for a:=0 to for b:=0 to for c:=0 to 17

if a*500+b*200+c*100=1700 then

writeln('so to 500:',a,'; so to 200:',b,'; so to 100:',c); readln;

End

5.20 Viết chương trình giải tốn đố sau: Trăm trâu trăm cỏ

Trâu đứng ăn nằm Trâu nằm ăn ba Ba trâu già ăn một

Hỏi có trâu đứng, trâu nằm, trâu già? Program bt5_20;

(8)

for x:=0 to 20 for y:=0 to 33-x

for z:=0 to 100-x-y if x+y+z=100 then

writeln('so trau dung:',x,'; so trau nam:',y,'; so trau gia:',z); readln;

End

6.2 Viết hàm kiểm tra số nguyên x có phải số nguyên tố khơng? Ứng dụng hàm tìm: a Số nguyên tố nhỏ có chữ số.

program bt6_2a; var i:integer;

function snt(n:integer):boolean; var i:integer;

begin i:=2;

while n mod i <> i:=i+1; if n=i then snt:=true

else snt:=false; end;

begin i:=100;

while (not snt(i)) i:=i+1;

writeln('snt nho nhat co chu so la:',i); readln;

end

b Số nguyên tố lớn có chữ số. program bt6_2b;

var i:integer;

function snt(n:integer):boolean; var i:integer;

begin i:=2;

while n mod i <> i:=i+1; if n=i then snt:=true

else snt:=false; end;

begin i:=999;

while (not snt(i)) i:=i-1;

writeln('snt lon nhat co chu so la:',i); readln;

end

6.3 Viết hàm kiểm tra số nguyên x có phải số phương khơng? Ứng dụng hàm in hình số phương nhỏ 100

(9)

var i:integer;

function scp(x:integer):boolean; begin

if sqrt(x)=round (sqrt(x))then scp:=true else scp:=false;

end; begin

for i:=1 to 99

if scp(i) then writeln(i,'la scp'); readln;

end

6.4 Viết hàm tính n! Áp dụng hàm viết chương trình tính: e = + 1/1! + 1/2! +……+ 1/n!

program bt6_4; var i,n:integer; e:real;

function gt(n:integer):longint; begin

if n=1 then gt:=1 else gt:=gt(n-1)*n; end;

begin

write('nhap n:'); readln(n);

e:=1;

for i:=1 to n e:=e+1/gt(i); writeln('tong e=',e:10:2); readln;

end

8.1 Viết chương trình nhập vào dãy số nguyên in max, dãy (không xếp dãy).

Program bt8_1;

Var a: array[1 100] of integer; i, n, max, min: integer; Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

write('a[',i,'] = '); readln(a[i]); end;

(10)

begin

if max<a[i] then max:=a[i]; if min>a[i] then min:=a[i]; end;

writeln('max = ',max); writeln('min = ',min); readln;

End

8.2 Viết chương trình nhập vào dãy số nguyên, xếp dãy theo thứ tự giảm dần, in kết quả hình.

Program bt8_2;

Var a: array[1 100] of integer; i, j, n, t : integer;

Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

write('a[',i,'] = '); readln(a[i]); end;

for i:=1 to n-1 for j:=1 to n-i

if a[j]<a[j+1] then begin

t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;

for i:=1 to n writeln(a[i]:5); readln;

End

8.4 Viết chương trình nhập vào dãy số nguyên, nhập trị x, tìm phần tử trong dãy có trị x.

Program bt8_4;

Var a:array[1 100] of integer; i, n, x : integer;

Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

(11)

write('Cho biet tri can tim : '); readln(x);

i:=1;

while (a[i]<>x) and (i<=n) i:=i+1;

if i>n then writeln('khong co tri ',x,' day') else writeln('phan tu dau tien co tri = ',x,' la : a[',i,']'); readln;

End

8.5 Viết chương trình nhập vào dãy số nguyên, nhập trị x, đếm xem dãy có mặt số x ?

Program bt8_5;

Var a:array[1 100] of integer; i, n, x, dem : integer;

Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

write('a[',i,'] = '); readln(a[i]); end;

write('Cho biet tri x can dem : '); readln(x);

dem:=0;

for i:=1 to n if a[i]=x then dem:=dem+1; writeln('co ',dem,' phan tu ',x,' day'); readln;

End

8.6 Viết chương trình nhập vào dãy số nguyên, đếm số số dương, âm, không của dãy.

Program bt8_6;

Var a:array[1 100] of integer;

i, n, demam, demduong, demkhong : integer; Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

write('a[',i,'] = '); readln(a[i]); end;

(12)

if a[i]<0 then demam:=demam+1

else if a[i]>0 then demduong:=demduong+1 else demkhong:=demkhong+1;

writeln('co ',demam,' so am day');

writeln('co ',demduong,' so duong day'); writeln('co ',demkhong,' so khong day'); readln;

End

8.7 Viết chương trình nhập vào dãy số ngun, tính tổng bình phương số dương dãy.

Program bt8_7;

Var a: array[1 100] of integer; i, n, s : integer;

Begin

write('Cho biet so phan tu cua day : '); readln(n);

for i:=1 to n begin

write('a[',i,'] = '); readln(a[i]); end;

s:=0;

for i:=1 to n

if a[i]>0 then s:=s+a[i]*a[i];

writeln('Tong binh phuong cac so duong day s= ',s); readln;

End

8.8 Viết chương trình nhập vào dãy, kiểm tra xem dãy có đối xứng khơng ? Program bt8_8;

Var a: array[1 100] of integer; i, n: integer;

Begin

write('cho biet so phan tu cua day :'); readln(n);

for i:=1 to n begin

write('nhap a[',i,']='); readln(a[i]);

end; i:=1;

while (a[i]=a[n-i+1]) and (i<=n div 2) i:=i+1; if i> n div then writeln('Day doi xung')

else writeln('Day khong doi xung'); readln;

(13)

Bài Viết CT in hình số nguyên từ đến 100 cho 10 số xuống dịng

Program bai1; var i:byte; Begin

for i:=1 to 100 begin

write(i:3);

if i mod 10=0 then writeln; end;

Readln End

Bài Viết CT in hình bảng cửu chương

Program bai2; Uses crt; Var i,j:byte; Begin

Clrscr;

for i:=1 to 10 for j:=2 to 10

begin

write(j:2,'*',i:2,'=',i*J:2,' ');

if j=10 then writeln; end;

Readln End

Bài Viết CT tìm lời giải cho tốn sau

a Trong giỏ vừa thỏ vừa gà, 100 cẳng, 43 đầu Hỏi gà, thỏ?

Program bai3; Uses crt;

Var ga,tho:byte; Begin

Clrscr;

for ga:=1 to 43 begin

tho:=43 - ga;

if 4*tho+2*ga=100 then writeln('so ga va tho la: ',ga,' ',tho); end;

Readln End

b.Vừa gà vừa chó bó lại cho trịn, 36 , 100 chân chẵn Hỏi nhiêu gà, nhiêu chó?

Program bai3b; Var ga,cho:byte; Begin

(14)

cho:=36 - ga;

if 4*cho+2*ga=100 then write('so ga va cho la: ',ga,' ',cho); end;

Readln End

Bài Viết chương trình nhập vào hai số nguyên dương xét xem hai số có nguyên tố nhau hay không?

Program sntcungnhau; Uses crt;

Var x,y: integer;

Function UCLN(a,b: integer): integer ; Var r : integer ;

begin

while b<>0 begin r := a mod b; a := b;

b := r; end;

UCLN := a; end;

Begin clrscr;

write('nhap vao so x:');readln(x); write('nhap vao so y:');readln(y);

if ucln(x,y) = then writeln(x,' va ', y, 'la snt cung nhau') else writeln(x, 'va', y, 'ko la snt cung nhau');

Readln; End

Bài Viết chương trình tìm in hình tất hốn vị 12345 (Ví dụ: 12345 12354 12435…).

Program hoanvi; Uses crt;

Var a,b,c,d,e,dem,d1:integer; Begin

clrscr;

writeln('Ban doi ti nhe!'); dem:=0; d1:=0;

(15)

begin

if (a<>b) and (a<>c) and (a<>d) and (a<>e) and (b<>c)and (b<>d)and (b<>e)and (c<>d)and (c<>e) and (d<>e) then

writeln(a,b,c,d,e); d1:=d1+1;

end;

writeln('co ',d1,' so hoan vi cua so 12345'); Readln;

End

Bài Nhập từ bàn phím tuổi cha (hiện tuổi cha lớn lần tuổi tuổi cha hơn tuổi 25) Đưa hình câu trả lời cho câu hỏi "Bao nhiêu năm tuổi cha gấp đôi tuổi con"?

Program tuoichatuoicon; Var a,b,t :integer;

Begin

Repeat

writeln('nhap tuoi cha'); readln(a);

writeln('nhap tuoi con'); readln(b);

Until (a-b)>=25; t:=a-2*b;

writeln('tuoi cha gap doi tuoi cha sau ',t,' nam'); readln;

Ngày đăng: 01/02/2021, 17:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan