TIN HỌC ĐẠI CƯƠNG
Bài 7. CẤU TRÚC.
Nguyễn Thành Kiên
Bộ môn Kỹ thuật máy tính
Khoa Công nghệ thông tin – ĐHBK HN
Bài 7. CẤU TRÚC
7.1. Khái niệm cấu trúc
7.2. Khai báo và sử dụng cấu trúc
7.3. Xử lí dữ liệu cấu trúc
7.4. Mảng cấu trúc
2
Bài 7. CẤU TRÚC
7.1. Khái niệm cấu trúc
<khai báo các trường dữ liệu>;
};
struct point_3D
struct sinh_vien
{
char ma_so_sv[10];
char ho_va_ten[30];
float diem_TinDC;
}
{
float x;
float y;
float z;
}
5
7.2. Khai báo và sử dụng cấu trúc
Khai báo biến cấu trúc
C1: struct tên_cấu_trúc tên_biến;
struct sinh_vien a, b, c;
C2: kết hợp đồng thời vừa khai báo kiểu dữ liệu
cấu trúc vừa khai báo biến:
struct [tên_cấu_trúc]
{
{
char SBD[10];
char ho_va_ten[30];
struct diem_thi
{
float diem_Toan;
float diem_Ly;
float diem_Hoa;
}ket_qua;
} thi_sinh_1, thi_sinh_2;
8
7.2. Khai báo và sử dụng cấu trúc
Định nghĩa kiểu DL cấu trúc với typedef
Khai báo biến cấu trúc phải bắt đầu bằng
từ khóa struct, sau đó đến tên cấu trúc rồi
mới đến tên biến => quên từ khóa struct
=> đặt tên mới cho kiểu dữ liệu cấu trúc
bằng câu lệnh typedef
typedef struct tên_cũ tên_mới;
diem_2_chieu Y;
ten_bat_ki Z;
10
Bài 7. CẤU TRÚC
7.1. Khái niệm cấu trúc
7.2. Khai báo và sử dụng cấu trúc
7.3. Xử lí dữ liệu cấu trúc
7.4. Mảng cấu trúc
11
7.3. Xử lí dữ liệu cấu trúc
Truy nhập các trường DL của cấu trúc
tên_biến_cấu_trúc.tên_trường
ta có thể “đối xử” với
tên_biến_cấu_trúc.tên_trường giống
như một biến thông thường có kiểu dữ liệu
getch();
}
13
7.3. Xử lí dữ liệu cấu trúc
Phép gán giữa các biến cấu trúc
Có thể thực hiện phép gán biến cấu trúc
struct s
{
char ho_ten[20];
float diem;
}a, b, c;
float temp_f;
printf("\na.ho_ten: ");fflush(stdin); gets(a.ho_ten);
printf("\na.diem = ");scanf("%f",&temp_f);
a.diem = temp_f;
strcpy(c.ho_ten, a.ho_ten);
c.diem = a.diem;
b = a;
14
7.1. Khái niệm cấu trúc
7.2. Khai báo và sử dụng cấu trúc
7.3. Xử lí dữ liệu cấu trúc
7.4. Mảng cấu trúc
16
7.4. Mảng cấu trúc
Cú pháp khai báo:
struct <tên cấu trúc> <tên mảng cấu trúc> [số phần tử];
Ví dụ:
struct sinh_vien
{
char ho_ten[20];
float diem_thi;
};
struct sinh_vien lop_CNTT[50];
17
}
getch();
}
Ví dụ về cách sử dụng
mảng cấu trúc
18
Bài tập 1
Viết 1 chương trình thực hiện những công việc sau:
Yêu cầu người dùng nhập vào một số nguyên dương n với 5 ≤
n ≤ 20 (có kiểm tra tính hợp lệ).
Yêu cầu người dùng nhập vào thông tin của n sinh viên gồm:
Số lượng
Tìm và đưa ra màn hình những mặt hàng có giá trị lớn hơn một số
thực được nhập từ bàn phím, biết rằng giá trị của một loại
mặt hàng tính bằng số lượng mặt hàng đó nhân với đơn giá
của nó. Mẫu đưa ra màn hình là
Tên mặt hàng
Số lượng
Đơn giá
Giá trị20