1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình phân tích kiểu dữ liệu sơ cấp,sự đặc tả và nguyên tắc cài đặt một kiểu dữ liệu p10

5 17 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Cấu trúc

  • NGÔN NGỮ LẬP TRÌNH

    • ĐẠI HỌC CẦN THƠ - 12/2003

      • MỤC ĐÍCH YÊU CẦU

      • ĐỐI TƯỢNG SỬ DỤNG

      • NỘI DUNG CỐT LÕI

      • KIẾN THỨC TIÊN QUYẾT

      • DANH MỤC TÀI LIỆU THAM KHẢO

      • 1.1 TỔNG QUAN

        • 1.1.1 Mục tiêu

        • 1.1.2 Nội dung cốt lõi

        • 1.1.3 Kiến thức cơ bản cần thiết

      • 1.2 KHÁI NIỆM VỀ NGÔN NGỮ LẬP TRÌNH

      • 1.3 VAI TRÒ CỦA NGÔN NGỮ LẬP TRÌNH

      • 1.4 LỢI ÍCH CỦA VIỆC NGHIÊN CỨU NNLT

        • 1.4.1 Cho phép lựa chọn một NNLT phù hợp với dự án thực tế

        • 1.4.2 Sử dụng một cách có hiệu quả các công cụ của ngôn ngữ

        • 1.4.3 Làm tăng vốn kinh nghiệm khi xây dựng các chương trình

        • 1.4.4 Tạo sự dễ dàng để học một ngôn ngữ mới

        • 1.4.5 Tạo tiền đề để thiết kế một ngôn ngữ mới

      • 1.5 CÁC TIÊU CHUẨN ÐÁNH GIÁ MỘT NGÔN NGỮ LẬP TRÌNH TỐT

        • 1.5.1 Tính dễ đọc

        • 1.5.2 Tính dễ viết

        • 1.5.3 Ðộ tin cậy

        • 1.5.4 Chi phí

      • 1.6 CÂU HỎI ÔN TẬP

      • 2.1 TỔNG QUAN

        • 2.1.1 Mục tiêu

        • 2.1.2 Nội dung cốt lõi

        • 2.1.3 Kiến thức cơ bản cần thiết

      • 2.2 ÐỐI TƯỢNG DỮ LIỆU

        • 2.2.1 Khái niệm đối tượng dữ liệu

        • 2.2.2 Các loại ÐTDL

        • 2.2.3 Thuộc tính của ÐTDL

        • 2.2.4 Giá trị dữ liệu

        • 2.2.5 Thời gian tồn tại

        • 2.2.6 Các mối liên kết

      • 2.3 BIẾN VÀ HẰNG

        • 2.3.1 Biến

        • 2.3.2 Hằng

      • 2.4 KIỂU DỮ LIỆU

        • 2.4.1 Ðịnh nghĩa kiểu dữ liệu

        • 2.4.2 Sự đặc tả kiểu dữ liệu

          • Phép toán

        • 2.4.3 Sự cài đặt kiểu dữ liệu

      • 2.5 SỰ KHAI BÁO

        • 2.5.1 Khái niệm khai báo

        • 2.5.2 Mục đích của sự khai báo

      • 2.6 KIỂM TRA KIỂU VÀ BIẾN ÐỔI KIỂU

        • 2.6.1 Khái niệm kiểm tra kiểu

        • 2.6.2 Kiểm tra kiểu động

        • 2.6.3 Kiểm tra kiểu tĩnh

      • 2.7 CHUYỂN ÐỔI KIỂU

      • 2.8 GÁN VÀ KHỞI TẠO

        • 2.8.1 Phép gán

        • 2.8.2 Sự khởi tạo biến

      • 2.9 CÂU HỎI ÔN TẬP

      • 3.1 TỔNG QUAN

        • 3.1.1 Mục tiêu

        • 3.1.2 Nội dung cốt lõi

        • 3.1.3 Kiến thức cơ bản cần thiết

      • 3.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU SƠ CẤP

      • 3.3 SỰ ÐẶC TẢ CÁC KIỂU DỮ LIỆU SƠ CẤP

        • 3.3.1 Thuộc tính của kiểu dữ liệu sơ cấp

        • 3.3.2 Giá trị của kiểu dữ liệu sơ cấp

        • 3.3.3 Phép toán trên kiểu dữ liệu sơ cấp

      • 3.4 CÀI ÐẶT CÁC KIỂU DỮ LIỆU SƠ CẤP

        • 3.4.1 Tổ chức dữ liệu trong bộ nhớ

        • 3.4.2 Cài đặt phép toán

      • 3.5 KIỂU DỮ LIỆU SỐ

        • 3.5.1 Số nguyên

          • Sự đặc tả

          • Sự cài đặt

        • 3.5.2 Miền con của số nguyên

          • Sự đặc tả

          • Sự cài đặt

          • Lợi ích của việc sử dụng kiểu miền con

        • 3.5.3 Số thực dấu chấm động

          • Sự đặc tả

          • Sự cài đặt

      • 3.6 KIỂU LIỆT KÊ

        • 3.6.1 Đặt vấn đề

        • 3.6.2 Sự đặc tả

        • 3.6.3 Sự cài đặt

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

      • 3.7 KIỂU LOGIC

        • 3.7.1 Sự đặc tả

        • 3.7.2 Phép cài đặt

      • 3.8 KIỂU KÝ TỰ

        • 3.8.1 Sự đặc tả

        • 3.8.2 Phép cài đặt

      • 3.9 CÂU HỎI ÔN TẬP

      • 4.1 TỔNG QUAN

        • 4.1.1 Mục tiêu

        • 4.1.2 Nội dung cốt lõi

        • 4.1.3 Kiến thức cơ bản cần thiết

      • 4.2 ÐỊNH NGHĨA KIỂU DỮ LIỆU CÓ CẤU TRÚC

      • 4.3 SỰ ÐẶC TẢ KIỂU CẤU TRÚC DỮ LIỆU

        • 4.3.1 Sự đặc tả các thuộc tính

          • Số lượng phần tử

          • Tên để dùng cho các phần tử được lựa chọn

          • Số lượng lớn nhất các phần tử

          • Tổ chức cấu trúc

        • 4.3.2 Các phép toán trên cấu trúc dữ liệu

          • Phép toán lựa chọn phần tử của cấu trúc

          • Các phép toán thao tác trên toàn bộ cấu trúc dữ liệu

          • Thêm / bớt các phần tử

          • Tạo / hủy CTDL

      • 4.4 SỰ CÀI ÐẶT CÁC CẤU TRÚC DỮ LIỆU

        • 4.4.1 Biểu diễn bộ nhớ

          • Biểu diễn tuần tự

          • Biểu diễn liên kết

        • 4.4.2 Cài đặt các phép toán trên cấu trúc dữ liệu

          • Ðối với biểu diễn tuần tự

          • Ðối với biểu diễn liên kết

      • 4.5 VÉCTƠ

        • 4.5.1 Định nghĩa véctơ

        • 4.5.2 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính của véctơ

          • Đặc tả các phép toán trên véctơ

        • 4.5.3 Cài đặt một véctơ

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện các phép toán

      • 4.6 MẢNG NHIỀU CHIỀU

        • 4.6.1 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.6.2 Sự cài đặt

          • Sự biểu diễn bộ nhớ

          • Giải thuật thực hiện phép toán

      • 4.7 MẨU TIN

        • 4.7.1 Định nghĩa mẩu tin

        • 4.7.2 Sự đặc tả và cú pháp

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.7.3 Sự cài đặt

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiên phép toán

      • 4.8 MẨU TIN CÓ CẤU TRÚC THAY ÐỔI

        • 4.8.1 Ðặc tả và khai báo

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.8.2 Cài đặt mẩu tin có cấu trúc thay đổi

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện phép toán

      • 4.9 CHUỖI KÝ TỰ:

        • 4.9.1 Ðặc tả và cú pháp:

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.9.2 Cài đặt

          • Biểu diễn bộ nhớ

          • Giải thuật thực hiện các phép toán

      • 4.10 CẤU TRÚC DỮ LIỆU CÓ KÍCH THƯỚC THAY ÐỔI

        • 4.10.1 Danh sách và cấu trúc danh sách

        • 4.10.2 Ngăn xếp và hàng đợi

      • 4.11 CON TRỎ

        • 4.11.1 Cấp phát tĩnh, cấp phát động và con trỏ

        • 4.11.2 Sự đặc tả

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.11.3 Sự cài đặt

          • Ðịa chỉ tuyệt đối

          • Ðịa chỉ tương đối

      • 4.12 TẬP HỢP

        • 4.12.1 Ðặc tả

          • Đặc tả thuộc tính

          • Đặc tả phép toán

        • 4.12.2 Cài đặt

          • Véctơ bit

          • Bảng băm

      • 4.13 TẬP TIN

        • 4.13.1 Tập tin tuần tự

          • Sự đặc tả

          • Phép cài đặt

        • 4.13.2 Tập tin văn bản

        • 4.13.3 Tập tin truy xuất trực tiếp

      • 4.14 CÂU HỎI ÔN TẬP

      • 5.1 TỔNG QUAN

        • 5.1.1 Mục tiêu

        • 5.1.2 Nội dung cốt lõi

        • 5.1.3 Kiến thức cơ bản cần thiết

      • 5.2 SỰ PHÁT TRIỂN CỦA KHÁI NIỆM KIỂU DỮ LIỆU

      • 5.3 TRỪU TƯỢNG HÓA

        • 5.3.1 Khái niệm trừu tượng hóa

        • 5.3.2 Trừu tượng hóa quá trình

        • 5.3.3 Trừu tượng hóa dữ liệu

      • 5.4 ÐỊNH NGHĨA KIỂU

        • 5.4.1 Khái niệm

        • 5.4.2 Tính tương đương của các kiểu định nghĩa

      • 5.5 CÂU HỎI ÔN TẬP

      • 6.1 TỔNG QUAN

        • 6.1.1 Mục tiêu

        • 6.1.2 Nội dung cốt lõi

        • 6.1.3 Kiến thức cơ bản cần thiết

      • 6.2 ÐỊNH NGHĨA CHƯƠNG TRÌNH CON

        • 6.2.1 Ðặc tả chương trình con

        • 6.2.2 Cài đặt chương trình con

      • 6.3 CƠ CHẾ GỌI CHƯƠNG TRÌNH CON

        • 6.3.1 Ðịnh nghĩa và kích hoạt chương trình con

        • 6.3.2 Cài đặt định nghĩa và kích hoạt chương trình con

      • 6.4 CHƯƠNG TRÌNH CON CHUNG

      • 6.5 TRUYỀN THAM SỐ CHO CHƯƠNG TRÌNH CON

        • 6.5.1 Khái niệm truyền tham số

        • 6.5.2 Sự tương ứng giữa tham số tham số thực tế và tham số hình thức

        • 6.5.3 Các phương pháp truyền tham số tham số

          • Truyền bằng giá trị (transmission by value)

          • Truyền tham chiếu (transmission by reference)

          • Truyền bằng giá trị-kết quả (transmission by value-result)

          • Truyền bằng kết quả (transmission by result)

      • 6.6 CÂU HỎI ÔN TẬP

      • 7.1 TỔNG QUAN

        • 7.1.1 Mục tiêu

        • 7.1.2 Nội dung cốt lõi

        • 7.1.3 Kiến thức cơ bản cần thiết

      • 7.2 KHÁI NIỆM ÐIỀU KHIỂN TUẦN TỰ

      • 7.3 ÐIỀU KHIỂN TUẦN TỰ TRONG BIỂU THỨC

        • Ðặt vấn đề

        • 7.3.2 Sự biểu diễn theo cấu trúc cây của biểu thức

        • 7.3.3 Cú pháp của biểu thức

          • Ký hiệu tiền tố (prefix)

          • Ký hiệu hậu tố (postfix)

          • Kí hiệu trung tố (infix)

        • 7.3.4 Dịch biểu thức thành biểu diễn cây

        • 7.3.5 Biểu diễn trong thời gian thực hiện của biểu thức

      • 7.4 ÐIỀU KHIỂN TUẦN TỰ GIỮA CÁC LỆNH

        • 7.4.1 Các lệnh cơ bản

        • 7.4.2 Điều khiển tuần tự dùng nhãn lệnh và lệnh GOTO

        • 7.4.3 Các lệnh cấu trúc

          • Lệnh hợp thành (Compound Statements)

          • Lệnh điều kiện (Conditional Statements)

          • Lệnh lặp (Interation Statements)

      • 7.5 SỰ NGOẠI LỆ VÀ XỬ LÝ NGOẠI LỆ

        • 7.5.1 Một số khái niệm

        • 7.5.2 Xử lý ngoại lệ

        • 7.5.3 Ðề xuất một ngoại lệ

        • 7.5.4 Lan truyền một ngoại lệ (Propagating an exception)

        • 7.5.5 Sau khi một ngoại lệ được xử lý

      • 7.6 CÂU HỎI ÔN TẬP

      • 8.1 TỔNG QUAN

        • 8.1.1 Mục tiêu

        • 8.1.2 Nội dung cốt lõi

        • 8.1.3 Kiến thức cơ bản cần thiết

      • 8.2 NGÔN NGỮ LẬP TRÌNH HÀM

        • 8.2.1 Giới thiệu

        • 8.2.2 Hàm toán học

        • 8.2.3 Dạng hàm

        • 8.2.4 Bản chất của ngôn ngữ lập trình hàm

      • 8.3 NGÔN NGỮ LISP

        • 8.3.1 Giới thiệu:

        • 8.3.2 Các khái niệm cơ bản

          • Nguyên tử (atom)

          • Danh sách

          • Biểu thức

        • 8.3.3 Các hàm

          • Một số hàm định nghĩa trước

          • Hàm do người lập trình định nghĩa

        • 8.3.4 Ðệ quy

        • 8.3.5 Các hàm nhập xuất

        • 8.3.6 Biến toàn cục và biến cục bộ

          • Biến toàn cục

          • Biến cục bộ

          • Biến cục bộ che biến toàn cục

        • 8.3.7 Hướng dẫn sử dụng LISP

          • Sử dụng XLISP

          • Soạn thảo tập tin chương trình

          • Nạp hàm tự định nghĩa cho XLISP

          • Một số thông báo lỗi thường gặp

          • - Unbound function: Hàm không có.

          • - Bad function: Hàm sai.

          • - Too many arguments: Thừa tham số.

          • - Too few arguments: Thiếu tham số.

          • - Misplaced close paren: Thừa dấu ngoặc đóng/ Thiếu dấu ngoặc mở.

          • - EOF reached beore expression end: Thừa dấu ngoặc mở/ Thiếu dấu ngoặc đóng.

          • - Not a number: Đối số của hàm phải là một số.

          • - Bad argument type: Kiểu của tham số sai.

      • 9.1 TỔNG QUAN

        • 9.1.1 Mục tiêu

        • 9.1.2 Nội dung cốt lõi

        • 9.1.3 Kiến thức cơ bản cần thiết

      • 9.2 GIỚI THIỆU VỀ LẬP TRÌNH LOGIC

      • 9.3 NGÔN NGỮ PROLOG

        • 9.3.1 Giới thiệu

        • 9.3.2 Các yếu tố cơ bản của Turbo Prolog

          • Đối tượng

          • Quan hệ giữa các đối tượng

          • Sự kiện và luật

        • 9.3.3 Cấu trúc của một chương trình Prolog

          • Phần Domains

          • Phần Predicates

          • Phần Clauses

          • Phần Goal

          • Một số ví dụ về chương trình prolog

        • 9.3.4 Các nguyên tắc của ngôn ngữ Prolog

          • Đồng nhất

          • Quay lui

        • 9.3.5 Bộ ký tự, từ khoá

        • 9.3.6 Các kiểu dữ liệu

          • Kiểu dữ liệu chuẩn

          • Các kiểu dữ liệu do người lập trình định nghĩa

        • 9.3.7 Các hàm xuất nhập chuẩn

          • Xuất ra màn hình

          • Nhập vào từ bàn phím

        • 9.3.8 Kỹ thuật đệ quy

