Bài tập Pascal cơ bản phần 1

Bài tập Pascal cơ bản phần 1

Phan Nhật Chánh

Chánh12 tháng 08, 2019

9 min read
·
views
·
likes

Xử lý số

Phần bài tập

Bài 1: Viết CT xuất câu thông báo "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?’ - Nhập: <tên của mình> - Xuất: ‘xin chao ban <tên của mình> đen voi Pascal’.
- Xuất: ‘Ban ten gi?’ - Nhập: <tên của mình> - Xuất: ‘xin chao ban <tên của mình> đen voi Pascal’.

Bài 3: 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.

  • Chu vi đường tròn: Chuvi=2πrChu vi = 2 \ast \pi \ast r
  • Diện tích hình tròn: Dientich=πr2Dien tich = \pi \ast r^2

Bài 4: 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 Chuvi=(dai+rong)2Chuvi = (dai + rong)*2
  • Diện tích hình chữ nhật Dientich=dairongDientich = dai * rong

Bài 5: 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.

dientich=canhdaychieucao2dien tich = \frac{canh_day * chieu_cao}{2}

Bài 6: Hãy nhập vào một cạnh a, tính chu vi và diện tích hình vuông.

  • Chuvi=canh4Chu vi = canh * 4
  • Dientich=canhcanhDien tich = canh * canh

Bài 7: Nhập vào 4 số, viết chương trình tính trung bình cộng 4 số đó.

Bài 8: In đão số. Nhập vào hai số AB, in ra màn hình ngược lại là BA. Ví dụ nhập 15 thì in ra 51.

- Thuật toán đảo số: - Nhập A, B. - tam:= A; A:=B; B:=tam; Như vậy A bây giờ mang giá trị của B, B mang giá trị của A. In kết quả write(A,B);
- Thuật toán đảo số: - Nhập A, B. - tam:= A; A:=B; B:=tam; Như vậy A bây giờ mang giá trị của B, B mang giá trị của A. In kết quả write(A,B);

Bài 9: Một của hàng bán nước ngọt với giá sỉ là 7000đ/chai nếu mua chẳn chục, giá 7500đ/chai nếu mua 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 10Số chai chẳn = n div 10

Bài 10: 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ị.

Nhập vào số n = 352 Kết quả: Số 352 có: - So hang don vi la 2 - So hang chuc la 5 - So hang tram la 3
Nhập vào số n = 352 Kết quả: Số 352 có: - So hang don vi la 2 - So hang chuc la 5 - So hang tram la 3

Cấu trúc rẽ nhánh

Phần bài tập

Bài 11: 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');
if a>b then writeln('Ban a cao hon') else writeln('Ban b cao hon');

Bài 12: Viết chương trình tính kết quả của a chia b, với a, b được nhập từ bàn phím. Nếu trường hợp b<0b < 0 thì in thông báo phép chia không thực hiện được.

Bài 13: 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 đều không?

Nếu a=ba=bb=cb=c và thì là tam giác đều, ngược lại không là tam giác đều.

Bài 14: 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=ba=b hoặc b=cb=c hoặc a=ca=c và thì là tam giác cân, ngược lại không là tam giác cân.

Bài 15: 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 vuông không?

Nếu a2=b2+c2a^2 = b^2 + c^2 hoặc b2=c2+a2b^2 = c^2 + a^2 hoặc c2=a2+b2c^2 = a^2 + b^2 là tam giác vuông.

Cấu trúc lặp với số lần xác định

Phần bài tập

Bài 16: Nhập vào số nguyên dương n, viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n.

- Nhập n; - For i:= 1 to n do If i mod 2 = 1 then write(i, ‘ ‘);
- Nhập n; - For i:= 1 to n do If i mod 2 = 1 then write(i, ‘ ‘);

Bài 17: 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).
- 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).

Các bài 16 và bài 17 có thể đổi lại là số chẳn…

Bài 18: 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, ‘ ‘);
- Nhập n; - for i:= 1 to n do If n mod i = 0 then write(i, ‘ ‘);

