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=<ĐTB < 8.0 và không có môn nào dưới 5
c. Loại Trung bình : 5.0 =<ĐTB < 6.5 và không có môn nào dưới 3.5
d. Loại Yếu : Còn lại.
program xep_loai_hoc_sinh;
uses crt;
var t,l,h,tbc, min:real;
xl:string;
begin
write('moi nhap diem toan,ly,hoa: ');
readln(t,l,h);
min:=l;
if min>t then min:=t;
if min>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);
end.
Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
4. VCT giải hai bài toán cổ: 100 trâu 100 bó cỏ và vừa gà vừa chó 36 con 100 chân?
var d,n,g:integer;
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: ');
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
tam:=a[i];
a[i]:=a[j];
Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
a[j]:=tam;
end;
for i:=1 to n do
writeln(a[i]);
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<1000);
a:=n div 100;
b:=n div 10 mod 10 ;
c:=n mod 10;
s[1]:='mot';
s[2]:='hai';
s[3]:='ba';
s[4]:='bon';
s[5]:='nam';
uses crt;
var s,s1,s2,t:string;
a:array[1..100] of string;
b:array[1..100] of integer;
i,j,k:integer;
begin
clrscr;
Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
write(' Nhap xau s:');readln(s);
s:=s+' ';
for i:= 1 to length(s) do
if s[i]<>#32 then t:=t+s[i]
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ố 09; S4 chứa các ký tự khác( :;><?/’”!@#$%^&*...)
uses crt;
var hoa,thuong,so:set of char;
s,s1,s2,s3,s4:string;
i:integer ;
begin
clrscr;
write('nhap xau s:');readln(s);
13. VCT nhập các kí tự từ bàn phím không cho hiện ký tự này lên mà chỉ hiện các dấu ‘*’ như kiểu mật
khẩu. Hỏi có hiện mật khẩu không nếu có thì xuất mật khẩu vừa nhập ra.
uses crt;
var s:string;
ch,tl:char;
Begin
clrscr;
write('Nhap mat khau:');
Bài tập Pascal BỒI DƯỢNG HỌC SINH GIỎI HUYỆN GV: Trần Minh Thọ
repeat
ch:=readkey;
write('*');
s:=s+ch;
until ch=#13;
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ố <4000 ra số La Mã ( L :50; C:100; D:500; M:1000 - vd:2364 MMCCDLXIV)
var a,x,y,w,z:integer;
n: array [0..3] of string;
t: array [0..9] of string;
c: array [0..9] of string;
d: array [0..9] of string;
begin
n[1]:='C';n[2]:='CC';n[3]:='CCC';
t[1]:='M';t[2]:='MM';t[3]:='MMM';t[4]:='MD';
t[5]:='D';t[6]:='DM';t[7]:='DMM';t[8]:='DMMM';t[9]:='MC';
c[1]:='X';c[2]:='XX';c[3]:='XXX';c[4]:='XL';
',s1)
else write('Ban nhap so chinh xac:',s);readln;
end.
16. Nhập một xâu s bao gồm số và kí tự, in ra xâu đã sắp xếp số theo thứ tự tăng dần còn vò trí các kí tự vẫn
giữ nguyên?
Ví dụ: nhập: abc6ghj7kkkkk1hhhh9
Kết quả: abc1ghj6kkkkk7hhhh9
var a:array[1..100]of integer;