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

Bài tập Pascal

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 (148.41 KB, 8 trang )

TRƯỜNG CAO ĐẲNG BẾN TRE
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP MÔN: NGÔN NGỮ LẬP TRÌNH (PASCAL) (Bài 1 – 3 tiết)
Các thủ tục/hàm đã học:
Unit CRT: Textmode(), Textcolor(), TextBackGround(), Clrscr, Gotoxy().
Unit System: Write(), Writeln()
Các kiểu dữ liệu đã học:
Byte, ShortInt, Word, Integer, Longint. Real. Char. Boolean
A) Làm quen với phần mềm Borland Pascal :
a. Thực tập cài đặt Borland Pascal lên máy của mình.
b. Hướng dẫn ghi đè file Turbo.tpl để chống lỗi “divide by zero”.
c. Quan sát sự bố trí các file trong các thư mục.
d. Dùng lệnh Run của Windows chạy thử Pascal bằng cách dùng
Turbo.exe và bằng cách dùng BP.EXE. Quan sát và cho nhận xét. Tạo
Shorcut cho BP.EXE.
e. Chạy Borland Pascal và quan sát các thành phần của giao diện, menu
của nó. Bố trí cửa sổ soạn thảo và cửa sổ gỡ rối (Watch window).
f. Gọi Help của Borland Pascal bằng cách dùng phím F1 và bằng cách
dùng CTRL-F1 (online help).
g. Copy ví dụ trong Help và chạy thử. (Test qua việc sử dụng các phím/tổ
hợp phím F9/CTRL-F9/F7/F8/F4).
h. Thực tập soạn thảo và sử dụng các tổ hợp phím chức năng Shift+(mũi
tên)/CTRL-K-C/CTRL-K-V/CTRL-K-H/CTRL-K-Y.
B) Làm quen với các bước lập trình:
1) Viết chương trình in ra chuỗi “Xin chao cac ban den voi ngon ngu lap trinh Pascal”.
2) Cùng nội dung trên nhưng dòng chữ được kết xuất ra ngay giữa màn hình.
3) Viết chương trình xuất ra ba chuỗi:
TRUONG CAO DANG SU PHAM BEN TRE
KHOA CONG NGHE THONG TIN
*
có màu khác nhau, trên ba dòng liên tiếp, canh giữa màn hình.


Các bài tập trên cần được chạy trong các chế độ màn hình khác nhau (BW40, BW80,
CO40, CO80). Chú ý sự sai biệt về số dòng màn hình văn bản trên lý thuyết và màn
hình văn bản giả lập bởi Window. Sinh viên bổ sung thêm thủ tục READLN (để dừng
màn hình kết xuất, chờ gỏ phím ENTER), tuy nhiên trước đó nên hướng dẫn sinh viên
dùng tổ hợp phím ALT-F5 để chuyển qua lại giữa giao diện của Pascal và màn hình kết
xuất.
1
BÀI TẬP MÔN: NGÔN NGỮ LẬP TRÌNH (PASCAL) (Bài 2 – 3 tiết)
Các thủ tục/hàm đã học:
Textmode(), Textcolor(), TextBackGround(), Clrscr, Gotoxy(), Readkey.
Write(), Writeln(), Read(), Readln(), Randomize, Random().
Các kiểu dữ liệu đã học:
Byte, ShortInt, Word, Integer, Longint. Real. Char. Boolean
C) Câu lệnh rẻ nhánh và xử lí phím, xử lí ngẫu nhiên:
4) Viết chương trình thực hiện các việc sau:
a. Xóa màn hình.
b. Xuất ra tại vị trí (12,12) chuỗi ‘Xin go mot phim:’
c. Chờ người dùng gỏ một phím.
d. Thông báo tại vị trí (20,19) chuỗi ‘Phim vua duoc go la:’
e. Thông báo tại vị trí (42,19) tên phím vừa được gõ vào.
5) Viết chương trình cho phép người dùng nhập các hệ số a,b,c của phương trình bậc
hai ax
2
+bx+c=0 với a,b,c là các hệ số thực. Xuất ra màn hình kết quả giải phương
trình đó.
6) Viết chương trình cho phép người dùng nhập vào hai số NUM1, NUM2 kiểu thực.
Xuất ra số lớn nhất trong 2 số đó.
7) Viết chương trình cho phép người dùng nhập vào ba số NUM1, NUM2,NUM3 kiểu
thực. Xuất ra số lớn nhất trong 3 số đó.
8) Viết chương trình xuất ra 5 số nguyên ngẫu nhiên trên màn hình, tại các vị trí ngẫu

