Bài giảng Lập trình - Bài 7: Kiểu dữ liệu có cấu trúc - Trường Đại học Khoa học tự nhiên TP Hồ Chí Minh
Structure:Là một nhóm của các biến được định nghĩa dưới một tên. Kiểu này còn gọi là kiểu dữ liệu phức hợp.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình - Bài 7: Kiểu dữ liệu có cấu trúc - Trường Đại học Khoa học tự nhiên TP Hồ Chí Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình - Bài 7: Kiểu dữ liệu có cấu trúc - Trường Đại học Khoa học tự nhiên TP Hồ Chí Minh
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Bài 7:
Kiểu Dữ Liệu Có Cấu Trúc
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
2
1. Khái niệm kiểu cấu trúc
2. Khai báo cấu trúc
3. Các thao tác cơ bản
4. Mảng cấu trúc và các thao tác
5. Enumerations - Typedef
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
3
1. Khái niệm
Ngôn ngữ C/C++ đưa ra 5 cách để tạo nên một kiểu dữ
liệu tùy biến (custom data types).
1. Structure:Là một nhóm của các biến được định nghĩa
dưới một tên. Kiểu này còn gọi là kiểu dữ liệu
phức hợp.
2. Bit-field:là một biến thể của kiểu structure và cho
phép dễ dàng truy cập đến từng bit riêng rẽ.
3. Union: cho phép cùng một mẫu bộ nhớ được định
nghĩa như hai hay nhiều kiểu biến khác nhau.
4. Enumeration: là danh sách của các tên hằng nguyên.
5. Typedef: định nghĩa một tên khác cho một kiểu dữ liệu
đã có.
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
1.2. Khái niệm kiểu cấu trúc
4
Ví dụ mở đầu: Trường đại học XYZ cần viết 1
phần mềm quản lý sinh viên, thông tin cần lưu trữ
cho mỗi sinh viên bao gồm: mã sinh viên, họ tên,
tuổi, quê quán, lớp học..
Trong trường hợp này chúng ta cần giải quyết
vấn đề : 1 dữ liệu có khả năng chứa nhiều thông
tin trong nó.
để giải quyết vấn đề này ta dùng kiểu dữ liệu
có Cấu Trúc
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
1.2. Khái niệm kiểu cấu trúc
5
• 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).
• Sự khác biệt giữa kiểu cấu trúc và kiểu mảng
là: các phần tử của mảng là cùng kiểu còn
các phần tử của kiểu cấu trúc có thể có kiểu
khác nhau.
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
2.1. Khai báo kiểu cấu trúc
6
Cấu trúc thực chất là một kiểu dữ liệu do người dùng định
nghĩa bằng cách gom nhóm các kiểu dữ liệu cơ bản có sẵn
trong C thành một kiểu dữ liệu phức hợp nhiều thành phần.
struct tructureName
{
type member1;
type member2;
...
type memberN;
.. .
} varNames;
• structureName: Tên của
cấu trúc
• type: Kiểu dữ liệu của
thành viên tương ứng
• Member1,..., memberN:
Tên các biến thành viên
của cấu trúc
• varNames: Tên các biến
cấu trúc phân cách nhau
bằng dấu phẩy.
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
7
2. Khai báo kiểu cấu trúc
Ví dụ:
• Tạo một struct sinh viên gồm các thông tin: mã số sinh
viên, họ tên, năm sinh, địa chỉ.
struct sinhvien
{
char MaSv[10];
char TenSv[30];
int Namsinh;
char Diachi[50];
};
• Khai báo biến kiểu sinhvien: sinhvien sv1, sv2;
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
8
Từ khóa typedef dùng để định nghĩa
một kiểu dữ liệu mới
Khi ta khai báo: SinhVien teo;
Thì teo chính là 1 đối tượng có kiểu dữ
liệu là SinhVien
nó tương tự như ta khai báo int x ;
Vậy để lấy các thông tin bên trong
của teo thì làm như thế nào?
Những thông tin mà nằm bên trong 1
cấu trúc (struct) thì được gọi là các
thuộc tính của cấu trúc đó
Tức là teo là 1 đối tượng cụ thể, teo
có 4 thuộc tính đó là: ma, ten,dtb,lop
để truy xuất tới các thuộc tính ta
dùng:
tên_đối_tượng.thuộc_tính
2. Khai báo kiểu cấu trúc
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
9
Dùng toán tử dấu 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:
varNames.memberName
Ví dụ:
strcpy(sv1.MaSv, “a001”);
strcpy(sv1.TenSv,“Nguyen van A”);
sv2.Namsinh=1977;
3.1. Truy cập biến cấu trúc
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
10
3.2. Lệnh gán cấu trúc
Dùng lệnh gán để gán nội dung trong 1 biến
cấu trúc cho một biến cấu trúc khác có cùng
kiểu.
Ví dụ:
struct coordXY
{
int x;
int y;
} diemA, diemB;
diemA.x = 100; diemA.y = 200;
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
11
Gán nội dung biến cấu trúc diemA cho biến
diemB:
diemB = diemA ;
Hoặc có thể sao chép từng thành viên:
diemB.x = diemA.x;
diemB.y = diemA.y;
3.2. Lệnh gán cấu trúc
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
12
3.3. Ví dụ
Cách nhập dữ liệu có
kiểu chuỗi từ bàn phím:
dùng gets
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
13
3.3. Ví dụ
Viết chương trình nhập vào toạ độ hai điểm trong mặt phẳng và
tính tổng hai toạ độ này
*Bước 1: Khai báo kiểu dữ liệu có cấu trúc biểu diễn thông
tin tọa độ của một điểm trong mặt phẳng gồm 2 thành phần:
hoành độ và tung độ
typedef struct ttDIEM
{
int x;
int y;
};
ttDIEM DIEM;
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
14
*Bước 2: Cài đặt các hàm:
Nhập vào tọa độ điểm
void Nhap (DIEM &d);
Xuất tọa độ điểm
void Xuat (DIEM d);
Tính tổng hai tọa độ
DIEM Tong (DIEM d1,DIEM d2);
3.3. Ví dụ
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
15
3.3. Ví dụ
void Nhap (DIEM &d)
{
cout<<“Hoanh do : “;
cin>>d. x;
cout“Tung do : ”;
cin>>d.y;
}
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
16
3.3. Ví dụ
DIEM Tong (DIEM d1,DIEM d2)
{
DIEM temp;
temp.x = d1.x + d2.x ;
temp.y = d1.y + d2.y ;
return Temp;
}
void Xuat (DIEM d)
{
cout<<“\nToa do diem : (“ <<d.x<< “,”<<d.y<<”)”;
}
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
17
3.3. Ví dụ
void main ()
{
DIEM A , B, AB; //khai bao 3 diem A, B, AB;
cout<<“Nhap toa do diem thu 1: “<<endl;
Nhap ( A );
Xuat ( A );
cout<<“Nhap toa do diem thu 2: “<<endl;
Nhap ( B File đính kèm:
bai_giang_lap_trinh_bai_7_kieu_du_lieu_co_cau_truc_truong_da.pdf

