Bài giảng Lập trình C nâng cao: Chương 5 - Trần Minh Thái
lượt xem 18
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Chương 5 của bài giảng Lập trình C nâng cao trình bày về kiểu dữ liệu có cấu trúc. Chương này gồm có những nội dung sau đây: Khái niệm về kiểu dữ liệu có cấu trúc, khai báo kiểu dữ liệu có cấu trúc, cách truy xuất thành phần bên trong cấu trúc, xử lý cấu trúc đơn, xử lý mảng có cấu trúc,...và một số bài tập.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình C nâng cao: Chương 5 - Trần Minh Thái
- Chương 5. Kiểu dữ liệu có cấu trúc TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn Cập nhật: 08 tháng 04 năm 2015
- Nội dung #2 • Khái niệm • Khai báo • Cách truy xuất thành phần bên trong cấu trúc • Xử lý cấu trúc đơn • Xử lý mảng có cấu trúc • Bài tập
- Khái niệm #3 Kiểu dữ liệu có cấu trúc là kiêu ̉ dữ liêu ̣ do lập trình viên tự đinh nghi ̣ ̃a bằng cách gom nhóm các ̉ ữ liêu c kiêu d ̣ ơ ban co ̉ ̣ ́ sẵn trong C thành môt kiêu ̉ dữ liêu ph ̣ ức hợp gồm nhiều thành phần • Khai báo struct tên_struct { khai báo các thuộc tính; }; typedef struct tên_struct TênKDL;
- Khái niệm #4 • Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct ttDate { char thu[10]; int ngay; int thang; int nam; }; typedef struct ttDate Date;
- Truy cập các thuộc tính cấu trúc #5 • Biến kiểu cấu trúc TÊNKDL tên_biến; tên_biến.tên_thuộc_tính; • Ví dụ Date x; x.ngay = 5;
- Truy cập các thuộc tính cấu trúc #6 • Biến con trỏ kiểu cấu trúc TÊNKDL *tên_biến_con_trỏ; tên_biến_con_trỏ > tên_thuộc_tính; Ví dụ: Date *x ; x = (Date*) malloc(sizeof(Date)); x > ngay = 5 ;
- Khai báo đệ quy #7 struct tên_struct { khai báo các thuộc tính; struct tên_struct *tên_thuộc_tính_đệ_qui; };
- Khai báo đệ quy #8 • Ví dụ: struct ttNode { int key; struct ttNode *pNext; };
- Ví dụ #9 Viết chương trình nhâp va ̣ ̣ ̣ ̉ ̀o toa đô hai điêm trong ̣ ̉ măt phăng va ̉ ̣ ̣ ̀y ̀ tính tông hai toa đô na //File Khaibao.h #include struct ttDiem { int x; int y; }; typedef struct ttDiem Diem;
- Ví dụ #10 //File caidat.cpp #include "khaibao.h" void Nhap (Diem &d) { printf(“\nNhap vao toa do diem\n”); printf(“Hoanh do : “); scanf(“%d”, &d. x); printf(“Tung do : ”); scanf(“%d”, &d.y); }
- Ví dụ #11 void Xuat (Diem d) { printf(“\nToa do diem : (%d, %d)”, d.x, d.y); } Diem Tong (Diem d1, Diem d2) { Diem temp; temp.x = d1.x + d2.x ; temp.y = d1.y + d2.y ; return temp;
- Ví dụ //File main.cpp #12 #include”khaibao.h” void main () { Diem A , B, AB; //khai bao 3 diem A, B, AB; Nhap (A); Xuat (A); Nhap (B); Xuat (B); printf(“\n Tong cua hai diem vua nhap la : ”); AB = Tong (A, B);
- Bài tập 1 #13 Viết chương trình nhập vào thông tin của một sinh viên gồm: • Mã số sinh viên • Họ và tên • Điểm giữa kỳ (GK) • Điểm thực hành (TH) • Điểm lý thuyết (LT) Tính điểm tổng kết môn theo công thức: GK*10%+TH*30%+LT*60%
- Bài tập 2 #14 Sử dụng kiểu dữ liệu có cấu trúc để khai báo và viết chương trình (theo phương pháp thủ tục hàm) gồm các chức năng sau: 1. Nhập vào 2 phân số 2. Tính tổng và tích hai phân số (kết quả phải là phân số tối giản) 3. Xuất kết quả ra màn hình
- Bài tập 3 #15 Viết chương trình nhập vào 2 thời gian t1 và t2 (thông tin thời gian gồm: giờ, phút và giây); tính khoảng cách giữa t1 và t2 (đơn vị tính bằng giây)
- Mảng cấu trúc #16 • Cách khai báo tương tự như mang môt chiê ̉ ̣ ̉ ̀u (Kiêu dữ liêu bây gi ̣ ờ là kiêu d ̉ ữ liêu co ̣ ́ cấu trúc). • ̣ phần tử trong mang Cách truy câp ̉ cũng như truy ̣ ̉ ̣ câp trên mang môt chiều. Nhưng do từng phần tử ̉ cấu trúc nên phai có kiêu ̉ chi ̉ đinh ̣ rõ cần lấy thành phần nào, tức là phai ̉ truy câp ̣ đến thành ̉ ̀ dữ liêu c phần cuối cùng có kiêu la ̣ ơ ban ̉
- Nguyên tắc lập trình trên mảng cấu trúc #17 ̉ dữ liêu Do kiêu ̣ có cấu trúc thường chứa rất nhiều thành phần nên khi viết chương trình loai ̣ này ta cần lưu ý: • Xây dựng hàm xử lý cho môt kiêu câ ̣ ̉ ́u trúc. • Muốn xử lý cho mang câ ̉ ̣ ̣ ́u trúc, ta goi lai ha ̀m xử ̣ ̉ lý cho môt kiêu câ ́u trúc đã được xây dựng bằng ̣ cách dùng vòng lăp. 17
- Ví dụ #18 Viết hàm nhập vào mảng các phân số struct ttPhanSo { int tu, mau; }; typedef struct ttPhanSo PhanSo;
- Ví dụ #19 void NhapPS(PhanSo &ps) { printf("Nhap tu so: "); scanf("%d« , &ps.tu); printf("\nNhap mau so: “); scanf(“%d”, &ps.mau); }
- Ví dụ #20 void NhapMangPS(PHANSO dsps[], int n) { for(int i=0; i
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình C cơ bản - ThS. Trương Đình Tú
81 p |
286
|
87
-
Bài giảng Lập trình C# 2010: Chương 1 - ĐH Công nghệ Đồng Nai
42 p |
131
|
22
-
Bài giảng Lập trình C# 2010: Chương 2.3 - ĐH Công nghệ Đồng Nai
21 p |
103
|
20
-
Bài giảng Lập trình C# 2010: Chương 2.4 - ĐH Công nghệ Đồng Nai
16 p |
93
|
19
-
Bài giảng Lập trình C trên Windows - Nguyễn Đạt Thông
353 p |
109
|
17
-
Bài giảng Lập trình C# 2010: Chương 2.2 - ĐH Công nghệ Đồng Nai
57 p |
92
|
16
-
Bài giảng Lập trình C nâng cao: Chương 1 - Trần Minh Thái
25 p |
126
|
15
-
Bài giảng Lập trình C nâng cao - Chương 5: Lập trình tập tin
11 p |
126
|
12
-
Bài giảng Lập trình C nâng cao: Chương 4 - Trần Minh Thái
35 p |
89
|
10
-
Bài giảng Lập trình C nâng cao: Chương 2 - Trần Minh Thái
28 p |
83
|
10
-
Bài giảng Lập trình C nâng cao: Chương 3 - Trần Minh Thái
22 p |
94
|
9
-
Bài giảng Lập trình C nâng cao - Chương 2: Cấu trúc
9 p |
128
|
9
-
Bài giảng Lập trình hướng đối tượng và C++ - ĐH Hàng Hải VN
169 p |
34
|
7
-
Bài giảng Lập trình C nâng cao - Chương 3: Lập trình đệ qui
10 p |
86
|
6
-
Bài giảng Lập trình .NET: Bài 2 - Trần Anh Tuấn A
32 p |
89
|
5
-
Bài giảng Lập trình C# 1 - Chương 3: Control
15 p |
63
|
4
-
Bài giảng Lập trình C cơ bản: Tuần 11
19 p |
12
|
1
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