Bài giảng Tin học đại cương - Bài 7: Cấu trúc
lượt xem 1
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Tin học đại cương - Bài 7: Cấu trúc
- KHOA C¤NG NGHÖ TH¤NG TIN FACULTY OF INFORMATION TECHNOLOGY TIN HỌC ĐẠI CƯƠNG PHẦ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ú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 7.5. Bài tập 2
- Bài 7: Cấu trúc (struct) 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 7.5. Bài tập 3
- 7.1. Khái niệm cấu trúc Trong 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ệu phức hợp bao gồm nhiều thành phần, mỗi thành phần có thể thuộc những kiểu dữ liệu khác nhau. Các thành phần dữ liệu trong cấu trúc được gọi là các trường dữ liệu (field). 4
- 7.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ú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 7.5. Bài tập 6
- 7.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ợp Có thể kết hợp vừa khai báo kiểu dữ liệu cấu trú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 nhau Struct 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; }; 10
- 7.2.4. Định nghĩa kiểu dữ liệu cấu trúc vớ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úc ngay khi khai báo bằng cú pháp typedef struct [tên_cũ] { //khai_bao_cac_truong; }danh_sach_cac_tên_mới; Lưu ý: Được phép đặt tên_mới trùng với tên_cũ. 11
- 7.2.4. Định nghĩa kiểu dữ liệu cấu trúc với typedef (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; 12
- 7.2.4. Định nghĩa kiểu dữ liệu cấu trúc với typedef (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ú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 7.5. Bài tập 14
- 7.3. Xử lý dữ liệu cấu trúc Truy nhập các trường dữ liệu của cấu trúc Phép gán giữa các biến cấu trúc Con trỏ cấu trúc 15
- 7.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 16
- Vấn đề vào ra dữ liệu cho các biến struct Cũ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ệu lầ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\nHo ten:%s\nDiem: %d”,sv1.sbd,sv1.ho_ten,sv1.diem_thi); 17
- 7.3.2. Phép gán giữa các biến cấu trúc Giả sử ta có 2 biến cấu trúc là a và b có cùng kiểu dữ liệu là một cấu trúc nào đó. Phép gán cấu trúc có cú pháp tương tự như phép gán thông thường: bien_cau_truc_1 = bien_cau_truc_2; 18
- 7.3.3. Con trỏ cấu trúc Cú pháp: struct ten_cau_truc *ten_bien_con_tro_ctruc; Có 2 cách truy nhập vào trường dữ liệu của cấu trúc từ biến con trỏ cấu trúc là (*ten_bien_con_tro_ctruc).ten_truong_du_lieu Hoặc: ten_bien_con_tro_ctruc->ten_truong_du_lieu 19
- Con trỏ struct Ví dụ: struct SinhVien *p; //hoac SinhVien *p; struct SinhVien sv, *psv;//psv là con trỏ printf(“Nhap SBD:”);scanf(“%d”,&sv.sbd); psv = &sv;//lấy địa chỉ của biến sv printf(“SBD vua nhap:%d”, psv->sbd); printf(“Nhap lai SBD:”); scanf(“%d”,&(psv->sbd)); printf(“SBD vua nhap:%d”, (*psv).sbd); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng tin học đại cương - trường ĐH Tôn Đức Thắng
175 p | 1024 | 287
-
Bài giảng Tin học đại cương - Chương 1: Các vấn đề cơ bản về CNTT
167 p | 419 | 31
-
Bài giảng Tin học đại cương: Bài 1 - ĐH Bách khoa Hà Nội
33 p | 263 | 21
-
Bài giảng Tin học đại cương: Bài 4 - ĐH Bách khoa Hà Nội
8 p | 155 | 13
-
Bài giảng Tin học đại cương: Chương 2 - Tin học và công nghệ thông tin
12 p | 183 | 10
-
Bài giảng Tin học đại cương: Bài 3 - ĐH Bách khoa Hà Nội
14 p | 143 | 8
-
Bài giảng Tin học đại cương - Nguyễn Vũ Duy
95 p | 43 | 8
-
Bài giảng Tin học đại cương: Phần 1 - ThS. Phạm Thanh Bình
18 p | 93 | 6
-
Bài giảng Tin học đại cương: Chương 1 - Đại cương về tin học
16 p | 124 | 5
-
Bài giảng Tin học đại cương: Chương 1 - Thông tin
29 p | 150 | 5
-
Bài giảng Tin học đại cương: MS Excel - ThS. Ngô Cao Định
31 p | 11 | 4
-
Bài giảng Tin học đại cương: Tổng quan về máy tính - ThS. Ngô Cao Định
38 p | 15 | 4
-
Bài giảng Tin học đại cương: Biểu diễn và xử lý thông tin - ThS. Ngô Cao Định
56 p | 8 | 3
-
Bài giảng Tin học đại cương: Mạng và Internet - ThS. Ngô Cao Định
55 p | 9 | 3
-
Bài giảng Tin học đại cương: Hệ điều hành - ThS. Ngô Cao Định
86 p | 9 | 2
-
Bài giảng Tin học đại cương: Chương 1 - Trần Quang Hải Bằng (ĐH giao thông Vận tải)
31 p | 80 | 2
-
Bài giảng Tin học đại cương: Bài 13 - Bùi Thị Thu Cúc
10 p | 78 | 2
-
Bài giảng Tin học đại cương: Tổng quan về cơ sở dữ liệu - ThS. Ngô Cao Định
11 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn