Xem mẫu

  1. KỸ THUẬT LẬP TRÌNH C BÀI 6: KIỂU DỮ LIỆU MẢNG, LIỆT KÊ VÀ CẤU TRÚC Hoàng Quốc Tuấn tuanhq@fpt.edu.vn http://hoangquoctuanpro.wordpress.com
  2. Nội dung Kiểu dữ liệu Mảng (Array) Kiểu dữ liệu Liệt Kê (Enum) Kiểu dữ liệu Cấu Trúc (Struct) 2
  3. I – Kiểu dữ liệu Mảng (Array) 1. Khái niệm 2. Cách khai báo 3. Chỉ số của mảng 4. Lấy địa chỉ của phần tử mảng 5. Nhập, xuất dữ liệu các phần tử mảng 6. Ví dụ minh họa 3
  4. 1. Khái niệm Mảng Mảng là một tập hợp nhiều biến có cùng kiểu dữ liệu và cùng tên. Mỗi phần tử của mảng được truy xuất thông qua chỉ số. 4
  5. 2. Cách khai báo Mảng Cú pháp: ; Ví dụ: int a[10]; // Khai báo mảng a gồm tối đa10 số nguyên float b[100]; // Khai báo mảng b gồm tối đa 100 số thực int c[3][2]; // Khai báo mảng c hai chiều kiểu số nguyên float d[5,7]; // Khai báo mảng d hai chiều kiểu số thực 5
  6. 3. Chỉ số của Mảng Kiểu dữ liệu của chỉ số: Chỉ số của mảng phải là một giá trị kiểu int . Chỉ số của mảng được bắt đầu từ 0. Chỉ số của mảng không được vượt quá kích thước của mảng Ví dụ: int a[5]; /* Mảng các số nguyên a sẽ bao gồm 5 phần tử là a[0], a[1], a[2], a[3], a[4] */ 6
  7. 4. Lấy địa chỉ của phần tử mảng Chỉ lấy được địa chỉ của các phần tử thuộc mảng một chiều thông qua toán tử & theo cú pháp: &tên_biến[i] với i là chỉ số của mảng Tên của mảng chứa địa chỉ đầu của mảng. Ví dụ: có mảng int a[10] thì a = &a[0] 7
  8. 5. Nhập, xuất dữ liệu cho các phần tử Mảng Nhập xuất trực tiếp Nhập, xuất trực tiếp chỉ sử dụng được với mảng có kiểu dữ liệu int Nhập trực tiếp giá trị vào địa chỉ của phần tử 8
  9. #include #include void main() { int a[5]; int i; clrscr(); for(i=0; i
  10. 5. Nhập, xuất dữ liệu cho các phần tử Mảng Nhập xuất gián tiếp Nhập, xuất gián tiếp sử dụng được cho tất cả các mảng. Nhập giá trị vào một biến tạm, rồi sau đó gán giá trị của biến tạm đó cho phần tử của mảng. 10
  11. #include #include void main() { float temp, a[3,4]; int i,j; clrscr(); for(i=0;i
  12. 6. Ví dụ minh họa Mảng Bài 1: Viết chương trình nhập vào một mảng nguyên gồm có 5 phần tử. Tính tổng của tất cả các phần tử, và xuất kết quả. 12
  13. #include #include void main() { clrscr(); int i, s = 0, a[5]; printf(“Nhap vao mang”); for(i=0;i
  14. 6. Ví dụ minh họa Mảng Bài 2: Viết chương trình nhập vào một mảng thực gồm có n phần tử (n là hằng được định nghĩa sẵn bằng 5). xuất ra giá trị lớn nhất trong mảng. 14
  15. #include #include #define n 5 void main() { clrscr(); float max, t, a[n]; int i; printf(“Nhap vao mang”); for(i=0;i
  16. II – Kiểu Liệt kê (Enum) Khái niệm: Kiểu enum là kiểu liệt kê. Khi định nghĩa enum là ta có được một kiểu dữ liệu mới. Một phần tử liệt kê tương ứng là một số nguyên và cách nhau bởi dấu phẩy. Ta có thể gán lại giá trị số cho phần tử liệt kê. Giá trị của một phần tử nếu không ghi rõ thì sẽ bằng giá trị phần tử trước đó tăng thêm 1. Cú pháp: enum {}; 16
  17. II – Kiểu Liệt kê (Enum) VD: enum weekday { SUNDAY, MONDAY, TUESDAY = 4, WEDSDAY, THURSDAY, FRIDAY = 9, SATURDAY }; Khi đó: SUNDAY = 0 , MONDAY = 1, TUESDAY = 4 WEDSDAY = 5, THURSDAY = 6, FRIDAY = 9, SATURDAY = 10. Lệnh: weekday ngay; // Khai báo biến ngay = THURSDAY; // gán giá trị 17
  18. III – Kiểu Cấu trúc (Struct) Khái niệm và định nghĩa Khai báo kiểu cấu trúc Định nghĩa kiểu bằng typedef Truy cập đến các thành phần của cấu trúc Bài tập minh họa 18
  19. 1. Khái niệm kiểu cấu trúc Kiểu cấu trúc là một kiểu dữ liệu gồm nhiều thành phần, các thành phần có thể thuộc nhiều kiểu khác nhau. Các thành phần của cấu trúc được truy cập thông qua tên của thành phần. Khi khai báo một cấu trúc là ta có thêm một kiểu dữ liệu mới, kiểu này có tên là tên của kiểu cấu trúc và trước nó có từ struct. 19
  20. 2. Khai báo kiểu cấu trúc Cú pháp: struct { ; ; ... ; }; Khi đó, ta có được kiểu dữ liệu struct 20
nguon tai.lieu . vn