Danh mục tài liệu

Bài giảng Tin học đại cương - Bài 7: Cấu trúc

Số trang: 31      Loại file: ppt      Dung lượng: 1.39 MB      Lượt xem: 23      Lượt tải: 0    
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Tin học đại cương - Bài 6: Cấu trúc trình bày khái niệm cấu trúc; khai báo và sử dụng cấu trúc; xử lý dữ liệu cấu trúc; mảng cấu trúc; một số bài tập vận dụng.
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học đại cương - Bài 7: Cấu trúc KHOAC¤NGNGHÖ TH¤NGTIN FACULTYOF INFORMATION TECHNOLOGY TIN HỌC ĐẠI CƯƠNGPHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C BÀI 7: CẤU TRÚC (struct) 1 Bài 7: Cấu trúc (struct)7.1. Khái niệm cấu trúc7.2. Khai báo và sử dụng cấu trúc7.3. Xử lí dữ liệu cấu trúc7.4. Mảng cấu trúc7.5. Bài tập 2 Bài 7: Cấu trúc (struct)7.1. Khái niệm cấu trúc7.2. Khai báo và sử dụng cấu trúc7.3. Xử lí dữ liệu cấu trúc7.4. Mảng cấu trúc7.5. Bài tập 3 7.1. Khái niệm cấu trúcTrong C, structure (gọi tắt là struct) ~ kiểu dữliệu bản ghi (record) trong Pascal.Kiểu dữ liệu cấu trúc (struct) là kiểu dữ liệuphức hợp bao gồm nhiều thành phần, mỗithành phần có thể thuộc những kiểu dữ liệukhác nhau.Các thành phần dữ liệu trong cấu trúc đượcgọi là các trường dữ liệu (field). 47.1. Khái niệm cấu trúc (tiếp)“Mô tả” đối tượng có nhiều phần thông tin, vídụ quản lý hồ sơ cán bộ, sinh viên…Ví dụ: Cấu trúc mô tả sinh viên: Cần lưu giữ các thông tin liên quan đến sinh viên như họ tên, tuổi, kết quả học tập… Mỗi thông tin thành phần lại có kiểu dữ liệu khác nhau Họ tên có kiểu dữ liệu là xâu kí tự Tuổi có kiểu dữ liệu là số nguyên Kết quả học tập có kiểu dữ liệu là số thực. 5 Bài 7: Cấu trúc (struct)7.1. Khái niệm cấu trúc7.2. Khai báo và sử dụng cấu trúc7.3. Xử lí dữ liệu cấu trúc7.4. Mảng cấu trúc7.5. Bài tập 67.2.1. Khai báo kiểu dữ liệu cấu trúc Cú pháp:struct ten_cau_truc{ ;}; Ví dụ:struct Sinh_Vien{ char ma_so_sinh_vien[10]; char ho_va_ten[30]; float diem_TinDC;}; 7 7.2.2. Khai báo biến cấu trúc Cú pháp: ten_cau_truc ten_bien_cau_truc;Hoặc: struct ten_cau_truc ten_bien_cau_truc; Ví dụ: Sinh_Vien a, b, c; Hoặc: struct Sinh_Vien a, b, c; 8 7.2.3. Khai báo kết hợpCó thể kết hợp vừa khai báo kiểu dữ liệu cấutrúc vừa khai báo biến cấu trúc:struct [ten_cau_truc]{ //khai_bao_cac_truong;} ten_bien_cau_truc;Vídụ:struct Thi_Sinh{ char SBD[10]; // so bao danh char ho_va_ten[30]; float ket_qua;} ts1, ts2; 9 Struct lồng nhauStruct có thể lồng nhau. Ví dụ:struct Dia_Chi{//địa chỉ int so_nha; char ten_pho[20]; char thanh_pho[20];};struct Nhan_Su{ //nhân sự char ho_ten[20]; Dia_Chi address; //trường address có kiểu địa chỉ float he_so_luong;}; 107.2.4.Địnhnghĩakiểudữliệucấutrúcvới typedefĐặt tên mới cho kiểu dữ liệu cấu trúc cú pháp: typedef struct tên_cũ ten_moi;Hoặc có thể định nghĩa kiểu dữ liệu cấu trúcngay khi khai báo bằng cú pháptypedef struct [tên_cũ]{ //khai_bao_cac_truong;}danh_sach_cac_tên_mới;Lưuý:Đượcphépđặttên_mớitrùngvớitên_cũ. 117.2.4.Địnhnghĩakiểudữliệucấutrúc vớitypedef(tiếp) Vídụ: struct point_3D { float x, y, z; } P; struct point_3D M; typedef struct point_3D p_3D; p_3D N; 127.2.4.Địnhnghĩakiểudữliệucấutrúc vớitypedef(tiếp) Vídụ(tiếp):typedef struct hocsinh { char hoten[35]; char lop[7]; float diemtoan, diemly, diemhoa;} HOCSINH;HOCSINH hs1, hs2; 13 Bài 7: Cấu trúc (struct)7.1. Khái niệm cấu trúc7.2. Khai báo và sử dụng cấu trúc7.3. Xử lý dữ liệu cấu trúc7.4. Mảng cấu trúc7.5. Bài tập 14 7.3. Xử lý dữ liệu cấu trúcTruy nhập các trường dữ liệu của cấu trúcPhép gán giữacácbiếncấu trúcCon trỏ cấu trúc 157.3.1. Truy nhập các trường dữ liệu của cấu trúc Cú pháp: ten_bien_cau_truc.ten_truong Vídụ:struct point_2D { char ten_diem; float x, y; } p;Truy cập tên của 1 điểm: p.ten_diem 16Vấn đề vào ra dữ liệu cho các biến structCũng như dữ liệu kiểu mảng, không thể nhập/xuất dữliệu trực tiếp cho struct mà cần phải nhập/xuất dữ liệulần lượt cho từng trường của struct.Ví dụ, để nhập dữ liệu cho biến sv1, có thể viết như sau:printf(“Nhap SBD:”);scanf(“%d”,&sv1.sbd);printf(“Nhap ho ten:”);fflush(stdin); //xoá bộ đệm, nếu không sv1.sbd sẽnhận giá trị “3” !!!gets(sv1.ho_ten);printf(“Nhap diem thi:”);scanf(“%f”,&sv1.diem_thi);//In kết quả ra màn hình:printf(“SBD:%d Ho ten:%s Diem:%d”,sv1.sbd,sv1.ho_ten,sv1.diem_thi); ...