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. Đó chỉ là một phần thôi còn nhiều bài nữa đấy
Trang 1Mộ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ố
Trang 2Nhiệ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
Trang 3Ví dụ:
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
Trang 4Ví dụ:
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
Trang 521 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.ou
t 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:
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
Trang 6- 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
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
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
Trang 7b 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
Trang 8ngà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)
Trang 9Ví dụ:
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ụ:
Trang 104 3 3
3 5 2
3 2 1
1 2 3