nhiên, màu ngẫu nhiên.
2
BÀI TẬP MÔN: NGÔN NGỮ LẬP TRÌNH (PASCAL)
(Kể từ bài tập này sinh viên cần lần lượt giải quyết các bài tập
theo tiến độ học lý thuyết – không đặt mốc thời gian nữa.
Cố gắng giải quyết xong các bài tập trước khi thi kết thúc học phần)
1. DÙNG CẤU TRÚC CASE: Qui tắc gọi một năm, ngày, giờ âm lịch như sau:
Âm lịch tính theo can chi. Có 10 can là Giáp, At, Bính, Đinh, Mậu, Kỷ, Canh,
Tân, Nhâm, Quí. Có 12 chi là Tí, Sửu, Dần, Mẹo, Thìn, Tỵ, Ngọ, Mùi, Thân,
Dậu, Tuất, Hợi. Cứ mỗi đơn vị thời gian trôi qua thì chuyển qua một can và một
chi mới theo như thứ tự đã liệt kê. Ví dụ năm 1968 là năm Mậu Thân thì năm
1970 là năm Kỷ Dậu. Dương lịch gọi năm theo số nguyên bắt đầu từ năm 1
(trước công nguyên hoặc sau công nguyên), không có năm 0. Viết chương trình
nhập một năm dương lịch từ bàn phím, kết xuất ra màn hình tên năm âm lịch
tương ứng.
2. DÙNG VÒNG LẶP FOR: Viết chương trình nhập 10 số nguyên không âm từ
bàn phím. Xuất ra màn hình tổng các số đó, số lớn nhất, số nhỏ nhất, số các số
chẵn,số các số lẻ.
3. DÙNG VÒNG LẶP FOR VÀ VÒNG LẶP REPEAT: Viết chương trình nhập
10 số nguyên lớn hơn 100 từ bàn phím, có kiểm tra dữ liệu nhập (bắt buộc nhập
lại tại vị trí nhập trước đó nếu nhập sai). Xuất ra màn hình tổng các số đó, số
lớn nhất, số nhỏ nhất, số các số chẵn,số các số lẻ.
4. DÙNG VÒNG LẶP WHILE: Viết chương trình nhập vào các số nguyên từ bàn
phím, có kiểm tra dữ liệu nhập (bắt buộc nhập lại tại vị trí nhập trước đó nếu
nhập sai), chấm dứt nhập bằng cách nhập số không. Xuất ra màn hình tổng các
số đó, số lớn nhất, số nhỏ nhất, số các số chẵn,số các số lẻ (trừ số 0).
5. PHỐI HỢP CÁC CẤU TRÚC ĐIỀU KHIỂN VÀ TÍNH TOÁN CÁC VỊ TRÍ
KẾT XUẤT:
a) Viết chương trình xuất ra màn hình bảng cửu chương từ bảng nhân 2 đến
bảng nhân 9.

b) Viết chương trình nhập vào tọa độ góc trên trái và tọa độ góc dưới phải của
một hình chữ nhật. Xuất hình chữ nhật đó ra màn hình.
6. SỬ DỤNG THỦ TỤC VÀ HÀM:
a) Viết chương trình nhập vào chiều cao lá phướng, xuất ra ngay giữa màn hình
lá phướng dạng sau đây:
xxxxxx+
xxxxx++
xxxx+++
xxx++++
xx+++++
x++++++
+++++++
b) Viết chương trình xuất ra màn hình N hình chữ nhật (N nhập từ bàn phím) tại
các vị trí ngẫu nhiên.
3
7. XÂY DỰNG CÁC UNIT: Sau khi thực hiện xong bài tập trên đây thì đưa tất cả
các Procedure và Function đó vào một unit tên là My_Unit. Biên dịch Unit đó
thành My_Unit.TPU để còn gọi dùng lại về sau.
8. SỬ DỤNG ĐỆ QUI:
a) Viết chương trình nhập vào một số nguyên không âm. Xuất ra màn hình kết
quả phân tích số đó thành tổng các số Fibonacci.
b) Viết chương trình tính toán ước số chung lớn nhất và bội số chung nhỏ nhất
của hai số nguyên không âm (sử dụng đệ qui)
CHUỖI VÀ MẢNG:
9. Viết chương trình nhập một xâu kí tự (chuỗi) S chỉ gồm các chữ cái thường
(không hoa) trong bảng mẫu tự. Hãy lập ra xâu S1 nhận được từ S bằng cách
sắp xếp lại các kí tự theo vần a, b, c.
Ví dụ: S=’xbaqp’ thì S1=’abpqx’
10. Viết chương trình cho phép nhập vào một chuỗi và thông báo xem chuỗi đó có
phải là chuỗi đối xứng không.

