Một số bài tập Pascal từ dễ đến khó
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ó.
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
|
WIGGLE.OUT
|
3748
|
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
|
DUALPAL.OUT
|
3 25
|
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
|
Number.out
|
5
10
54
|
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
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
a
|
B
|
c
|
D
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
W
|
x
|
y
|
Z
|
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
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
|
Thông báo ra màn hình tương ứng
|
||
1111
21290
29205
|
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
|
P2.OUT
|
|
3 4
7 5 9
17 13 15 10
|
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
4 3 3 4
1 4 6
3 5 2
3 2 1
1 2 3
#bloglaptrinhcoban.blogspot.com #Taeki #taekinotaking #pascal #baitappascal
Comments
Post a Comment