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

Bài giảng Kiểu dữ liệu phức hợp - Hoàng Thân Anh Tuấn

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PPT | Số trang:27

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

Mời các bạn tham khảo bài giảng Kiểu dữ liệu phức hợp do Hoàng Thân Anh Tuấn biên soạn sau đây để bổ sung thêm kiến thức về kiểu dữ liệu đơn giản; kiểu dữ liệu phức hợp; phân loại kiểu dữ liệu phức hợp; mảng (mảng 1 chiều, mảng 2 chiều).

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kiểu dữ liệu phức hợp - Hoàng Thân Anh Tuấn

  1. Kiểu dữ liệu phức hợp Hoàng Thân Anh Tuấn Khoa Toán – Tin học Đại học Sư phạm TPHCM
  2. Nội dung  Kiểu dữ liệu đơn giản (cơ bản)  Kiểu dữ liệu phức hợp  Phân loại kiểu dữ liệu phức hợp  Mảng – Mảng 1 chiều – Mảng 2 chiều  Cấu trúc
  3. Kiểu dữ liệu đơn giản  int,double, char, bool, …  Tạo ra các đối tượng cơ bản (thường gọi là biến.  Các đối tượng cơ bản trả lời cho một câu hỏi duy nhất: “nó đang mang giá trị gì?”  Mỗi đối tượng cơ bản tại một thời điểm chỉ mang một giá trị duy nhất
  4. Kiểu dữ liệu phức hợp  Được hình thành từ các kiểu dữ liệu đã có: – Kiểu dữ liệu cơ bản – Kiểu dữ liệu phức hợp đã được tạo trước đó  Tạo ra các đối tượng phức tạp, gần với thế giới thực  Một đối tượng phức tạp (gọi tắt là đối tượng) có thể mang nhiều giá trị.
  5. Ví dụ 1: Chương trình quản lý sinh viên  Thông tin của một sinh viên gồm có: – Mã số sinh viên – Họ tên sinh viên – Năm sinh – Phái  Để mô tả một sinh viên chúng ta cần 4 đối tượng cơ bản: – int maSV; – string hoten; – int namsinh; – int phai;
  6. Ví dụ 1: Chương trình quản lý sinh viên (tt)  Câu hỏi: “Liệu có thể mô tả một sinh viên bởi một đối tượng duy nhất?” Đối tượng sinh viên maSV hoten Có 4 giá trị namsinh phai
  7. Ví dụ 2: Nhập và lưu điểm của sinh viên  1 sinh viên: double diem; cin >> diem;  2 sinh viên: double diem1, diem2; cin >> diem1 >> diem2;  5 sinh viên: double diem1, diem2, diem3, diem4, diem5; cin >> diem1 >> diem2 >> diem3 >> diem4 >> diem5;
  8. Ví dụ 2: Nhập và lưu điểm của sinh viên (tt)  100 sinh viên  100 biến (đối tượng cơ bản)  bất tiện  Câu hỏi: “Liệu có cách nào biểu diễn điểm của tất cả các sinh viên bằng một đối tượng duy nhất?” Đối tượng điểm Có 100 giá trị
  9. Phân loại kiểu dữ liệu phức hợp  Các giá trị được lưu có cùng chung một kiểu  mảng  Các giá trị được lưu khác kiểu nhau  cấu trúc
  10. Mảng  Công dụng – Dùng để lưu các đối tượng có cùng chung một kiểu và ý nghĩa sử dụng  Phân loại – Mảng 1 chiều – Mảng 2 chiều  Khai báo  Cách sử dụng  Các thao tác cơ bản trên mảng
  11. Mảng (2)  Công dụng – Dùng để lưu các đối tượng có cùng chung một kiểu và ý nghĩa sử dụng  Phân loại – Mảng1 chiều – Mảng 2 chiều – Mảng n chiều
  12. Mảng (3)  Khai báo mảng: 0 1 … SPT-2 SPT-1 – Mảng 1 chiều: Kiểu Tên-mảng[số phần tử]; …  Ý nghĩa: là một mảng có kiểu . Phần tử đầu tiên nằm ở vị trí thứ 0. •Ví dụ: Phần tử cuối cùng nằm ở vị trí - 1. •int A[10]; // mảng A có 10  Lưu ý: số phần tử trong phần tử kiểu nguyên câu khai báo mảng phải là một hằng số hoặc một •double mangthuc[100]; mảng biểu thức của các hằng số. mangthuc có 100 phần tử kiểu  Có thê là biến (mới) thực •const int MAX = 100; double mangthuc[MAX];
  13. Mảng (4)  Khai báo mảng: 0 1 … SC-1 – Mảng 2 chiều: Kiểu Tên-mảng[số dòng][số cột]; 0  Ý nghĩa: là một ma trận có dòng và cột. Phần tử đầu tiên nằm ở vị trí dòng thứ 0, cột thứ 0. … Phần tử cuối cùng nằm ở vị trí dòng - 1 và cột - 1.  Lưu ý: số dòng, số cột phải là •Ví dụ: một hằng số hoặc một biểu thức của các hằng số. int A[10][5]; // ma trận  Có thể là biến (mới) 10 dòng, 5 cột const int MAXX = 10; const int MAXY = 5; int A[MAXX][MAXY];
  14. Mảng (5)  Sử dụng mảng: – Để truy xuất đến phần tử nằm ở vị trí thứ i của dãy A: A[i].  Có thể thay i bằng một biểu thức có kết quả lượng giá là một số nguyên trong khoảng hợp lệ.  C++ không kiểm tra lỗi phạm vi. – Để truy xuất đến phần tử nằm ở vị trí dòng i, cột j của ma trận A: A[i][j]  Có thể thay I, j bằng một biểu thức có kết quả lượng giá là một số nguyên trong khoảng hợp lệ.  Lưu ý sự khác biệt giữa Pascal và C++. – Một khi đã truy xuất đến một phần tử của mảng, thì vai trò của phần tử của mảng hoàn toàn như vai trò của biến. Nghĩa là có thể thực hiện thao tác nhập, xuất, gán, lấy giá trị tính toán,…
  15. Mảng (6)  Các thao tác thường gặp trên mảng một chiều: – Qui ước mảng:  int A[100]; // mảng có thể chứa tối đa 100 phần tử  int n; // số phần tử thật sự sẽ sử dụng – Các thao tác trên mảng một chiều thường đi kèm với một vòng for – Nhập một dãy (giả sử đã nhập n) for (int i = 0 ; i < n ; i++) { cout
  16.  Xuất dãy setw(6); // định dạng độ rộng để xuất for (int i = 0 ; i < n ; i++) cout 0 ; i--) A[i] = A[i-1]; A[0] = v; n++;
  17.  Thêm một phần tử v vào vị trí thứ k của dãy for (int i = n ; i > k ; i--) A[i] = A[i-1]; A[k] = v; n++;  Xóa phần tử nằm tại vị trí thứ k của dãy n--; for (int i = k ; i < n ; i++) A[i] = A[i+1];
  18.  Tìm kiếm vị trí của phần tử mang giá trị x int dem = 0; for (int i = 0 ; i < n ; i++) if (A[i] == x) { cout
  19.  Sắp xếp dãy theo thứ tự tăng dần for (int i = 0 ; i < (n – 1) ; i++) { for (int j = n – 1 ; j > I ; j++) if (A[j] < A[j-1]) { int temp = A[j]; A[j] = A[j-1]; A[j-1] = temp; } }
  20.  Tìm Min int min = A[0]; for (int i = 1 ; i < n ; i++) if (A[i] < min) min = A[i]; cout
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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