Các bài tập lập trình pascal từ dễ đến khó. Bài tập hay, luyện tập để thi hsg tin hoặc thi tin học trẻ. Dành cho học sinh thcs và cả thpt. Tài liệu hữu ích cho các thầy cô giáo trong việc ôn luyện đội tuyển, cho các bạn học sinh muốn tự học và thử sức mình.
Trang 1TỰ LUYỆN CÁC BÀI TẬP PASCAL Bài 1,In ra màn hình hình sau
Rộng là N, chiều cao là H
******
******
******
******
******
******
******
Bài 2, In
*
***
*****
*******
********
*********
***********
Bài 3, In bảng cửu chương
Bài 4,Khai báo , nhập mảng hai chiều và in ra màn hình <mảng bất kì>
Bài 5:
Cho ma trận vuông A có kích thứơc n x n phần tử Lập trình thực hiện các công việc sau:
Câu 1: Nhập các phần tử cho ma trận vuông A.
Câu 2: In các phần tử trên đường chéo chính và các phần tử nằm trên các đường song song với
đường chéo chính
Câu 3: Kiểm tra xem đó có phải là ma trận La tinh không (Ma trận La tinh là ma trận là ma trận
mà mỗi hàng và mỗi cột đều chứa đủ các số từ 1 đến n)
Ví dụ:
Cho ma trận A như sau:
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
Kết quả khi thực hiện chương trình:
Câu 1: Đường chéo chính
1 3 1 3
Câu 2: Các đường song song với đường chéo chính
2 4 2
2 4 2
3 1
3 1
Câu 3: Đây là ma trận La tinh
Trang 2Bài 6 Cho một dãy A gồm N số nguyên dương A[1], A[2], ,A[N] (N>=2) Với N nhập từ bàn phím và
các giá trị A[1], A[2], ,A[N] có thể nhập từ bàn phím hoặc được gán ngẫu nhiên từ chương trình
Hãy cắt dãy A thành hai đoạn (mỗi đoạn là một dãy con) sao cho tổng giá trị ở hai đoạn bằng nhau
Thí dụ:
với N=2 và A[1]=2, A[2]=5 thì kết quả cắt dãy là: không cắt được
với N=3 và A[1]=5, A[2]=4, A[3]=1 thì kết quả cắt dãy là: 5 = 4+1
với N=4 và A[1]=1, A[2]=3, A[3]=2, A[4]=2 thì kết quả cắt dãy là: 1+3 = 2+2
Bài 7 Cho một cái bánh trên bánh có N qua dâu
Làm sao chia chiếc bánh đó là 3 phần với số quả dâu trên 3 phần bằng nhau
Bài 8* Một người mua hàng mua một hàng có giá trị N đồng và trả cho người bán hàng M tiền (M>N)
người bán hàng có a đồng 1000 b đồng 2000 c đồng 5000 d đồng 10.000 hỏi có bao nhiêu cách để người bán hàng trả lại tiền cho người mua hàng
Bài 9, Nhập vào một mảng N phần tử
Xắp xếp lại mảng từ bé đến lớn(yêu cầu viết thủ tục nhập, thủ tục in)
Bài 10,Cho một số tự nhiêm D (1000<D<10000, yêu cầu nhập có điều kiện)
Tìm tất cả các số là số nguyên tố, số chính phương, số hoàn hảo trong khoảng từ 1 đên D
(Số hoàn hảo là số có tổng các ước <không tính số đó> bằng chính nó
VD: 6 là số hoàn hảo vì 6=1+2+3 )
Bài 11: Viết chương trình dịch các ngày trong tuần sang tiếng anh
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Bài 12:
Viết chương trình cho phép tính tổng của nhiều số (Chưa biết bao nhiêu số) Nhập số 0 để kết thúc quá trình nhập
Bài 13:
Viết chương trình tìm ước chung lớn nhất (UCLN) của hai số với yêu cầu sử dụng thuật toán Euclid Thuật toán Euclid: Nếu a chia hết cho b (a chia b dư 0) thì UCLN(a,b) bằng b
Nếu a chia b dư r thì UCLN(a,b) = UCLN(b,r)
Bài 14:
Viết chương trình cho phép thực hiện rút gọn phân số
Bài 15:
Viết chương trình cho phép trộn hai dãy số A và B cùng có số phần tử là k để được dãy số C theo yêu cầu sau:
A = a1, a2 ak
B = b1, b2 bk
Được C = a1, b1, a2, b2 ak, bk
Trang 3Bài 16: (Tin học trẻ toàn quốc lần I - 1995)
Hai số tự nhiên A, B được coi là hữu nghị nếu như số này bằng tổng các ước số của số kia và ngược lại Lập trình tìm và chiếu lên màn hình các cặp số hữu nghị trong phạm vi từ 1 đến 10000 (Lưu ý: số 1 được coi là ước số của mọi số còn mỗi số không được coi là ước số của chính nó)
Bài 17: Viết chương trình nhập một xâu từ bàn phím In ra xâu đó sau khi xóa hết các ký tự trắng thừa
trong xâu, đổi các ký tự đầu câu thành viết hoa các ký tự còn lại viết
Bài 18: Viết chương trình nhập vào một xâu ký tự từ bàn phím Tìm xâu đảo ngược của xâu đó rồi in kết
quả ra màn hình
Bài 19: Tính tổng sau:
S= 1/2+1/4+1/6+1/8+1/10 + + 1/N ( N nhập vào từ bàn phím có kiểm tra).
Bài 20: Viết chương trình tính n!
Bài 21: Số nguyên tố tương đương
Hai số tự nhiên được gọi là Nguyên tố tương đương nếu chúng có chung các ước số nguyên tố Ví
dụ các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố là 3 và 5 Cho trước hai số
tự nhiên N, M Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau hay không
Bài 22: Số siêu nguyên tố.
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố
Ví dụ: 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố
Hãy viết chương trình nhập dữ liệu vào là một số nguyên (0 < N <10) và đưa ra kết quả là các số siêu nguyên tố có N chữ số cùng số lượng của chúng
Ví dụ khi chạy chương trình:
Nhap so N: 4 ↵
Cac so sieu nguyen to co 4 chu so la:
2333 2339 2393 2399 2939 3119 3137 3733 3739 3793 3797
5939 7193 7331 7333 7393
Tat ca co 16 so
Bài 23: Lưới ô vuông vô hạn.
Cho lưới ô vuông vô hạn về hai phía (trên và phải) Các ô của lưới được đánh số theo quy tắc sau:
- Ô trái dưới – Vị trí (0,0) được đánh số 0
- Các ô còn lại được đánh số theo nguyên tắc lan tỏa từ vị trí (0,0) và theo quy tắc: tại một vị trí
số được điền vào là số nguyên không âm nhỏ nhất chưa được điền trên hàng và cột chứa ô hiện thời Ví dụ, ta có hình dạng một số ô của lưới như sau:
Trang 40 1 2 3
Cho trước cặp số tự nhiên M, N – kích thước ô lưới Hãy viết chương trình mô tả lưới trên, kết quả được ghi vào file KQ.TXT
Bài 24- Xây dựng số
Cho các số sau: 1, 2, 3, 5, 7
Chỉ dùng phép toán cộng hãy dùng dãy trên để tạo ra số: 43, 52
Ví dụ để tạo số 130 bạn có thể làm như sau: 123 + 7 = 130
Bài 25- Phần tử yên ngựa
Cho bảng A kích thước MxN Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó Ví dụ trong bảng số sau đây:
thì phần tử A22 chính là phần tử yên ngựa
Bạn hãy lập chương trình nhập từ bàn phím một bảng số kích thước MxN và kiểm tra xem nó có phần tử yên ngựa hay không?
Bài 26- Mã hoá văn bản
Bài toán sau mô tả một thuật toán mã hoá đơn giản (để tiện ta lấy ví dụ tiếng Anh, các bạn có thể mở rộng cho tiếng Việt):
Tập hợp các chữ cái tiếng Anh bao gồm 26 chữ cái được đánh sô thứ tự từ 0 đến 25 như sau:
0 1 2 3 4 5 6 7 8 9 1
0
11 12 13 14 15 16 17 1
8
19 2 0
21 22 23 24 25
Quy tắc mã hoá một ký tự như sau (lấy ví dụ ký tự X):
- Tìm số thứ tự tương ứng của ký tự ta được 23
- Tăng giá trị số này lên 5 ta được 28
- Tìm số dư trong phép chia số này cho 26 ta được 2
- Tra ngược bảng chữ cái ta thu được C
a Sử dụng quy tắc trên để mã hoá các dòng chữ sau:
PEACE
HEAL THE WORLD
I LOVE SPRING
b Hãy tìm ra quy tắc giải mã các dòng chữ sau:
N FR F XYZIJSY
NSKTVRFYNHX
Trang 5MFSTN SFYNTSFQ ZSNBJVXNYD
Bài 27- Trò chơi Tích - Tắc vuông
Trên một lưới kẻ ô vuông có 2 người chơi như sau: người thứ nhất mỗi lần chơi sẽ đánh dấu x vào 1 ô trống Người thứ hai được đánh dấu 0 vào 1 ô trống Người thứ nhất muốn đạt được mục đích là đánh được 4 dấu x tạo thành 4 đỉnh của 1 hình vuông Người thứ hai có nhiệm vụ ngăn cản mục đích đó của người thứ nhất
Lập chương trình tìm thuật toán tối ưu cho người thứ nhất (người thứ nhất có thể luôn thắng)
Chú ý: Lưới ô vuông được coi là vô hạn về cả hai phía
_THG-sưu tầm_
_Chúc các bạn học tốt ! _