Bài giảng ngôn ngữ lập trình c chương 8 cấu trúc

10 211 0
Bài giảng ngôn ngữ lập trình c   chương 8  cấu trúc

Đang tải... (xem toàn văn)

Thông tin tài liệu

CHƯƠNG 8: CẤU TRÚC Nội dung Kiểu cấu trúc Truy nhập đến thành phần cấu trúc Mảng cấu trúc Nhập xuất kiểu cấu trúc Khởi tạo cho cấu trúc Kiểu cấu trúc  Cấu trúc C kiểu liệu kiểu ghi, cho phép nhiều loại liệu nhóm lại với  Nhờ cấu trúc ta mô tả đối tượng với tính chất đặc trưng, tính chất thành phần cấu trúc  Khai báo kiểu cấu trúc • typedef struct • { • • } ; • ; • • • • • • • • • • • Ví dụ 1: typedef struct { int x, y; } DIEM; typedef struct { DIEM A, B, C; } TAMGIAC; DIEM m; TAMGIAC tg; • • • • DIEM kiểu cấu trúc gồm hai thành phần tọa độ x, y kiểu int TAMGIAC kiểu cấu trúc gồm ba thành phần A, B, C kiểu DIEM m biến kiểu DIEM tg biến kiểu TAMGIAC • • • • • • • Truy nhập đến thành phần cấu trúc Để truy nhập đến thành phần cấu trúc ta sử dụng cách viết sau: . . … Ví dụ 2: xét lại ví dụ m điểm có tọa độ nguyên m.x, m.y tg tam giác có đỉnh tg.A, tg.B, tg.C Đỉnh A có tọa độ tg.A.x, tg.A.y, đỉnh B có tọa độ tg.B.x, tg.B.y đỉnh C có tọa độ tg.C.x, tg.C.y • • • • • • • • • • • • • • Mảng cấu trúc Mảng cấu trúc mảng mà phần tử cấu trúc bao gồm nhiều thành phần Ví dụ 3: typedef struct { char ma[11]; //ma hoc sinh toi da 10 ký tự char ten[31]; //ten hoc sinh toi da 30 ký tự float toan, ly, hoa; } HOCSINH; void main() { HOCSINH a[20]; … } Với khai báo a mảng gồm 20 phần tử kiểu HOCSINH Chẳng hạn, a[10].ho lưu họ học sinh có số 10, a[5].toan lưu điểm toán hoc sinh có số mảng • • • • • • • • • Nhập xuất kiểu cấu trúc Ví dụ 4: Nhập xuất học sinh //khai báo nguyên mẫu void Nhap1HS(HOCSINH *hs); void In1HS(HOCSINH hs); //định nghĩa hàm void Nhap1HS(HOCSINH *hs) { float tam; printf(“Ma hoc sinh:”); fflush(stdin); gets(hs->ma); printf(“Ho ten:”); gets(hs->ten); printf(“Diem toan:”); scanf(“%f”, &tam); hs->toan = tam; printf(“Diem ly:”); scanf(“%f”, &tam); hs->ly = tam; printf(“Diem hoa:”); scanf(“%f”, &tam); hs->hoa = tam; } • • • • • • • • • • • • • void In1HS(HOCSINH hs) { printf(“%10s%30s%6.2f%6.2f%6.2f\n”, hs.ma, hs.ten, hs.toan, hs.ly, hs.hoa); } //hàm void main() { HOCSINH hocsinh; Nhap1HocSinh(&hocsinh); In1HocSinh(hocsinh); } Chú ý: Trong C thành phần không nguyên kiểu liệu cấu trúc, ta sử dụng toán tử lấy địa (&) • • • • • • • • • • • • • • • • Ví dụ 5: Nhập xuất danh sách học sinh #define MAX 20 //khai báo nguyên mẫu void Nhap1HS(HOCSINH *hs); void In1HS(HOCSINH hs); void NhapDSHS(HOCSINH a[], int *n); void InDSHS(HOCSINH a[], int n); //định nghĩa hàm void NhapDSHS(HOCSINH a[], int *n) { for(i = 0; i < *n, i++) { printf(“ Hoc sinh thu %d \n”, i); Nhap1HS(&a[i]); } } • • • • • • • • • • • • • • void XuatDSHS(HOCSINH a[], int n) { for(i = 0; i < n, i++) Xuat1HS(a[i]); } void main() { HOCSINH a[MAX]; int n; printf(“Nhap danh sach hoc sinh\n”); NhapDSHS(a, &n); printf(“danh sach hoc sinh vua nhap\n”); XuatDSHS(a, n); } • • • • Khởi tạo cho cấu trúc Ví dụ 5: Khởi tạo biến cấu trúc struct HOCSINH hocsinh = { “12A08”, “Le Van Hoang”, 8.5, 9, }; • • • • • • • Ví dụ 5: Khởi tạo mảng cấu trúc struct HOCSINH a[20] = { {“12A00”, “Le Minh An”, 10, 7.5, 8}, {“12A01”, “Duong Thi Nam Phuong”, 8.5, 9, 5}, {“12A019”, “Nguyen Van Dung”, 6, 10, 9}, }; ...Kiểu c u tr c  C u tr c C kiểu liệu kiểu ghi, cho phép nhiều loại liệu nhóm lại với  Nhờ c u tr c ta mô tả đối tượng với tính chất đ c trưng, tính chất thành phần c u tr c  Khai báo kiểu c u tr c. .. kiểu TAMGIAC • • • • • • • Truy nhập đến thành phần c u tr c Để truy nhập đến thành phần c u tr c ta sử dụng c ch viết sau: . .

Ngày đăng: 04/12/2015, 02:31

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan