Tải bản đầy đủ (.doc) (10 trang)

Một số bài tập pascal duong

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (120.29 KB, 10 trang )

Một số bài tập Pascal
1. Viết chương trình nhập vào 2 số nguyên dương a, b. Tìm Max, Min của hai số đó.
2. Viết chương trình nhập vào 3 số nguyên dương a, b,c. Tìm Max, Min của ba số đó.
Kiểm tra 3 số đó có phải là 3 cạnh của tam giác hay không?
3. Viết chương trình giải và biện luận phương trình bậc nhất ax + b = 0.
4. Viết chương trình giải và biện luận phương trình bậc hai ax2+bx+c=0
5. Viết chương trình tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho
400 hoặc chia hết cho 4 nhưng không chia hết cho 100.
6. Lập chương trình liệt kê số ngày của tháng trong năm
7. Tìm UCLN, BSCNN của hai số nguyên dương m và n nhập từ bàn phím
8. Hai số tự nhiên a, b được gọi là “Hữu nghị” nếu như số này bằng tổng các ước số
thực sự (kể cả 1) của số kia và ngược lại.
Hãy tìm tất cả các cặp số “Hữu nghị” thuộc khoảng từ 100 đến 500
9. Số chia hết hoàn toàn là số có tất cả các chữ số đều là ước của số hình thành từ số
chữ số đầu tiên đến chữ số đó.
Cho số nguyên N (N<30001), tìm số số chia hết hoàn toàn thoả mãn lớn hơn 10 và
nhỏ hơn N.
10. Nhập vào từ bàn phím một số N nguyên dương (N<=5000)
Câu a) Hãy phân tích N thành tổng của hai số nguyên tố (nếu được) và thông
báo không được nếu không có phương án nào.
Câu b) Nếu N thoả mãn câu a, hãy đưa càng nhiều càng tốt các phương án
phân tích (2 phương án có cùng các số hạng chỉ coi là một)
11. 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.
12. Số siêu nguyên tố
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý 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ố.


Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N
<10) và đưa ra kết quả là một 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 có 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_
13. Tổng các số tự nhiên liên tiếp
Cho trước số tự nhiên n. Lập thuật toán cho biết n có thể biểu diễn thành tổng của hai
hoặc nhiều số tự nhiên liên tiếp hay không?
Trong trường hợp có, hãy thể hiện tất cả các cách có thể có.
14. Biểu diễn tổng các số Fibonaci
Cho số tự nhiên N và dãy số Fibonaci: 1, 1, 2, 3, 5, 8, ....
Bạn hãy viết chương trình kiểm tra xem N có thể biểu diễn thành tổng của của các số
Fibonaci khác nhau hay không?
16. Viết chương trình nhập vào một số n. Phân tích n thành tích của các thừa số
nguyên tố.
17. SỐ ĐƠN ĐIỆU
Các số nguyên dương: 3748, 58, 859, 32435465768 được gọi là các số đơn điệu do
nếu quan sát các chữ số của các số này, ta thấy chúng luân phiên tăng giảm hoặc giảm
tăng. Chẳng hạn:
3 < 7 > 4 < 8 và 3 > 2 < 4 > 3 < 5 > 4 < 6 > 5 < 7 > 6 < 8
Số chỉ có một chữ số là số đơn điệu chiều dài 1.
Nhiệm vụ:
Viết chương trình xác định số chữ số đầu tiên lớn nhất tạo thành số đơn điệu của một
số cho trước.

Tên tập tin chương trình:
WIGGLE.PAS
Dữ liệu:
Cho trong tập tin văn bản WIGGLE.IN, gồm một dòng duy nhất chứa một số nguyên
dương duy nhất có không quá 75 chữ số.
Kết quả:


Cho trong tập tin văn bản WIGGLE.OUT, chứa một số nguyên duy nhất chỉ số chữ số
đầu tiên lớn nhất tạo thành số đơn điệu của số tương ứng trong tập tin dữ liệu.
Ví dụ:
WIGGLE.IN
3748

WIGGLE.OUT
4

18. SỐ ĐỐI XỨNG
Một số mà đọc từ trái sang phải giống hệt như đọc từ phải sang trái gọi là số đối
xứng. Số 14541 là số đối xứng còn số 66667 không là số đối xứng. Hiển nhiên số
0330 không là số đối xứng (do số 0 đứng ở vị trí đầu tiên bên trái).
Số 21 (biểu diễn trong cơ số 10) không là số đối xứng, nhưng số 21 (biểu diễn trong
cơ số 10) là số đối xứng nếu biểu diễn trong cơ số 2 (10101).
Nhiệm vụ:
Viết chương trình đọc vào hai số (biểu diễn trong cơ số 10)
N (1 <= N <= 15)
S (0 < S < 10000)
và xuất ra (trong cơ số 10):
 N số đầu tiên lớn hơn S và là số đối xứng khi biểu diễn trong ít nhất hai cơ số c
