Bài giảng Ngôn ngữ lập trình C - Chương 8: Cấu trúc
Số trang: 10
Loại file: pdf
Dung lượng: 89.71 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Kết cấu chương 8 Cấu trúc thuộc bài giảng Ngôn ngữ lập trình C trình bày về những nội dung lần lượt như sau: kiểu cấu trúc, truy nhập đến các thành phần của 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 một cấu trúc.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C - Chương 8: Cấu trúcCHƯƠNG 8: CẤU TRÚCNội dung Kiểu cấu trúc Truy nhập đến các thành phần của 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 một cấu trúc Kiểu cấu trúc Cấu trúc trong C là một kiểu dữ liệu kiểu bản ghi, cho phép nhiều loại dữ liệu được nhóm lại với nhau. Nhờ cấu trúc ta có thể mô tả một đối tượng với các tính chất đặc trưng, mỗi tính chất là một thành phần của 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 là một kiểu cấu trúc gồm hai thành phần tọa độ x, y kiểu int.• TAMGIAC là một kiểu cấu trúc gồm ba thành phần A, B, C kiểu DIEM.• m là một biến kiểu DIEM• tg là một biến kiểu TAMGIAC Truy nhập đến các thành phần của cấu trúc• Để truy nhập đến một thành phần của một cấu trúc ta sử dụng một trong các cách viết sau:• .• . .• ….• Ví dụ 2: xét lại ví dụ 1• m là một điểm có tọa độ nguyên m.x, m.y• tg là một tam giác có 3 đỉ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 và đỉnh C có tọa độ tg.C.x, tg.C.y Mảng cấu trúc• Mảng cấu trúc là một mảng mà mỗi phần tử của nó là mộ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 trên thì a là một mảng gồm 20 phần tử kiểu HOCSINH. Chẳng hạn, a[10].ho sẽ lưu họ của học sinh có chỉ số 10, a[5].toan sẽ lưu điểm toán của hoc sinh có chỉ số 5 trong mảng. Nhập xuất kiểu cấu trúc• Ví dụ 4: Nhập xuất một học sinh• //khai báo nguyên mẫu• void Nhap1HS(HOCSINH *hs);• void In1HS(HOCSINH hs);• //định nghĩa các 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 ”,• hs.ma, hs.ten, hs.toan, hs.ly, hs.hoa);• }• //hàm chính• void main()• {• HOCSINH hocsinh;• Nhap1HocSinh(&hocsinh);• In1HocSinh(hocsinh);• }• Chú ý: Trong C đối với các thành phần không nguyên của kiểu dữ liệu cấu trúc, ta không thể sử dụng toán tử lấy địa chỉ (&).• 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 các hàm• void NhapDSHS(HOCSINH a[], int *n)• {• • for(i = 0; i < *n, i++) {• printf(“--Hoc sinh thu %d-- ”, 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 ”);• NhapDSHS(a, &n);• printf(“danh sach hoc sinh vua nhap ”);• XuatDSHS(a, n);• } Khởi tạo cho một 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, 5• };• 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},• };
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C - Chương 8: Cấu trúcCHƯƠNG 8: CẤU TRÚCNội dung Kiểu cấu trúc Truy nhập đến các thành phần của 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 một cấu trúc Kiểu cấu trúc Cấu trúc trong C là một kiểu dữ liệu kiểu bản ghi, cho phép nhiều loại dữ liệu được nhóm lại với nhau. Nhờ cấu trúc ta có thể mô tả một đối tượng với các tính chất đặc trưng, mỗi tính chất là một thành phần của 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 là một kiểu cấu trúc gồm hai thành phần tọa độ x, y kiểu int.• TAMGIAC là một kiểu cấu trúc gồm ba thành phần A, B, C kiểu DIEM.• m là một biến kiểu DIEM• tg là một biến kiểu TAMGIAC Truy nhập đến các thành phần của cấu trúc• Để truy nhập đến một thành phần của một cấu trúc ta sử dụng một trong các cách viết sau:• .• . .• ….• Ví dụ 2: xét lại ví dụ 1• m là một điểm có tọa độ nguyên m.x, m.y• tg là một tam giác có 3 đỉ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 và đỉnh C có tọa độ tg.C.x, tg.C.y Mảng cấu trúc• Mảng cấu trúc là một mảng mà mỗi phần tử của nó là mộ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 trên thì a là một mảng gồm 20 phần tử kiểu HOCSINH. Chẳng hạn, a[10].ho sẽ lưu họ của học sinh có chỉ số 10, a[5].toan sẽ lưu điểm toán của hoc sinh có chỉ số 5 trong mảng. Nhập xuất kiểu cấu trúc• Ví dụ 4: Nhập xuất một học sinh• //khai báo nguyên mẫu• void Nhap1HS(HOCSINH *hs);• void In1HS(HOCSINH hs);• //định nghĩa các 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 ”,• hs.ma, hs.ten, hs.toan, hs.ly, hs.hoa);• }• //hàm chính• void main()• {• HOCSINH hocsinh;• Nhap1HocSinh(&hocsinh);• In1HocSinh(hocsinh);• }• Chú ý: Trong C đối với các thành phần không nguyên của kiểu dữ liệu cấu trúc, ta không thể sử dụng toán tử lấy địa chỉ (&).• 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 các hàm• void NhapDSHS(HOCSINH a[], int *n)• {• • for(i = 0; i < *n, i++) {• printf(“--Hoc sinh thu %d-- ”, 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 ”);• NhapDSHS(a, &n);• printf(“danh sach hoc sinh vua nhap ”);• XuatDSHS(a, n);• } Khởi tạo cho một 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, 5• };• 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},• };
Tìm kiếm theo từ khóa liên quan:
Kiểu cấu trúc Mảng cấu trúc Thành phần cấu trúc Ngôn ngữ lập trình Học lập trình C Ngôn ngữ lập trình C Kỹ thuật lập trình CTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 316 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 310 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 293 0 0 -
114 trang 264 2 0
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 248 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 247 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 242 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 231 1 0 -
101 trang 211 1 0
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 204 0 0