intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:37

12
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang

  1. 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
  2. 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
  3. Đị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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. Mảng Trần Quang Kỹ thuật lập trình Chương 06: Array - struct © 2016 11
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0