khác nhau (2 <= c <= 10).

 Số số nguyên tố trong N số nói trên
Tên tập tin chương trình:
DUALPAL.PAS
Dữ liệu:
Cho trong tập tin văn bản DUALPAL.IN, gồm một dòng duy nhất chứa hai số nguyên
N và S, cách nhau một khoảng trắng.
Kết quả:
Cho trong tập tin văn bản DUALPAL.OUT, gồm N+1 dòng. Trên mỗi dòng của N
dòng đầu tiên là một số đối xứng khi được biểu diễn trong ít nhất hai hệ cơ số c (2 <=
c <= 10). Các số trong N dòng đầu tiên phải thỏa yêu cầu của đề bài và được sắp theo
thứ tự tăng dần. Trên dòng N+1 chứa một số nguyên duy nhất, chỉ số số nguyên tố
trong N dòng trên.


Ví dụ:
DUALPAL.IN
3 25

DUALPAL.OUT
26
27
28
0

19. Số phản nguyên tố
Một số n gọi là số phản nguyên tố nếu số ước số của nó là nhiều nhất trong n số tự
nhiên đầu tiên. Cho số K (K <= 2 tỷ). Hãy ghi ra số phản nguyên tố lớn nhất nhỏ hơn
hoặc bằng K.
Dữ liệu vào trong file PNT.INP nội dung gồm:
- Dòng đầu tiên là số M (1 < M <= 100) - số các số cần tìm số phản nguyên tố lớn

nhất của nó;
- M dòng tiếp theo lần lượt là các số K1, K2, K3, ..., KM;
Dữ liệu ra trong file PNT.OUT gồm M dòng: dòng thứ i là số phản nguyên tố lớn
nhất nhỏ hơn hoặc bằng Ki.
Ví dụ:
PNT.INP
1
1000
PNT.OUT
840
20. Dãy số Fibonaci
Như các bạn đã biết dãy số Fibonaci là dãy 1, 1, 2, 3, 5, 8, .... Dãy này cho bởi công
thức đệ qui sau:
F1 = 1, F2 =1, Fn = Fn-1 + Fn-2 với n > 2
Input:
Tệp văn bản P11.INP bao gồm nhiều dòng. Mỗi dòng ghi một số tự nhiên.
Output:
Tệp P11.OUT ghi kết quả của chương trình: trên mỗi dòng ghi lại biểu diễn Fibonaci
của các số tự nhiên tương ứng trong tệp P11.INP.


21. Chữ số thứ N
Khi viết các số tự nhiên tăng dần từ 1, 2, 3,… liên tiếp nhau, ta nhận được một dãy
các chữ số thập phân vô hạn, ví dụ: 123121314151617181920...
Yêu cầu: Hãy tìm chữ số thứ N của dãy số vô hạn trên.
Dữ liệu vào từ file ‘Number.inp’ gồm một 4567891011số dòng, mỗi dòng ghi một số
nguyên dương N (N<109).
Kết quả ra file ’Number.out’, với mỗi số N đọc được từ file Number.inp, ghi trên
dòng tương ứng chữ số thứ N của dãy.
Ví dụ:

Number.inp
5
10
54

Number.ou
t
5
1
3

22. 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:
15
3
9
55
4
6
76
1
2
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?
23. Khi viết các số tự nhiên tăng dần từ 1, 2, 3...liên tiếp nhau, ta nhận được một dãy
các số thập phân vô hạn, ví dụ: 123456789101112131415...
Hãy viết chương trình nhập vào một số k từ bàn phím và in ra màn hình kết quả số ở

vị trí thứ k trong dãy số trên.
24. Viết chương trình nhập vào một xâu ký tự.
- In ra màn hình xâu chữ hoa và chữ thường
- Xóa bỏ các ký tự thừa có trong xâu.
- Đếm số từ có trong xâu, biết các từ cách nhau bởi dấu cách trống
- Đếm số ký tự từ a đến z có trong xâu (không phân biệt chữ hoa hay chữ thường)
- Đếm số lần xuất hiện của các ký tự có trong xâu.


