KIỂU DỮ LIỆU THỨ TỰ

Một phần của tài liệu bài ôn tập ngôn ngữ lập trình pascal (Trang 33 - 34)

Bài tập 1

(a) Viết định nghĩa kiểu liệt kê MonthAbbrev cĩ trị là các tên tắt của các tháng trong năm gồm ba chữ đầu của tên tháng. Tƣơng tự, định nghĩa kiểu miền con MonthNumber gồm các số nguyên từ 1 đến 12.

(b) Viết hàm cĩ tham đối là số của một tháng và cĩ trị thuộc kiểu MonthAbbrev. Bài tập 2

(a) Viết định nghĩa kiểu miền con Numeral là các kí tự „0‟, ‟1‟,……, ‟9‟ và kiểu Number là miền con các số nguyên từ 0 đến 9.

(b) Viết hàm cĩ tham đối là biến kiểu Numeral và trị là trị số tƣơng ứng. (Hƣớng dẫn: dùng hàm ord).

(c) Viết hàm khác cĩ tham đối là số nguyên trong phạm vi 0 đến 9, cĩ trị tƣơng ứng kiểu Numeral.( Hƣớng dẫn: dùng hàm ord và chr).

Bài tập 3

Cho kiểu MonthAbbrev ở bài tập 1, tìm trị của các biểu thức sau:

(a) Jan<Aug (b) Sep<=Sep

(c) succ(Sep) (d) pred(apr)

(e) succ(succ(Aug)) (f) pred(pred(Aug))

(g) succ(pred(Mar)) (h) succ(pred(Jan))

(i) ord(Jun) (j) ord(Sep)-ord(Jan)

(k) ord(succ(May))-ord(May) (l) chr(ord(Sep)+ord(„0‟)) Bài tập 4

Viết hàm hoặc thủ tục cĩ các tham đối là số nguyên khơng âm n và tên tắt của tháng Abbrev nhƣ ở bài tập 1 và tìm hậu tử thứ n của Abbrev. Hậu tử thứ 0 của Abbrev chính là Abbrev; với n>0, hậu tử thứ n của Abbrev là thánh thứ n sau Abbrev. Ví dụ hậu tử thứ tƣ của Aug là Dec và thứ sáu của Aug là Feb.

Bài tập 5

Nhƣ bài tập 4 nhƣng với hàm hoặc thủ tục đệ qui. Bài tập 6

Viết hàm cĩ các tham đối là một tháng kiểu MonthAbbrev (xem nhƣ bài tập 1) và năm trong khỏang từ 1538 đến 1999 cĩ trị là số ngày của tháng.Nhắc lại tháng February cĩ 28 ngày,trừ năm nhuần cĩ 29 ngày.Năm nhuần là năm chia chẵn cho 4 trừ các năm chia chẵn cho 100 phải chia chẵn cho 400 mới là năm nhuần. (nhƣ vậy 1950 và 1900 khơng là năm nhuần,nhƣng 1960và1600 là nhuần).

II. PHẦN THỰC HÀNH

Dùng các hàm ở bài tập 6 (phần lý thuyết) để viết chƣơng trình đọc hai ngày cĩ dạng dd mm yyyy (ví dụ 4 7 1776 và 1 1 1990) và tính số ngày giữa hai ngày.

MẢNG MỘT CHIỀU

Một phần của tài liệu bài ôn tập ngôn ngữ lập trình pascal (Trang 33 - 34)