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.

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

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 trang 7

Trang 7

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 trang 8

Trang 8

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 trang 9

Trang 9

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 trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 35 trang Danh Thịnh 09/01/2024 4520
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

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:

  • pdfbai_giang_lap_trinh_bai_7_kieu_du_lieu_co_cau_truc_truong_da.pdf