<< Chapter < Page Chapter >> Page >

IF NGAY_TRONG_TUAN = Hai THEN ...

Các phép toán cơ bản trong kiểu liệt kê là các phép toán quan hệ (bằng, nhỏ hơn, lớn hơn...), phép gán trị, phép toán cho giá trị đứng sau và giá trị đứng trước một giá trị trong dãy các hằng trực kiện của liệt kê.

Sự cài đặt

Biểu diễn bộ nhớ cho một ÐTDL kiểu liệt kê thường là không phức tạp. Mỗi giá trị trong liệt kê được biểu diễn bằng một số nguyên 0, 1, 2,... Ví dụ kiểu NGAY ở trên chỉ cần sử dụng 7 giá trị từ 0 đến 6, trong đó 0 biểu diễn cho Chu_nhat, 1 biểu diễn cho Hai, 2 biểu diễn cho Ba,...

Sự cài đặt các phép toán cơ bản cũng không phức tạp. Các phép quan hệ được cài đặt bằng cách sử dụng các phép toán quan hệ dưới phần cứng cho số nguyên như "=", "<", ">",... Phép toán lấy giá trị đứng sau một giá trị được cài đặt bằng cách lấy số nguyên biểu diễn cho giá trị đó cộng thêm 1 và có sự kiểm tra để thấy được kết quả không vượt quá giới hạn cho phép. Chẳng hạn để xác định giá trị sau Hai, ta lấy 1 (biểu diễn cho Hai) cộng với 1 được 2, mà 2 biểu diễn cho Ba, nên sau Hai là Ba, nhưng sau Bay thì không có giá trị nào vì tổng của 6 (biểu diễn cho Bay) với 1 được 7, vượt quá giới hạn cho phép của kiểu. Tương tự cho phép toán lấy giá trị đứng trước của một giá trị.

Lợi ích của việc sử dụng kiểu liệt kê

Kiểu liệt kê được đưa vào trong ngôn ngữ lập trình nhằm để giải quyết vấn đề được nêu ra trong phần đặt vấn đề. Từ đó ta có thể thấy rõ việc sử dụng kiểu liệt kê làm cho chương trình sáng sủa, trực quan, người lập trình không còn phải nhớ “nghĩa” của giá trị số và do vậy chương trình sẽ có độ chính xác cao hơn. Nói cách khác, kiểu liệt kê làm tăng tính dễ đọc, tính dễ viết và độ tin cậy của ngôn ngữ.

Kiểu logic

Kiểu logic (bool, boolean hoặc logical) là kiểu dữ liệu phổ biến trong hầu hết các ngôn ngữ.

Sự đặc tả

Kiểu dữ liệu logic gồm các ÐTDL có một trong hai giá trị đúng hoặc sai. Trong Pascal và Ada, kiểu dữ liệu logic được xem một cách đơn giản như là một liệt kê được định nghĩa bởi ngôn ngữ. BOOLEAN = (FALSE, TRUE) trong đó xác định các tên "FALSE" và "TRUE" cho các giá trị của kiểu và xác định thứ tự FALSE<TRUE. Các phép toán phổ biến trên kiểu logic gồm có:

AND: Boolean X Boolean ->Boolean

OR: Boolean X Boolean ->Boolean

NOT: Boolean ->Boolean

Phép cài đặt

Chỉ cần một bit của bộ nhớ để lưu trữ một đố tượng dữ liệu logic. Tuy nhiên vì các bit đơn có thể không có địa chỉ riêng trong bộ nhớ nên ta phải sử dụng một đơn vị nhớ có địa chỉ như là byte hoặc word do đó các giá trị FALSE và TRUE có thể được biểu diễn bằng hai cách khác nhau:

1.- Bit đặc trưng (thông thường là bit dấu của sự biểu diễn số) với 0 biểu diễn cho FALSE và 1 biểu diễn cho TRUE, các bits còn lại trong byte hoặc word sẽ bị bỏ qua.

2.- Sử dụng toàn bộ đơn vị nhớ để ghi giá trị zero (tất cả các bit đề bằng 0) biểu diễn cho FALSE còn giá trị khác zero biểu diễn cho TRUE.

Kiểu ký tự

Hầu hết dữ liệu xuất và nhập đều có dạng ký tự và có sự chuyển đổi sang dạng dữ liệu khác trong quá trình nhập xuất. Chẳng hạn khi ta nhập một chữ số (hoặc một chuỗi chữ số) từ bàn phím vào một biến số trong chương trình thì đã có một sự chuyển đổi chữ số (chuỗi chữ số) thành số. Hay khi ta ghi một số ra máy in hoặc ra một tập tin văn bản thì đã có một sự chuyển đổi từ số thành chữ số (chuỗi chữ số). Tuy nhiên việc xử lý một số dữ liệu trực tiếp dưới dạng ký tự cũng cần thiết trong một số ứng dụng nào đó, chẳng hạn trong xử lý văn bản. Dữ liệu chuỗi ký tự có thể được cung cấp một cách trực tiếp thông qua kiểu chuỗi ký tự (như trong SNOBOL4, PL/1 và các ngôn ngữ mới khác) hoặc thông qua kiểu ký tự và chuỗi ký tự được xem như là một mảng các ký tự (như trong APL, Pascal và Ada. Chú ý Turbo Pascal đã có kiểu chuỗi ký tự).

Sự đặc tả

Kiểu ký tự là một liệt kê được định nghĩa bởi ngôn ngữ tương ứng với một tập hợp ký tự chuẩn được cho bởi phần cứng và hệ điều hành như tập các ký tự ASCII chẳng hạn.

Các phép toán trên dữ liệu ký tự bao gồm: các phép toán quan hệ, phép gán, và đôi khi có phép kiểm tra xem một ký tự có thuộc một lớp đặc biệt "chữ cái", "chữ số" hoặc lớp ký tự xác định nào đó.

Phép cài đặt

Các giá trị dữ liệu hầu như luôn được cài đặt một cách trực tiếp bởi phần cứng và hệ điều hành. Do đó các phép toán quan hệ cũng được biểu diễn một cách trực tiếp bởi phần cứng.

Câu hỏi ôn tập

  1. Nêu định nghĩa kiểu dữ liệu sơ cấp.
  2. Tập các giá trị của một kiểu sơ cấp có đặc điểm gì?
  3. Có phải các ngôn ngữ lập trình thường sử dụng biểu diễn trong phần cứng để biểu diễn cho kiểu số nguyên?
  4. Ðể cài đặt các phép toán số học trên kiểu dữ liệu số nguyên, có phải người ta phải thiết lập các chương trình con trong ngôn ngữ?
  5. Tại sao người ta lại sử dụng kiểu liệt kê?
  6. Tại sao người ta lại sử dụng kiểu miền con?

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Ngôn ngữ lập trình. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10783/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ngôn ngữ lập trình' conversation and receive update notifications?

Ask