HĐBM
TIN HỌC THOẠI SƠN.
Bài tập pascal lớp 8
Cập nhật 10/2021.
I.
XỬ LÝ SỐ.
Bài 1: Hãy xuất câu ‘chao cac ban’ ra màn
hình.
Bài 2: Lập trình theo thứ tự: chú ý đến
khoảng cách các chữ chèn vào.
·
Xuất:
‘Ban ten gi’.
Write(‘Ban ten gi? ’);
·
Nhập:
<tên của
mình> Readln(ten);
·
Xuất:
‘Pascal xin chao ban ‘
,<tên>. Writeln(‘Pascal
xin chao ban ‘,ten);
Bài 3: Viết chương trình nhập vào số a và số b,
xuất ra màn hình tổng của hai số đó. (làm tương tự đối với hiệu, tích thương).
-
Nhập: số a, số b.
-
Xử lý: tong := a+b;
-
Xuất kết quả: ‘Tong cua hai so vua nhap la: ‘, tong.
Bài 4: Nhập vào một số nguyên có hai chữ
số, in ra chữ số hàng chục và hàng đơn vị của số đó.
Bài 5: Viết chương trình tính tiền bút bi
khi nhập vào số bút (nhập không quá 200) biết giá của mỗi cây bút bi là 3000
đồng.
Bài 6: Viết chương trình nhập năm sinh và năm
hiện tại, xuất ra màn hình số tuổi của bạn.
-
Nhập: năm sinh, năm hiện tại.
-
Xử lý: tuoi := năm hiện tại - năm sinh
-
Xuất kết quả: ‘So tuoi cua ban la: ‘, tuoi.
Bài 7: Hãy nhập vào chiều dài d và chiều
rộng r, viết chương trình tính chu vi và diện tích hình chữ nhật.
- Chu vi hình chữ nhật: (dài + rộng)*2.
- Diện tích hình chữ nhật: dài * rộng.
Bài 8: Hãy nhập vào chiều cao h và cạnh đáy
a, viết chương trình tính diện tích hình tam giác. ( s=cạnh đáy* chiều
cao/2)
Bài 9: Hãy nhập vào một cạnh a, tính chu vi
và diện tích hình vuông.
- chu vi: cạnh *4. Diện tích: cạnh * cạnh.
Bài 10: Hãy nhập vào bán kính r, viết chương
trình tính chu vi và diện tích hình tròn có bán kính r.
Bài 11: Một cửa hàng bán nước ngọt với giá
sỉ là 7000đ/chai với số chai chẳn chục, giá 7500đ/chai với số chai lẻ. Nhập vào
số chai cần mua và viết chương trình tính tiền cho khách theo giá trên.
- Nhập n (số chai cần mua).
- Số chai lẻ = n mod 10;
- Số chai chẳn = (n div 10)*10;
Bài 12: Tách số. Nhập vào một
chữ số có ba số, viết chương trình tách ra số hàng trăm hàng chục và hàng đơn
vị.
Ví dụ: nhập vào số n = 352.
Kết quả: Số 352 có:
- Số hàng
đơn vị: 2.
- Số hàng
chục: 5
- Số hàng
trăm: 3.
II.
CẤU TRÚC RẼ NHÁNH.
Bài 1a: Nhập vào chiều cao của bạn a và bạn
b, Nếu a cao hơn b thì in ra màn hình “bạn a cao hơn”, nếu a không cao hơn thì
không thông báo và kết thúc.
If
a>b then writeln(‘Ban a cao hon’)
Bài 1b: Nhập vào chiều cao
của bạn a và bạn b, in ra màn hình thông báo bạn nào cao hơn.
If
a>b then writeln(‘Ban a cao hon’)
Else
writeln(‘Ban b cao hon);
Bài 2: Viết chương trình
nhập vào một số a, in kết quả thông báo số a là số chẳn hay số lẻ.
Bài 3: Viết chương trình nhập vào một số a,
in kết quả thông báo số a là số âm hay số dương.
Bài
4: Nhập vào chiều dài 3 cạnh a, b, c của một tam giác. Viết chương
trình cho biết đây có phải là một tam giác đều không?
- Nếu a=b và b=c và thì là tam giác đều,
ngược lại không là tam giác đều.
Bài 5: Nhập vào 3 cạnh a, b, c của một tam
giác. Viết chương trình cho biết đây có phải là một tam giác cân không?
- Nếu a=b hoặc b=c hoặc a=c và thì là tam
giác cân, ngược lại không là tam giác cân.
III.
CẤU TRÚC LẶP VỚI SỐ LẦN XÁC ĐỊNH.
Bài
1: Viết
chương trình in ra màn hình 10 dấu sao * theo chiều ngang.
bài
2: Viết
chương trình in ra màn hình n dấu sao * theo chiều ngang, với n được nhập từ
bàn phím.
Bài 3: Viết chương trình in ra màn hình n
dòng chữ (giả sử nhập n=10) như sau:
Day la dong thu 1.
Day
la dong thu 2.
Day la dong thu 3.
Day
la dong thu 4.
Day la dong thu 5.
Day
la dong thu 6.
Day la dong thu 7.
Day
la dong thu 8.
Day la dong thu 9.
Day
la dong thu 10.
Bài 4: Nhập vào số nguyên dương n, viết
chương trình in ra các số tự nhiên nhỏ hơn hoặc bằng n.
-
Nhập n;
-
For i:= 1 to n do write(i, ‘ ‘);
Bài 5: Tính tổng của n số tự nhiên đầu
tiên, với n là số nguyên dương và được nhập từ bàn phím.
-
Nhập n;
-
tong:=0;
For
i:=1 to n do tong:=tong+i;
-
In kết quả là, tong.
Bài 6: Nhập vào số nguyên n, viết chương
trình tính tích n số tự nhiên đầu tiên. (còn gọi là tính giai thừa n).
n! được biết như sau:
n!=
1 với n=0.
n!=
1.2.3…n (tích của n số từ 1 đến n).
-
Nhập n;
- gt:=1;
for
i:=1 to n do gt:=gt*i;
-
in gt.
Bài
7: Nhập vào số nguyên dương n, viết chương trình tính tổng các số lẻ
nhỏ hơn hoặc bằng n.
-
Nhập n;
-
TL:= 0;
for
i:= 1 to n do
If
i mod 2 = 1 do TL:= TL +i; (Nếu tính tổng chẳn thì điều kiện: i mod 2 = 0)
-
In kết quả (TL).
Ghi
chú: Bài này có thể đổi lại là tính tổng các số chẳn…
Bài 8: Nhập vào số nguyên dương n, viết
chương trình in ra tất cả các số ước của n.
-
Nhập n;
-
for i:= 1 to n do
If
n mod i = 0 then write(i, ‘ ‘);
Bài 9: Nhập vào số nguyên n, viết chương
trình xem số n có phải là số nguyên tố không?
Cách
1: dùng câu lệnh while … do
-
nhập n;
- i:=2;
while n mod i <>0 do i:= i+1;
if i=n then writeln(n, ' la so nguyen to')
else writeln(n, ' khong la so nguyen to');
Cách 2:
KT:= true;
for
i:=2 to n-1 do if (n mod i)= 0 then KT := false;
Bài
tập phụ không gợi ý: Các bài toán cổ:
9. Trâu
đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Ba con một bó
Trăm con ăn cỏ
Trăm bó no nê.
Hỏi có bao nhiêu trâu đứng , trâu nằm , trâu già ?
10. Vừa gà vừa chó,
bó lại cho tròn,
ba mươi sáu con,
một trăm chân chẵn.
Hỏi có bảo nhiêu chó
gà?
IV.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC.
Lưu
ý: làm lại bài tập 1, 2, 3, 4, 5 bằng lệnh while.
Bài
1: Viết chương trình: Cần cộng bao nhiêu số tự nhiên đầu tiên để tổng
nhỏ hơn hoặc bằng1000. In ra màn hình số tự nhiên và số tổng đó.
Bài
2: VCT, Tính tổng của bao nhiêu số số tự nhiên đầu tiên để tổng của nó
nhỏ hơn hoặc bằng n. Với n là số nguyên dương và được nhập từ bàn phím.
-
Nhập n;
-
tong:=0; i:=0;
While
tong<= n do
Begin
i:= i+1;
tong:=tong+i;
end;
-
In kết quả là, i.(tổng của i số tự nhiên đầu tiên để tổng nhỏ hơn hoặc bằng n.
Bài
3: Viết chương trình để tính trung bình của n số thực x1, x2,x3,x4…xn.
Biết các số n và x1, x2,x3,x4…xn được nhập từ bàn phím.
V.
LÀM VIỆC VỚI DÃY SỐ - BÀI TẬP MẢNG.
Bài
1: Viết chương trình nhập dãy số gồm n số nguyên nhập từ bàn
phím, thực hiện:
-
In dãy số đã nhập ra màn hình.
-
In dãy số đó theo thứ tự ngược lại.
-
Phần tử thứ x có giá trị là bao nhiêu? (x<n và được nhập từ bàn phím).
Bài 2: Nhập vào n số nguyên dương, viết
chương trình tính tổng các số vừa nhập. Với n được nhập từ bàn phím.
-
Nhập n, nhập giá trị từng phần tử.
-
tong:= 0;
For i:=1 to n do tong:= tong + a[i];
-
in kết quả là tong.
Bài 3: Nhập vào n số nguyên dương, viết
chương trình tìm số lớn nhất, số nhỏ nhất trong n số đó.
-
Nhập n, nhập giá trị từng phần tử.
- max:=a[1];
for i:=2 to n do
if max<=a[i] then max:=a[i];
min:=a[1];
for i:=2 to n do
if min>=a[i] then min:=a[i];
-
In kết quả, min max.
Bài
4: Viết chương trình nhập dãy n số và in ra tổng các số chẳn, tổng các
số lẽ trong dãy vừa nhập.
-
Nhập n, nhập giá trị từng phần tử.
-
TC:=0;
TL:=0;
for
i:=1 to n do
if
a[i] mod 2= 0 then TC:=TC+a[i]
else
TL:=TL+a[i];
-
In kết quả, TC, Tl.
Bài
5: Viết chương trình nhập n số và cho biết số nhỏ nhất trong các số
vừa nhập là số thứ mấy.
-
Nhập n, nhập giá trị từng phần tử.
-
min:=a[1];
for
i:=2 to n do
if
min>=a[i] then
Begin
min:=a[i];
k:=i;
end;
-
In kết quả, số thứ k.
Ghi
chú: sửa lại đề đối với trường hợp số lớn nhất.
Bài
6: Viết chương trình nhập n số, sắp xếp và in ra các số đã nhập theo
thứ tự:
a. Tăng dần.
b. Giảm dần.
a.
- Nhập n, nhập giá trị từng phần tử.
- 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];
a[j]:=tam;
end;
-
In kết quả, dãy số đã sắp xếp tăng dần: for i:=1 to n do write(a[i],'
');
b.
Đối với trường hợp giảm dần thì điều kiện ngược lại a[i]<a[j];