Tham khảo tài liệu ''giáo trình phân tích khả năng ứng dụng kiểu dữ liệu sơ cấp trong ngôn ngữ lập trình p5'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
h a n g e Vi e y N c float x; float y; public: point() {x=0.0 ; y=0.0;} // Phương thức xây dựng point (float a, float b) {x=a; y=b;} // Phương thức xây dựng bình thường point & operator= (const point & p ) // Định nghĩa toán tử gán { x = p.x; y = p.y; // Gán liệu return * this; } }; // term Sự khác cuối phép gán cách thức tiến hành gán trị Xét lệnh gán Pascal "A := B", Pascal số ngơn ngữ khác, điều có nghĩa là: "Gán giá trị biến B cho biến A" Bây ta lại xét lệnh gán "A = B" SNOBOL4 Trong SNOBOL4 có nghĩa là: "Tạo biến tên A tham chiếu tới ÐTDL mà B tham chiếu" Trong SNOBOL4 A B trỏ tới ÐTDL Pascal A := B (Sao chép ÐTDL gán) Trước 17.2 A: 8.4 B: SNOBOL4 A=B A: Sau 8.4 B: 8.4 (Sao chép trỏ đến ÐTDL gán) Trước gán A: B: 17.2 8.4 Sau gán A: 8.4 B: Cách thực lệnh gán SNOBOL4 rõ ràng tạo tên 2.8.2 Sự khởi tạo biến Khởi tạo biến gán cho biến giá trị Một biến tạo cấp phát nhớ chưa khởi tạo Khi gán giá trị khởi tạo Các biến chưa khởi tạo nguồn gốc lỗi lập trình Khi biến cấp phát nhớ mà chưa khởi tạo nhớ có giá trị ngẫu nhiên Thường giá trị rác (Khi ĐTDL trước bị hủy bỏ giá trị ĐTDL nhớ cịn, giá trị gọi giá trị rác) Ðiều nguy hiểm giá trị rác giá trị hợp lệ Vì chương trình xử lý giá trị rác cách bình thường khơng thể kiểm sóat kết xử lý 19 bu to k d o m o o c u -tr a c k w lic w w w d o Chương II: Kiểu liệu m C lic k to bu Ngơn ngữ lập trình w w w C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e c u -tr a c k w y N c Vì tính chất nghiêm trọng nói biến chưa khởi tạo, ngơn ngữ lập trình sử dụng giải pháp sau để khắc phục: 1.- Nếu biến chưa khở tạo có giá trị NULL: Khi biến tạo ra, ô nhớ cấp phát cho phải chứa dãy bit biểu diễn cho giá trị “NULL” Tùy thuộc vào kiểu biến mà giá trị NULL có giá trị cụ thể, ví dụ biến số NULL 0, biến chuỗi kí tự NULL chuỗi rỗng, biến logic NULL FALSE 2.- Khởi tạo biến sau vừa tạo cách lập trình tốt số ngơn ngữ cung cấp phương tiện để làm điều cách dễ dàng Trong ngôn ngữ Pascal biến khởi tạo đồng thời với việc khai báo gọi biến có giá trị đầu hay cịn gọi định kiểu Ví dụ: const i:integer=10; a: ARRAY[1 3,1 2] Of Integer = ((11, 12), (21, 22), (31, 32)); var j:integer; begin writeln(i); i:= i+1; writeln(i); for i:=1 to begin for j:=1 to write(a[i,j]:5); writeln; end; end 2.9 CÂU HỎI ÔN TẬP Xét mặt cấu trúc có loại đối tượng liệu nào? Thế đối tượng liệu sơ cấp? Thế đối tượng liệu có cấu trúc? Đối tượng liệu tường minh gì? Đối tượng liệu ẩn gì? Kể tên mối liên kết đối tượng liệu Thế biến? Thế hằng? Kiểu liệu gì? 10 Khi đặc tả kiểu liệu, phải đặc tả điều gì? 11 Cho ví dụ phép tốn gây hiệu ứng lề 12 Khi cài đặt kiểu liệu, phải rõ điều gì? 13 Mục đích khai báo gì? 14 Thế kiểm tra kiểu? 15 Khi có khơng tương thích kiểu chương trình dịch phải làm gì? 16 Kể tên phương pháp kiểm tra kiểu 20 bu to k lic d o m o m w o d o Chương II: Kiểu liệu w w w w w C lic k to bu Ngôn ngữ lập trình C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e c u -tr a c k w y N c 17 Kiểm tra kiểu tĩnh tiến hành lúc nào? 18 Kiểm tra kiểu động tiến hành lúc nào? 19 Nêu điểm mạnh kiểm tra kiểu tĩnh 20 Nêu điểm yếu kiểm tra kiểu tĩnh 21 Nêu điểm mạnh kiểm tra kiểu động 22 Nêu điểm yếu kiểm tra kiểu động 23 Thông tin kiểu kiểm tra kiểu tĩnh lưu trữ đâu? 24 Thông tin kiểu kiểm tra kiểu động lưu trữ đâu? 25 Kiểm tra kiểu động thực ngôn ngữ nào? 26 Kiểm tra kiểu tĩnh thực ngôn ngữ nào? 27 Phép gán trị có trả kết khơng? 28 Thế khởi tạo biến? 29 Nếu biểu thức có sử dụng biến chưa khởi tạo đánh giá (định trị) biểu thức khơng? 21 bu to k lic d o m o m w o d o Chương II: Kiểu liệu w w w w w C lic k to bu Ngơn ngữ lập trình C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e c u -tr a c k w y N c CHƯƠNG 3: KIỂU DỮ LIỆU SƠ CẤP 3.1 TỔNG QUAN 3.1.1 Mục tiêu Sau học xong chương này, sinh viên cần phải nắm: - Khái niệm kiểu liệu sơ cấp - Đặc tả phương pháp cài đặt kiểu liệu sơ cấp ngơn ngữ lập trình - Một số kiểu liệu sơ cấp cụ thể như: kiểu số, ký tự, logic… 3.1.2 Nội dung cốt lõi - Kiến thức tổng quan kiểu liệu sơ cấp - Một vài kiểu liệu sơ cấp: kiểu số, liệt kê, logic, ký tự 3.1.3 Kiến thức cần thiết Kiến thức kĩ lập trình bản, kiến thức chương 3.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU SƠ CẤP Kiểu liệu sơ cấp kiểu liệu mà ÐTDL ÐTDL sơ cấp Nói chung ngơn ngữ lập trình có kiểu liệu sơ cấp sau: số nguyên (integer, int…), số thực (real, float, double…), ký tự (char, character…), logic (bool, boolean…) kiểu liệt kê 3.3 SỰ ÐẶC TẢ CÁC KIỂU DỮ LIỆU SƠ CẤP 3.3.1 Thuộc tính kiểu liệu sơ cấp Thuộc tính ÐTDL sơ cấp kiểu liệu Ðối với số kiểu liệu cụ thể có thêm thuộc tính bổ sung để đặc trưng cho kiểu 3.3.2 Giá trị kiểu liệu sơ cấp Tập hợp giá trị kiểu liệu sơ cấp ln tập hợp có thứ tự có giá trị nhỏ giá trị lớn Chính nhờ tính chất có thứ tự tập giá trị sơ cấp nên thao tác xếp liệu, khóa xếp thường thuộc kiểu liệu sơ cấp Ví dụ kiểu liệu integer tập hợp hữu hạn số nguyên (dĩ nhiên có thứ tự), từ số nguyên nhỏ đến số nguyên lớn Số nguyên nhỏ số nguyên lớn số nguyên tương ứng với giá trị nguyên nhỏ lớn biểu diễn cách thuận tiện nhớ máy tính 22 bu to k lic d o m o m w o d o Chương III: Kiểu liệu sơ cấp w w w w w C lic k to bu Ngôn ngữ lập trình C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e c u -tr a c k w y N c 3.3.3 Phép toán kiểu liệu sơ cấp Do tập giá trị sơ cấp có thứ tự, nên tất kiểu liệu sơ cấp có phép tốn quan hệ Ngồi cịn có phép tốn nhận vào số đối số thuộc kiểu sơ cấp trả giá trị sơ cấp kiểu Tuy nhiên cần lưu ý tập giá trị sơ cấp có giá trị nhỏ giá trị lớn nhất, đơi giá trị trả phép tốn khơng nằm giới hạn tập giá trị sơ cấp, điều gây sai sót chương trình 3.4 CÀI ÐẶT CÁC KIỂU DỮ LIỆU SƠ CẤP 3.4.1 Tổ chức liệu nhớ Người ta thường sử dụng việc tổ chức liệu phần cứng máy tính để biểu diễn cho giá trị liệu kiểu liệu sơ cấp Lý việc lựa chọn đơn giản: Nếu biểu diễn nhớ phần cứng sử dụng phép tốn liệu kiểu thực phép toán phần cứng cung cấp Mà phép toán thiết kế phần cứng có tốc độ thực nhanh Ngược lại, ta sử dụng biểu diễn phần mềm phải sử dụng phép tốn mơ phần mềm mà tốc độ thực chậm Tuy nhiên, việc sử dụng biểu diễn phần cứng có yếu điểm tập giá trị bị hạn chế Ví dụ để biểu diễn số nguyên nhớ, ta sử dụng hai phương pháp: 1.- Sử dụng cách biểu diễn số nguyên phần cứng, chẳng hạn sử dụng 16 bit để biểu diễn cho số ngun Với phương pháp ta sử dụng ln phép tính số học số nguyên (+, -, *, DIV, MOD) thiết kế cho phần cứng Ưu điểm phương pháp phép tính số học có tốc độ thực nhanh Nhược điểm phương pháp tập giá trị số nguyên có 65535 số (từ -32768 đến 32767) 2.- Sử dụng cấu trúc liệu để biểu diễn cho số nguyên, chẳng hạn sử dụng chuỗi kí tự, kí tự lưu trữ môt chữ số Ưu điểm phương pháp tập giá trị nguyên lớn (số chữ số nguyên chiều dài chuỗi kí tự biểu diễn cho nó) Nhược điểm phương pháp phải xây dựng chương trình để thực phép tính số học dĩ nhiên tốc độ thực chương trình chậm phép tính xây dựng phần cứng Các thuộc tính (chủ yếu kiểu liệu) ÐTDL sơ cấp xử lý cách sau: 1.- Các thuộc tính ÐTDL xác định biên dịch trình biên dịch Các thuộc tính lưu trữ dịch ngôn ngữ (chẳng hạn bảng danh biểu) cần tìm lại thuộc tính để sử dụng Ðó phương pháp thơng dụng ngơn ngữ biên dịch FORTRAN, C Pascal, nơi mà tính hiệu việc sử dụng nhớ tốc độ thực chương trình mục tiêu hết 23 bu to k lic d o m o m w o d o Chương III: Kiểu liệu sơ cấp w w w w w C lic k to bu Ngơn ngữ lập trình C y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c ... thiết Kiến thức kĩ lập trình bản, kiến thức chương 3.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU SƠ CẤP Kiểu liệu sơ cấp kiểu liệu mà ÐTDL ÐTDL sơ cấp Nói chung ngơn ngữ lập trình có kiểu liệu sơ cấp sau: số nguyên... kiểu liệt kê 3.3 SỰ ÐẶC TẢ CÁC KIỂU DỮ LIỆU SƠ CẤP 3.3.1 Thuộc tính kiểu liệu sơ cấp Thuộc tính ÐTDL sơ cấp kiểu liệu Ðối với số kiểu liệu cụ thể có thêm thuộc tính bổ sung để đặc trưng cho kiểu. .. 3: KIỂU DỮ LIỆU SƠ CẤP 3.1 TỔNG QUAN 3.1.1 Mục tiêu Sau học xong chương này, sinh viên cần phải nắm: - Khái niệm kiểu liệu sơ cấp - Đặc tả phương pháp cài đặt kiểu liệu sơ cấp ngơn ngữ lập trình