Nội dung

Biểu diễn tuần tự sẽ được sử dụng để biểu diễn cho một mẩu tin có cấu trúc thay đổi. Thông qua việc dịch, tổng bộ nhớ cần để lưu các phần tử của mỗi một phần động được xác định và bộ nhớ được cấp phát đủ để lưu trữ mẩu tin với phần động lớn nhất. Chẳng hạn với mẩu tin cong_nhan ta có mô hình lưu trữ như trong hình vẽ sau:

h a n g e Vi e N c end; { with Ho_so[i] } end; { In_luong } begin {Chuong trinh chinh} nhap(ho_so,n); tinh_luong(ho_so,n); in_luong(ho_so,n); readln; end 4.8.2 Cài đặt mẩu tin có cấu trúc thay đổi Biểu diễn nhớ Biểu diễn sử dụng để biểu diễn cho mẩu tin có cấu trúc thay đổi Thông qua việc dịch, tổng nhớ cần để lưu phần tử phần động xác định nhớ cấp phát đủ để lưu trữ mẩu tin với phần động lớn Chẳng hạn với mẩu tin cong_nhan ta có mơ hình lưu trữ hình vẽ sau: ← Ho_ten Ho_ten → ← Ngay_cong Ngay_cong → Luong → ← Luong Loai → He_so → ← Loai ← Gia_cong_nhat Nghi_bhxh → ← Không sử dụng Công nhân biên chế Công nhân hợp đồng Vì khối nhớ đủ lớn để lưu trữ phần động lớn nên có đủ chỗ cho phần động phần động nhỏ không sử dụng tới số ô nhớ cấp phát Với mẩu tin có cấu trúc thay đổi, rõ ràng ta tiết kiệm số nhớ so với mẩu tin bình thường Giải thuật thực phép toán Lựa chọn phần tử phần động giống lựa chọn phần tử bình thường, qua việc dịch độ dời phần tử lựa chọn tính tốn qua việc thực độ dời cọng vào địa sở khối để xác định vị trí phần tử 44 bu to k lic d o m o o c u -tr a c k C w w w d o Chương IV: Kiểu liệu có cấu trúc m C lic k to bu y Ngơn ngữ lập trình w w w w 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 4.9 CHUỖI KÝ TỰ: Chuỗi ký tự cấu trúc liệu bao gồm dãy ký tự Như vậy, kiểu chuỗi ký tự kiểu đồng nhất, kích thước cố định thay đổi tùy theo ngôn ngữ Kiểu liệu chuỗi ký tự kiểu quan trọng mà hầu hết ngôn ngữ có 4.9.1 Ðặc tả cú pháp: Đặc tả thuộc tính Tùy ngơn ngữ, có cách đặc tả kiểu chuỗi ký tự: a/ Ðộ dài khai báo cố định: Chuỗi ký tự có độ dài (kích thước) cố định khai báo chương trình Mọi giá trị gán cho đối tượng liệu chuỗi có độ dài Khi chuỗi thực gán cho đối tượng liệu mà độ dài chuỗi thực khác độ dài khai báo có điều chỉnh độ dài chuỗi thực cách cắt bớt ký tự dư thêm vào ký tự trắng để có chuỗi có độ dài khai báo Ðây kỹ thuật dùng COBOL từ khóa PICTURE dùng để xác định số lượng ký tự, ví dụ: Last_Name PICTURE X(20) khai báo biến chuỗi ký tự Last_Name chứa chuỗi 20 ký tự Trong Pascal (chuẩn) kiểu liệu chuỗi ký tự khơng có Thay vào kiểu chuổi ký tự biểu diễn véctơ ký tự Last_Name: PACKED ARRAY [1 20] OF Char b/ Ðộ dài thay đổi giới hạn khai báo: Chuỗi ký tự có độ dài cực đại khai báo trước chương trình giá trị thực đối tượng liệu lưu trữ chuỗi có độ dài ngắn hơn, chí chuỗi rỗng Trong trình thực độ dài giá trị chuỗi đối tượng liệu thay đổi, bị cắt vượt giới hạn khai báo Ðây kỹ thuật dùng PL/1 (và Turbo Pascal) c/ Ðộ dài không giới hạn: Chuỗi ký tự có độ dài độ dài thay đổi cách động thơng qua q trình thực Ðây kỹ thuật dùng SNOBOL4 Trong ba phương pháp nói hai phương pháp đầu cho phép cấp phát nhớ cho đối tượng liệu chuỗi xác định thời gian dịch Ðối vơi phương pháp thứ ba sử dụng cấp phát nhớ động thời gian thực Các phương pháp khác địi hỏi phép tốn khác chuỗi Sau số phép toán chủ yếu Đặc tả phép tốn Trên chuỗi ký tự, thường có phép toán sau: a/ Phép ghép nối (concatennation) 45 bu to k lic d o m o m w o d o Chương IV: Kiểu liệu có cấu trúc 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 w y N O W ! PD k to bu Chương IV: Kiểu liệu có cấu trúc c Ghép phép tốn nhập hai chuỗi ký tự tạo chuỗi ví dụ "//" ký hiệu phép ghép "BLOCK"//"HEAD" cho "BLOCKHEAD" Turbo Pascal sử dụng tốn tử “+” cho phép toán ghép chuỗi b/ Các phép toán quan hệ chuỗi Các phép toán quan hệ thông thường bằng, nhỏ hơn, lớn kiểu ký tự mở rộng cho chuỗi ký tự Tập hợp ký tự ln có thứ tự Mở rộng thứ tự cho chuỗi ký tự thành thứ tự alphabe chuỗi A nhỏ chuỗi B ký tự A nhỏ ký tự B hai ký tự tương ứng chúng ký tự thư hai A nhỏ ký tự thứ hai B Nếu chuỗi A ngắn chuỗi B A mở rộng cách thêm vào ký tự trắng cho dài B để so sánh c/ Chọn chuỗi dùng số vị trí ký tự Nhiều ngơn ngữ cung cấp phép tốn chọn chuỗi chuỗi cách cho vị trí ký tự ký tự cuối (hoặc vị trí ký tự chiều dài chuỗi con) Ví dụ FORTRAN, lệnh NEXT = STR(6:10) gán ký tự, vị trí thứ đến vị trị thứ 10 chuỗi STR cho biến chuỗi NEXT d/ Ðịnh dạng nhập - xuất Ðịnh dạng nhập xuất phép toán dùng để thay đổi dạng nhập vào xuất chuỗi ký tự Nhập xuất có định dạng nét bật FORTRAN PL/1 e/ Chọn chuỗi dùng so mẫu Thông thường người ta vị trí chuỗi cần chọn chuỗi lớn quan hệ với chuỗi khác biết Ví dụ chuỗi chữ số sau dấu chấm thập phân hay chuỗi đứng sau khoảng trống Phép so mẫu có đối số thứ để xác định dạng chuỗi cần chọn (chẳng hạn độ dài nó) Ðối số thứ hai phép toán so mẫu chuỗi ký tự dùng để tìm chuỗi (chẳng hạn dấu chấm thập phân) Như kết phép toán so mẫu chọn chuỗi sau dấu chấm thập phân có độ dài cho 4.9.2 Cài đặt Biểu diễn nhớ Mỗi phương pháp đặc tả chuỗi có cách biểu diễn nhớ tương ứng Ðối với chuỗi có độ dài khai báo cố định dùng véctơ ký tự Ví dụ chuỗi khai báo có độ dài dùng để lưu trữ chuỗi EINSTEIN (cũng có ký tự): E I N S T E I N Ðối với chuỗi có độ dài thay đổi giới hạn khai báo dùng véctơ ký tự, sử dụng hai ô làm mô tả chứa giá trị thể độ dài lớn khai báo độ dài hành chuỗi Ví dụ chuỗi khai báo có độ dài 12 dùng để lưu trữ chuỗi EINSTEIN (có ký tự): 46 d o m o m w o c u -tr a c k h a n g e Vi e lic O W N y C lic k to bu Ngơn ngữ lập trình w w d o XC er w w w F- w C 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 y N c 12 Độ dài khai báo Độ dài thực E I N S T E I N Các ô dư không sử dụng Ðối với chuỗi có độ dài khơng giới hạn sử dụng biểu diễn nhớ liên kết với mô tả chứa độ dài chuỗi E I N T S E I N # Ðộ dài thực chuỗi Giải thuật thực phép tốn Thơng thường phần cứng hỗ trợ cho việc biểu diễn chuỗi có độ dài cố định biểu diễn khác cho chuỗi phải mơ phần mềm Các phép toán ghép, chọn chuỗi so mẫu phải mô phần mềm 4.10 CẤU TRÚC DỮ LIỆU CĨ KÍCH THƯỚC THAY ÐỔI CTDL có kích thước thay đổi cấu trúc mà số lượng phần tử thay đổi cách động trình thực chương trình Một số kiểu chủ yếu cấu trúc liệu có kích thước thay đổi là: 4.10.1 Danh sách cấu trúc danh sách Danh sách CTDL tuyến tính với số lượng thay đổi phần tử có kiểu giống Nếu phần tử danh sách lại danh sách gọi cấu trúc danh sách (list structures) Các phần tử thêm vào xóa khỏi danh sách Các phần tử lựa chọn từ danh sách vị trí phần tử danh sách bị thay đổi phép thêm xóa phần tử nên khơng thể sử dụng số để xác định phần tử Thay vào đó, việc lựa chọn dựa sở mối quan hệ vị trí phần tử với danh sách chẳng hạn phần tử đầu, hai, ba, kế hặc cuối Biểu diễn nhớ liên kết cho danh sách cấu trúc danh sách dùng cách phổ biến để phù hợp với thay đổi số lượng phần tử 4.10.2 Ngăn xếp hàng đợi Ngăn xếp danh sách mà việc lựa chọn, thêm, xóa phần tử thực đầu danh sách Do việc thêm, xóa phần tử thực đầu ngăn xếp, nên phần tử đưa vào sau, lấy trước Do ngăn xếp gọi cấu trúc liệu kiểu LIFO (Last In, First Out) Hàng đợi danh sách mà việc lựa chọn, xóa phần tử thực đầu việc thêm phần tử thực đầu khác danh sách 47 bu to k d o m o o c u -tr a c k w lic w w w d o Chương IV: Kiểu liệu có cấu trúc 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 w y N O W ! PD k to bu Chương IV: Kiểu liệu có cấu trúc c Do việc xóa phần tử thực đầu (đầu hàng) việc thêm phần tử thực cuối hàng, nên phần tử đưa vào trước, lấy trước Do hàng đợi gọi cấu trúc liệu kiểu FIFO (First In, First Out) Cả hai phương pháp biểu diễn liên kết dùng cho ngăn xếp hàng đợi 4.11 CON TRỎ 4.11.1 Cấp phát tĩnh, cấp phát động trỏ Cấp phát nhớ (gọi tắt cấp phát) dành riêng ô nhớ nhớ cho chương trình sử dụng Thơng thường nhớ cấp phát để lưu trữ giá trị liệu biến Có hai phương pháp cấp phát cấp phát tĩnh cấp phát động Cấp phát tĩnh cấp phát ô nhớ cho ÐTDL thực q trình dịch Trong biên dịch, thơng qua khai báo biến, dịch xác định kiểu liệu ÐTDL nên dành sẵn khối ô nhớ đủ lớn để lưu trữ ÐTDL kiểu Người lập trình sử dụng nhớ cấp phát thơng qua tên biến Khi khối chương trình, nơi khai báo biến kết thúc nhớ cấp phát tự động giải phóng Ưu điểm Ưu điểm cấp phát tĩnh người lập trình dễ sử dụng, cụ thể người lập trình cần khai báo biến, chương trình dịch tự động cấp phát sau tự động giải phóng Nhược điểm Nhược điểm cấp phát tĩnh việc sử dụng nhớ khơng tối ưu, cụ thể cấp phát nhiều ô nhớ sử dụng không hết cấp phát thiếu Cấp phát động cấp phát thực chương trình Người lập trình phải viết lệnh cấp phát chương trình, thực lệnh nhớ cấp phát Sử dụng cấp phát động, người lập trình lệnh giải phóng để thu hồi nhớ Ðể cấp phát động, ta cần có biến trỏ hay gọi biến kiểu tham chiếu Biến trỏ ÐTDL sơ cấp chứa địa khối ô nhớ cấp phát Người lập trình sử dụng nhớ cấp phát thơng qua biến trỏ Ưu điểm Ưu điểm bật cấp phát động sử dụng nhớ cách tối ưu Nhược điểm Nhược điểm cấp phát động tên, có nhiều tên biến trỏ tham chiếu đến ô nhớ làm giảm độ tin cậy chương trình Ngồi gặp khó kăn sử dụng cấp phát động 48 d o m o m w o c u -tr a c k h a n g e Vi e lic O W N y bu to k lic C Ngơn ngữ lập trình w w d o XC er w w w F- w C h a n g e Vi e ! XC er PD F- c u -tr a c k c ... trúc liệu bao gồm dãy ký tự Như vậy, kiểu chuỗi ký tự kiểu đồng nhất, cịn kích thước cố định thay đổi tùy theo ngôn ngữ Kiểu liệu chuỗi ký tự kiểu quan trọng mà hầu hết ngôn ngữ có 4.9.1 Ðặc tả. .. pháp: Đặc tả thuộc tính Tùy ngơn ngữ, có cách đặc tả kiểu chuỗi ký tự: a/ Ðộ dài khai báo cố định: Chuỗi ký tự có độ dài (kích thước) cố định khai báo chương trình Mọi giá trị gán cho đối tượng liệu. .. mềm 4.10 CẤU TRÚC DỮ LIỆU CĨ KÍCH THƯỚC THAY ÐỔI CTDL có kích thước thay đổi cấu trúc mà số lượng phần tử thay đổi cách động trình thực chương trình Một số kiểu chủ yếu cấu trúc liệu có kích thước

Ngày đăng: 08/05/2021, 17:53