Thông tin tài liệu:
Tài liệu tham khảo bài giảng về Ngôn ngữ lập trình C++ gồm 7 chương - Chương 3 Các kiểu dữ liệu phức hợp
Nội dung trích xuất từ tài liệu:
Ngôn ngữ lập trình C - Chương 3 Ch−¬ng 3 Ch C¸c kiÓud÷ liÖu phøc hîp3.1 C++ vµ c¸c kiÓu d÷ liÖu phøc hîp 3.1.1 Kiểu dữ liệu trong ngôn ngữ lập trình – Kiểu cơ sở (vô hướng) • Gồm các kiểu dữ liệu kí tự, số (nguyên, thực), có thể cả kiểu lôgic. – Là các kiểu cơ bản trong hầu hết các ngôn ngữ lập trình. • Sử dụng khi cần biễu diễn các dữ liệu nguyên tố, đơn giản – Khả năng biễu diến dữ liệu bị hạn chế. – Kiểu phức hợp (bậc cao, dẫn xuất) • Kiểu dữ liệu phức hợp: được tạo thành từ các kiểu cơ sở – Còn gọi là kiểu bậc cao hay kiểu dẫn xuất. – Thực tế lập trình đòi hỏi các kiểu dữ liệu phức tạp • Kiểu dữ liệu phức hợp tính cấu trúc của dữ liệu tăng khả năng biểu diễn dữ liệu. – Sử dụng trong các chương trình đòi hỏi khả năng biễu diễn dữ liệu phức tạp hơn. 2 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD3.1 C++ vµ c¸c kiÓu d÷ liÖu phøc hîp 3.1.2 Kiểu dữ liệu phức hợp trong C++ – Các kiểu dữ liệu phức hợp trong C++ • Kiểu liệt kê (enum) • Kiểu mảng: mảng một chiều, mảng nhiều chiều. • Kiểu cấu trúc (struct): cấu trúc, kiểu hợp (union), kiểu trường bit. – Kết hợp các kiểu dữ liệu trong C++ • Có thể tổ hợp các kiểu cơ sở, phức hợp với nhau. – Ví dụ: khai báo một mảng các cấu trúc, hay khai báo một cấu trúc có thành phần là mảng, … – Đặt tên kiểu dữ liệu bằng typedef trong C++ • Cú pháp: typedef tên_kiểu_đã_có tên_mới; • Từ khóa typedef thường sử dụng để đặt tên một kiểu dữ liệu phức hợp có thể dùng tên đó để khai báo biến sau này. – Trong C, typedef thường dùng để đặt tên cho kiểu cấu trúc. 3 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD3.1 C++ vµ c¸c kiÓu d÷ liÖu phøc hîp 3.1.3 Kiểu liệt kê – Khái niệm: tập hợp các giá trị được liệt kê tường minh – Cú pháp: enum kiểu_liệt_kê {các_phần_tử} các_biến; • VD: enum Thu {T2, T3, T4, T5, T6, T7, CN} t1, t2; • Có thể có các khai báo biến thể (lược bỏ một số thành phần), ví dụ không có tên kiểu, tên biến hay cả tên kiểu lẫn tên biến. • Khai báo biến: Thu t3, t4; – Chú ý: trong C biến enum thực chất là biến nguyên, tên sau từ khóa enum chưa được coi là tên kiểu phải khai báo biến theo cú pháp: enum kiểu_liệt_kê biến_liệt_kê; – Chuyển kiểu giữa enum và int • Có thể chuyển kiểu tự động từ enum sang int • Để chuyển từ kiểu int sang enum phải dùng toán tử ép kiểu – VD: int m=2; t1=(Thu)m; – Trong C có thể gán trực tiếp biến int cho biến enum. 4 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD3.2 M¶ng 3.2.1 Khai báo và định nghĩa mảng – Kiểu mảng • Là kiểu dữ liệu bao gồm dãy liên tiếp các phần tử cùng kiểu. • Số chiều của mảng là không giới hạn. • Kích thước mảng được tính bằng tổng số phần tử của mảng. • Mảng cho phép thao tác với một dãy các phần tử dữ liệu một cách thuận tiện hơn, hiệu quả hơn. – Khai báo mảng • Mảng một chiều: kiểu_dữ_liệu tên_mảng[kích_thước]; • Mảng nhiều chiều: kiểu_dữ_liệu tên_mảng[kích_thước][kích_thước][…]…; • VD: int A[10]; long B[20][10]; float C[10][20][30]; 5 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD3.2 M¶ng 3.2.2 Thao tác với biến mảng – Truy nhập vào phần tử mảng • Mảng một chiều: tên_mảng[chỉ_số] – Chỉ số có thể là số thực C++ tự động chuyển sang kiểu nguyên. • Mảng nhiều chiều: tên_mảng[chỉ_số][chỉ_số][…]… – Điều này thể hiện định nghĩa mảng trong C++ ( ≠ Pascal). • Chú ý 1: C/C++ không kiểm tra việc tràn chỉ số – Việc sử dụng chỉ số vượt khỏi phạm vi cho phép có thể gây lỗi, chẳng hạn có thể làm thay đổi các biến khác trong chương trình. • Chú ý 2: Tên mảng là địa chỉ phần tử đầu của mảng – Tên mảng là hằng con trỏ, chứa địa chỉ phần tử đầu tiên của mảng. – Địa chỉ các thành phần của mảng n chiều được tính cho các phần tử con n-1 chiều (không tính theo kiểu dữ liệu). 6 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD3.2 M¶ng 3.2.2 T ...