- Chuyển các ký tự đầu từ thành chữ hoa, các ký tự khác thành chữ thường
25. Nhập vào một xâu ký tự có độ dài tối đa 120 ký tự, nhập một ký tự bất kỳ từ bàn
phím, kiểm tra xem trong xâu ký tự đã cho có ký tự vừa nhập không? nếu không thi
trả lời là “không tìm thấy”, nếu có hãy đếm số lần xuất hiện của ký tự đó trong xâu ký
tự đã cho.
26. Có m đội bóng thi đấu vòng tròn một lượt. Gọi a[i,j] là số bàn thắng mà đội i ghi
vào lưới đội j (1<=i,j <=m; ij). Biết tên đội bóng, thắng 3 điểm, hòa 1 điểm, thua 0
điểm. Viết chương trình xác định đội vô địch, đội bét bảng. Nếu 2 đội bằng điểm
nhau thì xét hiệu số bàn thắng, thua.
Dữ liệu vào được đọc từ tệp BAI4.INP có nội dung:
Dòng đầu ghi số m số đội bóng tham gia.
Mỗi dòng thứ i trong m dòng tiếp theo ghi số bàn thắng mà đội i ghi vào lưới
đội J mỗi số cách nhau một ký tự trống.
Kết quả đưa ra với tên tệp BAI4.OUT với 2 dòng:
Dòng thứ nhất ghi ‘VODICH’ tiếp đến là chỉ số đội vô địch.
Dòng thứ hai ghi ‘BETBANG’ tiếp đến là chỉ số đội bét bảng.
(Chương trình ghi vào tệp BAI4.PAS)
27. 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
a B c D e f g h i j k

1
1
l

1 1
2 3
m n

1
4
o

1
5
p

1
6
q

1
7
r

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

1
8
s

1
9
t

2
0
u

2
1
v

2 2
2 3
W x

2

4
y

2
5
Z


b. Hãy tìm ra quy tắc giải mã các dòng chữ sau:
N FR F XYZIJSY
NSKTVRFYNHX
MFSTN SFYNTSFQ ZSNBJVXNYD
28. Mã hoá và giải mã
Theo quy tắc mã hoá ở bài trên (33/2000), hãy viết chương trình cho phép:
- Nhập một xâu ký tự và in ra xâu ký tự đã được mã hóa
- Nhập một xâu ký tự đã được mã hoá và in ra sâu ký tự đã được giải mã.
Ví dụ khi chạy chương trình:
Nhap xau ky tu:
PEACE 
Xau ky tu tren duoc ma hoa la:
UJFHJ
Nhap xau ky tu can giai ma:
FR 
Xau ky tu tren duoc giai ma la:
AM_
29. Dãy con đúng
Cho trước một dãy số bao gồm toàn các số 0 và 1. Dãy này có độ dài nhỏ hơn 255.
1. Viết chương trình nhập dãy số trên từ bàn phím. Các số được nhập liên tiếp
từ bàn phím, quá trình nhập dữ liệu kết thúc nhấn phím <Enter>. Nếu việc nhập dữ
liệu sai trên màn hình kết quả “Bạn đã nhập sai, đề nghị nhập lại” và cho phép nhập

