Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc giới thiệu khái quát về kiểu dữ liệu, kiểu dữ liệu cấu trúc, kiểu dữ liệu liệt kê enum, từ khóa typedef. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Chương 8
Trang 2Nội dung trình bày
1. Giới thiệu
2. Kiểu cấu trúc
3. Kiểu liệt kê enum
4. Từ khóa typedef
Trang 31 Giới thiệu
Vấn đề: các kiểu dữ liệu cơ sở không đủ để giải quyết các bài toán phức tạp
Ví dụ: Viết chương trình tính lương cho nhân viên,
hoặc viết chương trình cho nhập danh sách sinh viên
giải quyết bài toán phức tạp vì C không có kiểu
nhân viên, sinh viên
Giải quyết: Cần phải có cách để tạo ra các kiểu dữ liệu theo như ý muốn để giải quyết bài toán phức tạp
Có 5 cách để tạo kiểu dữ liệu tùy biến
Trang 4Nội dung trình bày
1. Giới thiệu
2. Kiểu cấu trúc
3. Kiểu liệt kê enum
4. Từ khóa typedef
Trang 52 Cấu trúc: Giới thiệu
Một cấu trúc là một tập các biến được tham chiếu thông qua một tên chung
Những biến tạo nên cấu trúc được gọi là các thành viên (members)
Ví dụ: Cần tạo cấu trúc để lưu trữ bảng dữ liệu sau:
◦ Cấu trúc này gồm các thành viên: mã số, họ tên, điểm, kết quả
Mã số Họ tên Điểm Kết quả
0124 Nguyễn Bê 12 Rớt
Trang 62 Cấu trúc: Khai báo
varNames: Tên các biến
cấu trúc (nếu có) phân cách nhau bởi dấu phẩy
Struct phải được khai báo liền sau những dòng
include
Trang 72 Cấu trúc: Ví dụ 1
Tạo một cấu trúc sinh viên gồm các thông tin: mã
số sinh viên (chuỗi), họ tên (chuỗi), năm sinh (số), địa chỉ (chuỗi)
Trang 92 Cấu trúc: Khai báo biến cấu trúc
Trang 102 Cấu trúc: Truy cập biến cấu trúc
Dùng toán tử chấm (dot operator) để truy cập các thành viên của một biến cấu trúc
Cú pháp:
Phải dùng toán tử chấm trong lệnh nhập (cin, gets), lệnh xuất (cout, puts) và các lệnh gán thành viên
Trang 11sv2.MaSV = sv1.MaSV;
sv2.TenSV=sv1.MaSV;
sv2.NamSinh=sv1.NamSinh;
Trang 122 Cấu trúc: Mảng các cấu trúc
Mảng cấu trúc là một mảng mà mỗi phần tử là một biến kiểu cấu trúc
Để khai báo một mảng các cấu trúc, trước hết phải khai báo cấu trúc, sau đó khai báo một mảng của cấu trúc đó
Trang 132 Cấu trúc: Mảng các cấu trúc
Để truy cập đến từng thành viên của từng phần
tử của mảng, ta dùng chỉ mục của phần tử và toán tử chấm
Ví dụ: Cho nhập liệu vào mảng bangdiem
for( int i=0; i<n; i++ )
{
cout <<"Ho va ten: "; gets(bangdiem[i].hoten);
cout <<"Diem toan: "; cin>> bangdiem[i].toan;
cout <<"Diem ly: "; cin>> bangdiem[i].ly;
cout <<"Diem hoa: "; cin>> bangdiem[i].hoa;
}
Trang 142 Cấu trúc: Truyền tham số kiểu
Trang 152 Cấu trúc: Truyền tham số kiểu
cout<<"\ny1=";cin>>a.y;
cout<<"\ntoa do diem b:";
cout<<"\nx2=";cin>>b.x;
cout<<"\ny2=";cin>>b.y;
cout<<"\nKhoang cach giua a diem: ";
double kc = khcach(a.x, a.y, b.x, b.y);
cout<<"khoang cach giua a va b la: "<<kc;}
Trang 162 Cấu trúc: Truyền tham số kiểu
Trang 172 Cấu trúc: Truyền tham số kiểu
cout<<"\ny1=";cin>>a.y;
cout<<"\ntoa do diem b:";
cout<<"\nx2=";cin>>b.x;
cout<<"\ny2=";cin>>b.y;
cout<<"\nKhoang cach giua a diem: ";
double kc = khcach(a, b);
cout<<"khoang cach giua a va b la: "<<kc;}
Trang 182 Cấu trúc: Truyền tham số kiểu
for ( int i=0; i<n; i++){
cout<<" \ntoa do diem thu "<<i+1<<" : ";
cout<<" \nx1= "; cin>>list[i].x;
cout<<" \ny1= "; cin>>list[i].y;
} }
Trang 192 Cấu trúc: Truyền tham số kiểu
cấu trúc (tt)
Ví dụ (tiếp theo):
void XuatMangToaDo( diem list[], int n )
{
for ( int i=0; i<n; i++){
cout<<" Toa do thu "<<i+1<<" : ";
cout<<list[i].x<<" , "<<list[i].y;
} }
Trang 202 Cấu trúc: Con trỏ cấu trúc
structureName * structurePointers;
Trang 212 Cấu trúc: Sử dụng con trỏ cấu
Trang 22Nội dung trình bày
1. Giới thiệu
2. Kiểu cấu trúc
3. Kiểu liệt kê enum
4. Từ khóa typedef
Trang 233 Kiểu liệt kê enum
Kiểu enum là một kiểu dữ liệu đặc biệt được dùng
để định nghĩa một quan hệ thứ tự cho một tập hợp hữu hạn các tên
Mỗi một tên trong danh sách enum tượng trưng cho một giá trị nguyên Giá trị của tên thứ nhất trong enum là 0, kế tiếp là 1,
Cú pháp:
bởi dấu phẩy
enum enumName { enumList } [enumVars] ;
Trang 243 Kiểu liệt kê enum: Ví dụ
Ví dụ khai báo enum:
enum color {red, orange, yellow, green, blue, indigo};
Khai báo biến kiểu enum:
Ví dụ khai báo biến kiểu enum:
color c1 = indigo;
if (c1 == indigo)
cout<< "c1 is indigo"<< endl;
enum Tên_enum;
Trang 25Nội dung trình bày
1. Giới thiệu
2. Kiểu cấu trúc
3. Kiểu liệt kê enum
4. Từ khóa typedef
Trang 264 Từ khóa typedef: Giới thiệu
Từ khóa typedef dùng để định nghĩa một tên mới cho một kiểu dữ liệu đã có
Dạng tổng quát của dùng typedef là:
typedef existingType newType ;
Trang 273 Từ khóa typedef: Giới thiệu (tt)
Trang 283 Từ khóa typedef: Dùng với cấu