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ó.

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

Popular Posts