Bài 19: In bảng cữu chương từ 2 đến 9.

for i:=2 to 9 do for j:=1 to 10 do Writeln(i, ‘ x ‘, j, ‘ = ’, i*j);
for i:=2 to 9 do for j:=1 to 10 do Writeln(i, ‘ x ‘, j, ‘ = ’, i*j);

Có thể sửa đề lại: in ra bảng cửu chương n, với n được nhập từ bàn phím.

Bài 19: 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');
- 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: dùng câu lệnh for … to … do

- nhập n; - dem:=0; for i:=2 to n-1 do if n mod i = 0 then dem:= dem+1; if dem=0 then writeln(n, ' la so nguyen to') else writeln(n, ' khong la so nguyen to');
- nhập n; - dem:=0; for i:=2 to n-1 do if n mod i = 0 then dem:= dem+1; if dem=0 then writeln(n, ' la so nguyen to') else writeln(n, ' khong la so nguyen to');

- Cách 3

KT:= true; for i:=2 to n-1 do if (n mod i)= 0 then KT := false;
KT:= true; for i:=2 to n-1 do if (n mod i)= 0 then KT := false;

Bài 20: Nhập vào số nguyên n, viết chương trình tính 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;
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;

Bài 21: 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
- Nhập n; - tong:=0; For i:=1 to n do tong:=tong+i; - In kết quả là, tong

Bài 22: Các bài toán cổ:

  • Câu a: Hỏi có bao nhiêu trâu đứng, bao nhiêu trâu nằm và bao nhiêu trâu già?
Trăm trâu trăm cỏ 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ê.
Trăm trâu trăm cỏ 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ê.
  • Câu b: Hỏi có bảo nhiêu con chó và bao nhiêu con gà?
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.
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.

Lặp với số lần chưa biết trước

Phần bài tập

Bài 23: Viết chương trình: Cần cộng bao nhiêu số tự nhiên đầu tiên để tổng nhỏ nhất lớn hơn 1000. In ra màn hình số tự nhiên và số tổng đó.

Bài này được nâng cao hơn nếu là : Cần cộng bao nhiêu số tự nhiên đầu tiên để tổng nhỏ nhất lớn hơn n, với n được nhập từ bàn phím.

Bài 24: Viết chương trình tính tổng T=1/1+1/2+1/3+…+1/100.

(Làm bằng 2 cách: dùng lệnh for … to … do …while … do …)

Bài này cũng có thể sửa lại số 100 là n, với n được nhập từ bàn phím.

Bài 25: Viết chương trình để tính trung bình của n số thực x1,x2,x3,x4,,xnx_1,x_2,x_3,x_4,…,x_n. Biết các số n và x1,x2,x3,x4,,xnx_1,x_2,x_3,x_4,…,x_n được nhập từ bàn phím.

Làm việc với dãy số - Bài tập mảng

Phần bài tập

Bài 26: 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<nx < n và được nhập từ bàn phím).

Bài 27: 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.
- 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 28: 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.
- 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 29: 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.
- 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.

Sửa lại đề đối với trường hợp số lớn nhất.

Bài 30: 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ự tăng dần và giảm dần.

  • Tăng dần:
- 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],' ');
- 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],' ');
  • Giảm dần: Đối với trường hợp giảm dần thì điều kiện ngược lại a[i] < a[j];

Bài 31: Viết chương trình nhập điểm trung bình của n bạn trong lớp. sau đó in ra màn hình có bao nhiêu bạn đạt loại giỏi, khá, trung bình, yếu.

Biết: - Loại Giỏi: ĐTB >=8.0 - Khá: ĐTB>=6.5 và ĐTB<8.0 - Trung bình: ĐTB < 6.5 và ĐTB >=5.0 - Loại yếu: ĐTB <5.0
Biết: - Loại Giỏi: ĐTB >=8.0 - Khá: ĐTB>=6.5 và ĐTB<8.0 - Trung bình: ĐTB < 6.5 và ĐTB >=5.0 - Loại yếu: ĐTB <5.0