Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
lượt xem 2
download
Bài giảng Kỹ thuật lập trình: Chương 6 - Kiểu cấu trúc, Kiểu mảng chuỗi, được biên soạn gồm các nội dung chính sau: Từ khoá typedef; Cấu trúc; Mảng; Chuỗi ký tự. 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 Kỹ thuật lập trình: Chương 6 - Trần Quang
- Chương 06 Kiểu cấu trúc Kiểu mảng – chuỗi Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 1
- Nội dung Từ khoá typedef Cấu trúc Mảng Chuỗi ký tự Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 2
- Định nghĩa kiểu mới với typedef typedef cho phép người lập trình tạo ra tên mới cho một kiểu dữ liệu đã có. Tên mới mang lại tính dễ hiểu hơn, trong ngữ cảnh của bài toán đang xét. Tên mới giúp rút ngắn mã nguồn Cú pháp typedef ; Ví dụ typedef unsigned char BYTE; BYTE a, b; Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 3
- kiể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 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) Một biến thuộc kiểu cấu trúc được xem là một tập hợp nhiều biến đơn lẻ thành một biến duy nhất Ví dụ Mỗi sinh viên cần lưu các thông tin: Mã số sinh viên Họ tên Ngày sinh Email, … Trần Quang 4 Kỹ thuật lập trình Chương 06: Array - struct © 2016 4
- kiểu cấu trúc (struct) Tất cả các dữ liệu trong một biến cấu trúc có quan hệ với nhau tạo thành một khối Luôn luôn cấp phát cùng nhau và sắp xếp liên tục trong bộ nhớ Luôn luôn được huỷ khỏi bộ nhớ cùng nhau Các mảnh dữ liệu thành phần có thể truy xuất độc lập, thông quan tên field. Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 5
- Khai báo kiểu dữ liệu cấu trúc Khai báo kiểu cấu trúc struct { } Ví dụ struct sinhvien { char mssv[8]; char hoten[30]; float dtb; } Trần Quang 6 Kỹ thuật lập trình Chương 06: Array - struct © 2016 6
- Khai báo biến cấu trúc Cú pháp: struct ; Ví dụ: struct sinhvien sv1, sv2, sv3; Trần Quang 7 Kỹ thuật lập trình Chương 06: Array - struct © 2016 7
- Khai báo biến cấu trúc Cú pháp: struct ; Ví dụ: struct sinhvien sv1, sv2, sv3; Kết hợp khai báo biến với khai báo cấu trúc struct [tên cấu trúc] { ; } ; Trần Quang 8 Kỹ thuật lập trình Chương 06: Array - struct © 2016 8
- Gán giá trị khởi tạo khi khai báo struct sinhvien { char mssv[8]; char hoten[30]; float dtb; S1: Không được khởi động }; s2: được khởi động không đầy đủ void main() { struct sinhvien s1; s3: được khởi động đầy đủ struct sinhvien s2 = { "001", "Nguyen Van An" }; struct sinhvien s3 = { "001", "Nguyen Van An", 9.5f }; printf("MSSV: %s\n", s3.mssv); printf("Ho Ten: %s\n", s3.hoten); Truy xuất dữ liệu thành phần qua tên gọi } Quy tắc: . Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 9
- Kết hợp typedef với struct Bỏ từ khoá “struct” khi khai báo biến có kiểu struct Ví dụ: typedef struct sPoint3D { float x, y, z; cách định nghĩa một tên kiểu mới } Point3D; là Point3D thông qua typedef void main(){ struct sPoint3D p1 = {1.0f, 2.0f, 3.0f}; Point3D p2 = {1.0f, 2.0f, 3.0f}; printf("p1 = (%4.1f,%4.1f,%4.1f)\n", p1.x, p1.y, p1.z); printf("p2 = (%4.1f,%4.1f,%4.1f)\n", p2.x, p2.y, p2.z); } Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 10
- Mảng Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 11
- Khái niệm mảng Mảng là một kiểu dữ liệu gồm một số hữu hạn thành phần. Các thành phần có cùng một kiểu, gọi là kiểu cơ sở hay là kiểu thành phần. Mỗi phần tử của mảng được tham khảo thông qua tên mảng và chỉ số của phần tử trong mảng Trần Quang 12 Kỹ thuật lập trình Chương 06: Array - struct © 2016 12
- Khái niệm mảng Mảng là một dãy các phần tử cùng một kiểu nằm liền kề nhau trong bộ nhớ. Các phần tử có cùng một kiểu, gọi là kiểu cơ sở Mỗi phần tử của mảng được tham khảo thông qua tên mảng và chỉ số của phần tử trong mảng Ví dụ Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 13
- Khái niệm mảng Sáu số này nằm liên tục nhau trên bộ nhớ Do đó, Nếu ô nhớ đầu tiên, chứa giá trị 10, bắt đầu ở BYTE có địa chỉ 100 trong vùng nhớ của chương trình Thì Địa chỉ của ô nhớ chứa 20: 104 Địa chỉ của ô nhớ chứa 30: 108 Địa chỉ của ô nhớ chứa 40: 112 Địa chỉ của ô nhớ chứa 50: 116 Địa chỉ của ô nhớ chứa 60: 120 Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 14
- Khái niệm mảng Các phần tử trong mảng được đánh chỉ số để truy xuất Phần tử đầu tiên LUÔN LUÔN CÓ chỉ số là 0 Các phần tử kế tiếp theo là 1, 2, … Do đó, Ô nhớ chứa 10 có chỉ số là 0 Ô nhớ chứa 20 có chỉ số là 1 Ô nhớ chứa 30 có chỉ số là 2 Ô nhớ chứa 40 có chỉ số là 3 … Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 15
- Khái niệm mảng Để tính địa chỉ của ô nhớ có chỉ số k, chương trình dùng công thức sau: Địa chỉ = địa chỉ phần tử đầu tiên + k *(kích thước phần tử) Do đó, chương trình dễ dàng chỉ ra ngay một phần tử có chỉ số bất kỳ => TRUY CẬP NGẪU NHIÊN Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 16
- Mảng 1 chiều Cú pháp khai báo []; Ví dụ // khai báo mảng A gồm 10 phần tử thuộc kiểu int int A[10]; Trần Quang 17 Kỹ thuật lập trình Chương 06: Array - struct © 2016 17
- Mảng 1 chiều Ví dụ: int a[6]; int b[6] = {10, 20, 30}; int c[6] = {10, 20, 30, 40, 50, 60}; a: mảng gồm 6 số nguyên giá trị các phần tử chưa xác định b: mảng gồm 6 số nguyên. Giá trị 3 phần tử đầu là: 10, 20, và 30. Còn 3 phần tử sau chưa xác định c: mảng gồm 6 số nguyên. Giá trị các phần tử lần lượt là: 10, 20, 30, 40, 50, và 60 Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 18
- Mảng 1 chiều Hình ảnh trong bộ nhớ của các mảng a, b, và c Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 19
- Mảng 1 chiều Số phần tử của mảng phải biết trước thời điểm biên dịch và là hằng số không âm. Sử dụng macro #define MAX_SIZE Khai báo hằng số nguyên const int max_size #define MAX_SIZE 6 void main(){ const int max_size = 10; int a[MAX_SIZE]; int b[max_size]; } Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kỹ thuật lập trình: Chương I - Lưu Hồng Việt
48 p | 194 | 23
-
Bài giảng Kỹ thuật lập trình: Chương IV - Lưu Hồng Việt
32 p | 151 | 17
-
Bài giảng Kỹ thuật lập trình: Chương III - Lưu Hồng Việt
51 p | 147 | 15
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 127 | 15
-
Bài giảng Kỹ thuật lập trình: Phần 1 - ĐH CNTT&TT
37 p | 114 | 10
-
Bài giảng Kỹ thuật lập trình - Bài 1: Tổng quan về kỹ thuật lập trình
65 p | 165 | 8
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 92 | 7
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 129 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 6 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 7 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 4 | 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