Xem mẫu
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
BÀI TẬP CƠ BẢN - Đáp án ++
1. Viết chương trình tính điểm trung bình 3 môn Toán, Lý , Hoá theo hệ số 2,1,1 sau đó xếp loại như sau:
a. Loại Giỏi : ĐTB >= 8.0 và không có môn nào dưới 6,5
b. Loại Khá : 6.5=h then min:=h;tbc:=(t*2+l+h)/4;
if (tbc>=8) and (min>=6.5) then xl:='Gioi';
else if (tbc>=6.5) and (min>=5)
then xl:=’Kha’;
else if (tbc>=5) and (min>=3.5)
then xl:='Trung binh'
else xl:='yeu';
writeln(‘Diem trung binh:’,tbc:0:1,’ Xep loai:’,xl);
readln;
end.
2. VCT nhập vào tháng, năm và cho biết tháng đó có bao nhiêu ngày?
var n,t,ngay:integer;
begin
write('nhap thang:');readln(t);
write('nhap nam:');readln(n);
case t of
1,3,5,7,8,10,12: ngay:=31;
4,6,9,11:ngay:=30;
2: if n mod 4 = 0 then ngay :=29
else ngay:=28;
end;
writeln('Thang:',t,' nam:',n,' co: ',ngay,' ngay');
readln;
end.
3. VCT tìm ước chung lớn nhất và bội chung nhỏ nhất của hai số nhập vào từ bàn phím?
var a,b,min,max,ucln:integer;
begin
write('moi nhap hai so can xac dinh: ');
readln(a,b);
max:=a;
min:=b;
if max mod min=0 then ucln:=min
else if min mod max=0 then ucln:=max
else
begin
repeat
if max>min then max:=max-min
else if max
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
begin
for d:=1 to 20 do
for n:=1 to 33 do
for g:=1 to 98 do
if d*5+n*3+g=100
then writeln('Trau dung:',d,' trau nam:',n,' trau gia:',g);
readln;
end.
-----
var i,j:integer;
begin
for i:=1 to 25 do
for j:=1 to 50 do
if (i*4+j*2=100) and (i+j=36) then writeln(i,' con cho, ',j,' con ga.');
readln;
end.
5. VCT xuất các số nguyên tố từ n đến m.(Dùng chương trình con)?
var j,n,m,i:integer;
function ktranto(x:integer):boolean;
begin
ktranto:=true;
for i:=2 to x -1 do
if x mod i=0 then ktranto:=false;
end;
begin
write('moi nhap n,m: ');
readln(n,m);
for j:=n to m do
if ktranto(j) then writeln(j);
readln;
end.
6. VCT xuất các số hoàn hảo từ n đến m.(Dùng chương trình con)?
var x,tu,j,i,n,m:integer;
function ktrahhao(x:integer):boolean;
begin
tu:=0;
ktrahhao:=false;
for i:=1 to x div 2 do
if x mod i=0 then tu:=i+tu;
if tu=x then ktrahhao:=true;
end;
begin;
write('moi nhap n,m: ');
readln(n,m);
for j:=n to m do
if ktrahhao(j) then writeln(j);
readln;
end.
7. VCT tạo một mảng số nguyên gồm n phần tử nhỏ hơn 1000. Sắp xếp mảng theo tứ tự tăng dần và
giảm dần.
const n=10;
var i,j,tam:integer;
a:array[1..n]of integer;
begin
randomize;
for i:=1 to n do a[i]:=random(1000);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
readln;
end.
8. VCT đọc một số có 3 chữ số nhập vào từ bàn phím?
uses crt;
Var s:array[1..9] of string;
a,b,c,n:integer;
begin
clrscr;
repeat
write('nhap so nguyen n:');readln(n);
until (n>99)and(n=' A')AND(s[i]
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
else begin
inc(j);
a[j]:=t;
t:='';
end;
for i:=1 to j do b[i]:=length(a[i]);
for k:=i downto 1 do writeln(a[k]:20,' :',b[k]:4,' ky tu');
readln;
end.
11. VCT tách một xâu S ra thành 4 xâu: S1: chứa các chữ cái in HOA, S2: chứa các ch ữ cái th ường; S3 ch ứa
các số 0 9; S4 chứa các ký tự khác( :;>
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
writeln;
write('Co hien mat khau khong(c/k):');readln(tl);
if upcase(tl)='C' then write(' Mat khau la:',s);
readln;
end.
14. VCT đổi một số
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
if (s[i] in so) then
begin
val(s[i],x,c);
j:=j+1;
a[j]:=x
end;
for i:=1 to j-1 do
for n:=i+1 to j do
if a[i]>a[n] then
begin
tam:=a[i];
a[i]:=a[n];
a[n]:=tam;
end;
for i:=1 to j do
begin
str(a[i],s1);
s2:=s2+s1;
end;
n:=0;s1:='';
for i:=1 to length(s) do if s[i] in so then
begin
inc(n);
delete(s,i,1);
insert(s2[n],s,i);
end;
write(s);
readln;
end.
17. VCT cho nhập một xâu ký tự trong đó có lẫn vào một số có 3 chữ số (vd: fffhgj234fgg)- có ki ểm tra vi ệc
nhập sai (vd: jghjg45jk hoặc ggdg012gdg hoặc ggdgg34hjhh3…) và cho phép nh ập l ại. Ki ểm tra cho biết
số đó có phải là số nguyên tố không?
var s,s1:string;
x,vt,c,dem,i:integer;
function ktranto(a:integer):boolean;
begin
ktranto:=true;
for i:=2 to a-1 do
if a mod i=0 then ktranto:=false;
end;
begin
repeat
dem:=0;
write('moi nhap xau: ');
readln(s);
for i:=1 to length(s) do
if s[i] in ['0'..'9'] then
begin
dem:=dem+1;
if dem=1 then vt:=i;
s1:=copy(s,vt,3);
val(s1,x,c);
end;
until (c=0) and (x>99) and (dem=3);
if ktranto(x) then write('day la so nguyen to :',x);
readln;
end.
18. VCT kiểm tra việc nhập một ký tự và một xâu ký tự bằng kí tự in hoa( nếu không đúng thì nhập l ại)
sau đó cho biết số lần ký tự xuất hiện trong xâu ký tự?
uses crt;
var i,dem:integer;
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
ch:char;
s:string;
begin
clrscr;
repeat
write('moi nhap ki tu: ');
readln(ch);
until ch in ['A'..'Z'];
repeat
write('moi nhap xau ki tu: ');
readln(s);
dem:=0;
for i:=1 to length(s) do
if s[i] in ['A'..'Z'] then inc(dem);
until dem=length(s);
dem:=0;
for i:=1 to length(s) do
if ch=s[I] then inc(dem);
write(ch,' xuat hien ',dem, ' trong ', s);
readln;
end.
19. VCT nhập vào một 2 xâu S và s1 in ra các lý tự chung của hai xâu?
var s,s1,s2:string;
i:integer;
begin
write('moi nhap sau thu nhat: ');
readln(s);
write('moi nhap sau thu hai: ');
readln(s1);
i:=1;
repeat
s2:=copy(s,i+1,length(s));
if pos(s[i],s2)0 then delete(s,i,1)
else inc(i);
until pos(s[i],s2)=0;
for i:=1 to length(s) do
if pos(s[i],s1)0 then
writeln('ki ',s[i],' xuat hien trong ca hai sau');
readln;
end.
20. VCT vẽ các hình:
a. Chữ nhật đặc. d. Tam giác cân đặc. Tam giác vuông đặc.
g.
b. Chữ nhật rỗng. e. Tam giác cân rỗng. h. Tam giác vuông rỗng.
c. f.
(Hình chữ nhật: nhập chiều dài và chiều rộng, Tam giác: nh ập chiều cao; vẽ các hình trên v ới ký t ự
nhập từ bàn phím; có thể làm thành 6 bài riêng biệt hoặc làm chung một ch ương trình có l ựa ch ọn )
uses crt; {BAI TOAN VE CAC LOAI HINH VOI KICH THUOC VA KI TU NHAP TU BAN PHIM}
var c,h,n,d,r,luachon:integer; ch:char;
begin
clrscr;
writeln(' Ve hinh chu nhat dac, 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(' Ve tam giac vuong dac, nhap:5');
writeln(' Ve tam giac vuong rong, nhap:6');
writeln;
repeat
Write('Moi nhap so:');
readln(luachon);
until (0
- Bài tập Pascal BỒI DƯỠNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
case luachon of
1: BEGIN
write('nhap chieu dai hinh chu nhat dac:');readln(d);
write('nhap chieu rong hinh chu nhat dac:');readln(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:');readln(d);
write('nhap chieu rong hinh chu nhat rong:');readln(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 can dac:');readln(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 can rong:');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;
5:BEGIN
write('Nhap chieu cao tam giac vuong dac:');readln(n);
clrscr;
for h:=1 to n do
begin
for c:=1 to h do write(ch);
writeln;
end; END;
6:BEGIN
write('Nhap chieu cao tam giac vuong rong:');readln(n);
clrscr;
for h:=1 to n do
begin
for c:=1 to h do
if (c=1)or(h=n)or(c=h)then write(ch) else write(' ');
writeln;
end; END;
END;{KET THUC LENH CASE}
readln; end.
(Tìm cách giải khác cho các bài tập trên)
nguon tai.lieu . vn