lại ngay dữ liệu.
2. Một dãy con đúng của dãy trên được gọi là một dãy con liên tục bất kỳ của
dãy trên bao gồm các số hạng giống nhau. Hãy tính độ dài lớn nhất của một dãy con
đúng của dãy trên.
3. Một dãy con đúng bậc 1 của dãy trên được coi là một dãy con liên tục bất kỳ
của dãy trên bao gồm toàn các số hạng giống nhau ngoại trừ 1 phần tử. Hãy tính độ
dài lớn nhất của một dãy con đúng bậc 1 của dãy trên.
30. Y3K
Cho số nguyên N trong phạm vi từ 1000 đến 999999. Cần xác định số này có phải
là thông tin về một ngày tháng có trong thế kỷ 21 không. (Thế kỷ 21 bắt đầu từ 1
tháng 1 năm 2001 và kết thúc vào ngày 31 tháng 12 năm 3000. Biết rằng 2 chữ số
cuối của N là chỉ hai chữ số cuối của năm, các chữ số còn lại (ở đầu) xác định


ngày và tháng.
Ví dụ:
1111 tương ứng với 1 tháng 1 năm 2011;
21290 tương ứng với 2 tháng 12 năm 2090 hoặc 21 tháng 2 năm 2090;
131192tương ứng với 13 tháng 11 năm 2092;
32392 Không phải là thông tin về một ngày tháng nào cả;
311198 Không phải là thông tin về một ngày tháng nào cả;
29205 Không phải là thông tin về một ngày tháng nào cả;
Dữ liệu: Nhập vào số N từ bàn phím.
Kết quả: Đưa ra màn hình các ngày tháng năm tương ứng với N hoặc thông báo
là KHONG nếu N không phải là thông tin về một ngày tháng nào cả.
Ví dụ:
Giá trị của N
1111
21290
29205


Thông báo ra màn hình tương ứng
1-1-2011
2-12-2090 HOAC 21-2-2090
KHONG

31. Tổ chức tham quan
Trong đợt tổ chức đi tham quan danh lam thắng cảnh của thành phố Hồ Chí Minh,
Ban tổ chức hội thi Tin học trẻ tổ chức cho N đoàn ( đánh từ số 1 đến N) mỗi đoàn đi
thăm quan một địa điểm khác nhau. Đoàn thứ i đi thăm địa điểm ở cách Khách sạn
Hoàng Đế di km (i=1,2,...., N). Hội thi có M xe taxi đánh số từ 1 đến M (MN) để
phục vụ việc đưa các đoàn đi thăm quan. Xe thứ j có mức tiêu thụ xăng là vj đơn vị
thể tích/km.
Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thăm quan, mỗi xe chỉ phục
vụ một đoàn, sao cho tổng chi phí xăng cần sử dụng là ít nhất.
Dữ liệu: File văn bản P2.INP:
- Dòng đầu tiên chứa hai số nguyên dương N, M (NM200);
- Dòng thứ hai chứa các số nguyên dương d1, d2, ..., dN;
- Dòng thứ ba chứa các số nguyên dương v1, v2, ..., vM.
- Các số trên cùng một dòng được ghi khác nhau bởi dấu trắng.
Kết quả: Ghi ra file văn bản P2.OUT:
- Dòng đầu tiên chứa tổng lượng xăng dầu cần dùng cho việc đưa các đoàn đi thăm
quan (không tính lượt về);
- Dòng thứ i trong số N dòng tiếp theo ghi chỉ số xe phục vụ đoàn i (i=1, 2, ..., N).


Ví dụ:
P2.INP
34
759

17 13 15 10

P2.OUT
256
2
3
4

32. Dãy số Fibonaci
Như các bạn đã biết dãy số Fibonaci là dãy 1, 1, 2, 3, 5, 8, .... Dãy này cho bởi công
thức đệ qui sau:
F1 = 1, F2 =1, Fn = Fn-1 + Fn-2 với n > 2
1. Chứng minh khẳng định sau:
Mọi số tự nhiên N đều có thể biểu diễn duy nhất dưới dạng tổng của một số số trong
dãy số Fibonaci.
N = akFk + ak-1Fk-1 + .... a1F1
Với biểu diễn như trên ta nói N có biểu diễn Fibonaci là akak-1...a2a1.
2. Cho trước số tự nhiên N, hãy tìm biểu diễn Fibonaci của số N.
Input:
Tệp văn bản P11.INP bao gồm nhiều dòng. Mỗi dòng ghi một số tự nhiên.
Output:
Tệp P11.OUT ghi kết quả của chương trình: trên mỗi dòng ghi lại biểu diễn Fibonaci
của các số tự nhiên tương ứng trong tệp P11.INP.
33. Trong một cuộc thi chạy việt dã có N đội tham gia (có số hiệu là 1, 2, ..., N), mỗi
đội có M vận động viên (có số hiệu 1, 2, ..., M). Thời gian chạy của vận động viên
thứ j của đội i là Tij giây (0 < i <= N và 0 < j <= M). Hãy xác định tất cả các đội có
thành tích tốt nhất (là những đội có tổng thời gian của các vận động viên trong đội là
ít nhất).
Dữ liệu vào được cho bởi tệp văn bản Bai3.INP có cấu trúc:
- Dòng đầu tiên chứa 2 số nguyên dương N, M.

- N dòng tiếp theo, mỗi dòng chứa M số nguyên dương là thời gian chạy của
các vận động viên trong đội tương ứng với dòng đó.
Dữ liệu ra là số hiệu của các đội có thành tích tốt nhất được lưu vào tệp Bai3.OUT.
Ví dụ:
Tệp Bai3.INP
Tệp Bai3.OUT


43
3
146
4
352
321
123
34. Trong một cuộc thi chạy việt dã có N đội tham gia (có số hiệu là 1, 2, ..., N), mỗi
đội có M vận động viên (có số hiệu 1, 2, ..., M). Thời gian chạy của vận động viên
thứ j của đội i là Tij giây (0 < i <= N và 0 < j <= M). Hãy xác định tất cả các đội có
thành tích tốt nhất (là những đội có tổng thời gian của các vận động viên trong đội là
ít nhất).
Dữ liệu vào được cho bởi tệp văn bản Bai3.INP có cấu trúc:
- Dòng đầu tiên chứa 2 số nguyên dương N, M.
- N dòng tiếp theo, mỗi dòng chứa M số nguyên dương là thời gian chạy của
các vận động viên trong đội tương ứng với dòng đó.
Dữ liệu ra là số hiệu của các đội có thành tích tốt nhất được lưu vào tệp Bai3.OUT.
Ví dụ:
Tệp Bai3.INP
Tệp Bai3.OUT
43
3

146
4
352
321
123



×