Bài giảng Tin học đại cương (Phần 3: Lập trình C): Chương 6 - Viện Công nghệ Thông tin & Truyền thông
lượt xem 5
download
aBài giảng Tin học đại cương (Phần 3: Lập trình C): Chương 6 cung cấp cho người học những kiến thức về cấu trúc. Những nội dung chính trong chương này gồm có: Khái niệm cấu trúc, khai báo cấu trúc, Xử lý dữ liệu cấu trúc, một số ví dụ. Mời các bạn cùng tham khảo.
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 (Phần 3: Lập trình C): Chương 6 - Viện Công nghệ Thông tin & Truyền thông
- Phần 3: Lập trình C Nội dung chính • Chương 1: Tổng quan về ngôn ngữ C • Chương 2: Kiểu dữ liệu và biểu thức trong C • Chương 3: Vào ra dữ liệu • • Chương 4: Cấu trúc điều khiển Chương 5: Mảng, con trỏ và xâu ký tự • Chương 6: Cấu trúc • Chương 7: Hàm • Chương 8: Tệp dữ liệu 01-Jan- 34
- Chương 6: Cấu trúc Nội dung chính 1. Khái niệm cấu trúc • Khái niệm 2. Khai báo cấu trúc • Khái báo kiểu cấu trúc • Khai báo biến cấu trúc • Định nghĩa kiểu dữ liệu với typedef 3. Xử lý dữ liệu cấu trúc • Truy nhập các trường dữ liệu • Phép gán giữa các biến cấu trúc 4. Một số ví dụ 01-Jan- 34
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Ví dụ Bài toán quản lý thí sinh thi đại học Để quản lý cần lưu trữ các thông tin • Số báo danh: Số nguyên không dấu • Họ tên sinh viên: Chuỗi ký tự không quá 30 • Khối thi: Ký tự (A,B,C..) • Tổng điểm 3 môn thi: kiểu thực Do vậy với mỗi sinh viên cần các biến unsigned SBD; char Ten[30]; char KhoiThi; float 01-Jan- KetQua; 34
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Ví dụ Bài toán quản lý thí sinh thi đại học (tiếp) Để quản lý danh sách (dưới 1000) thí sinh dự thi, cần nhiều mảng rời rạc #define MAX 1000 unsigned DS_SBD[MAX]; char DS_Ten[MAX][30]; char DS_KhoiThi[MAX]; float DS_KetQua[MAX]; 01-Jan- 34
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Ví dụ Bài toán quản lý thí sinh thi đại học (tiếp) DS_SBD 123 456 789 DS_Ten Mảng ký tự Nguyễn Nguyễn Trần An Văn Nghĩa An Hoàng DS_KhoiThi A D 24.5 28.522.0 A Biến điều khiển TS: Ti S: dùng duyệt mảng DS_KetQua 01-Jan-16 350
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Ví dụ Vấn đề & giải pháp Dùng nhiều mảng - Khó quản lý, dễ nhầm lẫn - Không thể hiện cấu trúc thông tin dành cho từng thí sinh Cấu trúc thông tin Mảng các cấu dành cho một thí sinh trúc thông dành tin cho thí sinh THÔNGTIN TINTHÍ THÍSINH SINH THÔNG Số báo danh:…....123……… ……… Số THÔNG báo TINdanh:………… THÍ SINH THÔNG Họ TIN và THÍTên:..Nguyễn SINH Văn Họ và Tên:…………………… Số báo danh:……………… An. thi:……………… Khối thi:………… SốHọ và báo Khốidanh:………………… Tên:………………… A…………. . … Kết quả:……… Kết quả: ………. Khối thi:……………………… 24.5………. ……………… Họ và Tên: Kết quả: Kết quả:………………………. Mỗi phần tử của mảng 01-Jan-16 ……………………… ………. là một cấu trúc thông35tin
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Khái niệm • Cấu trúc là kiểu dữ liệu phức hợp, do người dụng tự định nghĩa Kiểu cấu trúc bao gồm nhiều thành phần có thể – thuộc các kiểu dữ liệu khác nhau – Các thành phần: gọi là trường dữ liệu (field) – Các thành phần, không được truy nhập theo chỉ số (như mảng) mà theo tên của trường. Có thể coi một biến cấu trúc là một tập hợp của một hay nhiều biến rời rạc, thường có kiểu khác nhau thành một biến có một tên duy nhất để dễ dàng quản lý và sử dụng 01-Jan- 35
- Chương 6: Cấu trúc 6.1 Khái niệm cấu trúc Khái niệm Ví dụ • Kết quả học tập của sinh viên – TenSV: Chuỗi ký tự – MaSV: Chuỗi số/ số nguyên – Điem: Số thực • Điểm trong mặt phẳng – Tên điểm: Ký tự (A, B, C..) – Hoành độ: Số thực – Tung độ: Số thực 01-Jan- 35
- Chương 6: Cấu trúc Nội dung chính 1. Khái niệm cấu trúc • Khái niệm 2. Khai báo cấu trúc • Khái báo kiểu cấu trúc • Khai báo biến cấu trúc • Định nghĩa kiểu dữ liệu với typedef 3. Xử lý dữ liệu cấu trúc • Truy nhập các trường dữ liệu • Phép gán giữa các biến cấu trúc 4. Một số ví dụ 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo kiểu cấu trúc struct Tên_kiểu_cấu_ trúc { }; • struct: từ khóa, cho phép người dùng khai báo kiểu dữ liệu mới: kiểu cấu trúc • Tên_kiểu_cấu_truc: Tên của kiểu cấu trúc do người dùng tự định nghĩa – Tuân theo nguyên tắc đặt tên đối tượng trong C • Khai báo các trường dữ liệu: Danh sách các khai báo thành phần (trường:field) của cấu trúc – Giống khai báo biến 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo kiểu cấu trúc Ví dụ Thẻ sinh viên struct SinhVien{ Số hiệu:…(Chuỗi ký tự).. char SHSV[10]; Tên sinh viên: (Chuỗi ký tự) char Ten[30]; Năm sinh:…(Số nguyên)… int NS; Khóa:……(Số nguyên) int Khoa; ……. Lớp:…… :.(Chuỗi ký char Lop [10]; }; tự). … Point2D struct Point{ Hoành độ (x)…(Số thực).. float x, y; Tung độ (y)…..(Số }; thực).. 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc • Khai báo kiểu cấu trúc nhằm tạo định nghĩa toàn thể cho các cấu trúc sẽ được dùng sau này – Không cung cấp không gian nhớ cho kiểu • Khai báo biến cấu trúc nhằm yêu cầu chương trình tạo vùng nhớ để lưu trữ các dữ liệu cho biến cấu trúc – Chứa dữ liệu của các trường của cấu trúc 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc Cú pháp Tồn tại định nghĩa kiểu cấu trúc struct Kiểu_cấu_ trúc Tên_biến; Khai báo trực tiếp struct { }Tên_biến; Kết hợp với khai báo kiểu struct Kiểu_cấu_ trúc { }Tên_biến; 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc Ví dụ Tồn tại định nghĩa kiểu cấu trúc struct SinhVien SV1, SV2, Thu khoa; Khai báo trực tiếp struct { float x, y; //Tọa structđộ Point_3D{ float trênx, y, z;// Tọa độ không gian }A, mặt B; 01-Jan- 35
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc Chú ý Các cấu trúc có thể được khai báo lồng nhau struct diem_thi { float dToan, dLy, dHoa; } struct thi_sinh{ char SBD[10]; char ho_va_ten[30]; struct diem_thi ket_qua; 01-Jan- 36
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc Chú ý Có thể khai báo trực tiếp các trường dữ liệu của một cấu trúc bên trong cấu trúc khác struct thi_sinh{ char SBD[10]; char ho_va_ten[30]; struct{ float dToan, dLy, dHoa; } ket_qua; } thi_sinh_1, thi_sinh_2; 01-Jan- 36
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Khai báo biến cấu trúc Chú ý Có thể gán giá trị khởi đầu cho một biến cấu trúc, theo nguyên tắc như kiểu mảng Ví dụ: struct SinhVien{ struct Date{ char Ten[20]; int day; struct Date{ int month; int day; int int year; month; }; int year; struct SinhVien{ } NS; char Ten[30]; } SV = {“Tran struct Date NS; Anh", } SV = {“Tran Anh",20,12,1990 20, 12, 1990}; }; 01-Jan- 36
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Định nghĩa kiểu dữ liệu với typedef typedef ; Mục đích • Đặt tên mới đồng nghĩa với tên của một kiểu dữ liệu đã được định nghĩa – Thường được sử dụng cho kiểu cấu trúc • Giúp cho khai báo trở nên quen thuộc và ít bị sai hơn Ví dụ typedef char Str80[80] ; typedef long mask; Str80 str="Bonjour tout le monde !"; 01-Jan-16 mask a, b; 363
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Định nghĩa kiểu dữ liệu với typedef Thường được kết hợp với kiểu cấu trúc để khai báo một bí danh cho một cấu trúc – Giúp khai báo trở nên quen thuộc và ít bị sai hơn typedef struct { //Định nghĩa một cấu trúc char SHSV[10]; char Ten[30]; int NS; }int SinhVien; Khoa; //Đặt tên cho cấu trúc là SinhVien char Lop SV; SinhVien [10]; //Tạo một biến cấu trúc 01-Jan- 36
- Chương 6: Cấu trúc 6.2 Khai báo cấu trúc Định nghĩa kiểu dữ liệu với typedef Chú ý Cho phép đặt tên mới trùng với tên cũ typedef struct { Ví dụ float x, y, z; struct point_3D{ fl }point_3D; oat x, y, z; point_3D M; } point_3D typedef struct struct point_3D point_3D N; point_3D; point_3D N; M; 01-Jan- 36
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 | 1026 | 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 | 422 | 31
-
Bài giảng Tin học đại cương: Bài 1 - ĐH Bách khoa Hà Nội
33 p | 267 | 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: Bài 9 - ĐH Bách khoa Hà Nội
16 p | 130 | 11
-
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 | 185 | 10
-
Bài giảng Tin học đại cương: Bài 3 - ĐH Bách khoa Hà Nội
14 p | 146 | 8
-
Bài giảng Tin học đại cương: Bài 10 - ĐH Bách khoa Hà Nội
7 p | 107 | 7
-
Bài giảng Tin học đại cương: Bài 11 - ĐH Bách khoa Hà Nội
8 p | 100 | 6
-
Bài giảng Tin học đại cương: Phần 1 - ThS. Phạm Thanh Bình
18 p | 96 | 6
-
Bài giảng Tin học đại cương: Chương 1 - Đại cương về tin học
16 p | 125 | 5
-
Bài giảng Tin học đại cương: Chương 1 - Thông tin
29 p | 151 | 5
-
Bài giảng Tin học đại cương: Tổng quan về máy tính - ThS. Ngô Cao Định
38 p | 17 | 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 | 9 | 3
-
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 | 81 | 2
-
Bài giảng Tin học đại cương: Bài 13 - Bùi Thị Thu Cúc
10 p | 84 | 2
-
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: 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