Ví dụ: Chuỗi S=’AABcdcBAA’ là một chuỗi đối xứng
Chuỗi SA=’AWERTYDFRWA’ không phải là một chuỗi đối xứng.
11. Có thể làm cho người ta có một ảo giác dòng chữ chạy xoay vòng trên màn hình
như sau. Giả sử dòng chữ là “CHAO MUA XUAN-” thì các pha hiển thị theo
thứ tự một gián cách thời gian nhỏ tại cùng một vị trí màn hình là như sau:
1. CHAO MUA XUAN-
2. -CHAO MUA XUAN
3. N-CHAO MUA XUA
4. AN-CHAO MUA XU
5. UAN-CHAO MUA X
6. XUAN-CHAO MUA
7. XUAN-CHAO MUA
8. A XUAN-CHAO MU
..v.v.
Viết chương trình cho phép nhập từ bàn phím một chuỗi độ dài 40 và cho dòng chữ
chạy ngay giữa màn hình từ phải qua trái (hoặc từ trái qua phải giống như trong
minh hoạ trên)
12. Viết chương trình cho phép nhập vào từ bàn phím một chuỗi. Ta định nghĩa một
từ là một dãy liên tục các kí tự khác khoảng trắng, khoảng trắng là dấu tách từ
duy nhất. Chương trình có nhiệm vụ thông báo ra màn hình các từ khác nhau
trong chuỗi đã nhập.
13. Viết chương trình nhập vào một chuỗi và một kí tự. Thông báo ra màn hình số
kí tự này có trong chuỗi. Kết quả trên màn hình có dạng:
Chương trình đếm số kí tự có trong chuỗi.
Nhập chuoi: Hoc tap chuyen can.
4
Kí tự: a Kết quả: Có 2 chữ ‘a’.
Tiếp tuc (Y/N): Y
Kí tự: d Kết quả: Không có chữ ‘d’ nào.
Tiếp tuc (Y/N): N

14. Viết chương trình cho phép nhập vào một chuỗi và thông báo cho người dùng
biết chuỗi chứa gồm bao nhiêu chữ cái ‘A’, chữ cái ‘B’, .v.v. Kết quả trên màn
hình có dạng:
Chương trình đếm số kí tự trong chuỗi.
Nhập vào một chuỗi: Aa Bb Toi di day.
Ket qua: 1 chu A, 1 chu B, 1 chu T, 1 chu a, 1 chu b, 2 chu
d, ....
15. (*)
1
Viết chương trình cho phép nhập vào một dãy hữu hạn các số nguyên,
chương trình sẽ thông báo ra:
a) Tất cả các dãy con tăng rút ra từ dãy này
b) Dãy con tăng có chiều dài lớn nhất.
Ví dụ:
Từ dãy 12 - 4 13 6 8 2 9 10 -3 20
thì dãy con tăng có chiều dài lớn nhất là:
-4 6 8 9 20
16. Viết chương trình cho phép nhập vào các ma trận vuông kích thước NxN (khai
báo N như một hằng) và cho phép thực hiện các phép tính:
a) Cộng hai ma trận
b) Trừ hai ma trận.
c) Nhân hai ma trận.
d) (*) Thông báo ra định thức (Det) tương ứng của ma trận nhập.
17. Một mảng hai chiều MG2: array[ 0..Max,0..Max] of char; Max là một hằng
(const). Mảng MG2 được khởi tạo ngẩu nhiên. Duyệt trong toàn bộ mảng xem
có bao nhiêu chữa cái ‘A’ (hoặc ‘a’, không phân biệt chữ hoa, chữ thường), chữ
cái ‘B’, .v..v. Thông báo kết quả ra màn hình.
18. Mảng HOTEN gồm 10 phần tử là các chuỗi độ dài 20. Viết chương trình cho
phép nhập vào mảng họ tên từ bàn phím. Xuất kết quả ra màn hình. Sau đó sắp
xếp lại mảng HOTEN theo thứ tự tăng dần từ điển (sắp xếp kiểu Bubble sort).

Thông báo kết quả sau khi sắp xếp ra màn hình.
19. Viết chương trình dò trong một mảng MG gồm 20 phần tử kiểu số nguyên (mỗi
phần tử nhỏ hơn 50) xem có hai phần tử liên tiếp nào mà tổng của chúng bằng
một số X hay không. Mảng MG được khởi tạo ngẩu nhiên gồm các số hoàn
toàn khác nhau. Số X được nhập vào từ bàn phím.
PHỐI HỢP CÁC KIỂU DỮ LIỆU:
1
Bài/câu có dấu (*) là không bắt buộc. Chỉ dành cho sinh viên có năng lực toán học tốt.
5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×