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 2 - Trần Minh Thái

Chia sẻ: Bautroibinhyen27 Bautroibinhyen27 | Ngày: | Loại File: PPTX | Số trang:33

51
lượt xem
5
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 2: Mảng hai chiều" cung cấp cho người học các kiến thức: Khái niệm, khai báo, các thao tác cơ bản trên ma trận, thao tác trên ma trận vuông. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

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

  1. Lập trình C Chương 2. Mảng hai chiều (3 tiết) Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 21/02/2017 1
  2. Nội dung • Khái niệm • Khai báo • Các thao tác cơ bản trên ma trận • Thao tác trên ma trận vuông • Bài tập 2
  3. KHÁI NIỆM VÀ KHAI BÁO 3
  4. Khái niệm Cột Cột Cột Cột Cột Cột 0 1 2 3 4 5 Dòng 0 Dòng 1 Dòng 2 Dòng 3 Ma trận có 4 dòng 6 cột (kích thước 4 x 6) 4
  5. Khái niệm • Kiểu dữ liệu mảng 2 chiều được tổ chức theo dạng bảng. • Mỗi dòng là mảng 1 chiều • Kích thước được xác định bởi số dòng và số cột • Chỉ số dòng và cột được tính từ 0 5
  6. Khai báo ma trận • Cú pháp tên ma trận [số dòng][số cột]; • VD1: khai báo ma trận số nguyên a có 10 dòng và 15 cột int a[10][15]; • VD2: khai báo ma trận số thực b có 25 dòng và 10 cột float b[25][10]; 6
  7. Định nghĩa kiễu dữ liệu Để đơn giản trong việc khai báo ma trận: #define MAX 100 typedef  matran[MAX][MAX];  VD: Khai báo ma trận các số nguyên a #define MAX 100 typedef int matran[MAX][MAX]; matran a; 7
  8. Khai báo và khởi gán tên ma trận[số dòng][số cột]={{gt11, gt12, …}, {gt21, gt22, …}, … {gtk1, gtk2, …}}; VD: int a[3][4] = {{2,3,9,4}, {5,6,7,6}, {2,9,4,7} }; 8
  9. Truy xuất phần tử Đê ̉ truy  xuất  các  thành  phần  cua  ̉ ma  trận  ta  dựa  vào  ̉ ́ dòng và chi sô chi sô ̉ ́ côṭ Cú pháp: tên ma trận[chỉ số dòng][chỉ số cột] VD:  • x = a[1][2]; // x = 7 // Cập nhật giá trị tại chỉ số dòng 2, cột 3 thành 10  9
  10. CÁC THAO TÁC XỬ LÝ CƠ BẢN 10
  11. Các thao tác • Nhập/ xuất • Tìm kiếm • Đếm • Tính tổng/ trung bình • Sắp xếp dòng/ cột • Xóa dòng/ cột • Chèn thêm dòng/ cột 11
  12. Cấu trúc lệnh xử lý phổ biến • Sử dụng 2 vòng lặp lồng nhau để duyệt ma trận • Mỗi lần lặp sẽ duyệt từng dòng của ma trận • Gọi sd là số dòng, sc là số cột và a là ma trận. Cấu trúc duyệt tổng quát: for(int d=0; d
  13. Nhập/xuất ma trận số nguyên Khai báo #include #include #define MAX 100 typedef int matran[MAX][MAX]; void NhapKichThuoc(int &sd, int &sc); void Nhap(matran a, int sd, int sc); void Xuat(matran a, int sd, int sc); 13
  14. Nhập/xuất ma trận số nguyên void NhapKichThuoc(int &sd, int &sc) { printf("Nhap so dong: "); scanf("%d", &sd); printf("Nhap so cot: "); scanf("%d", &sc); } 14
  15. Nhập/xuất ma trận số nguyên void Nhap(matran a, int sd, int sc) { for (int d = 0; d < sd; d++) { for (int c = 0; c < sc; c++) { printf("Nhap gia tri [%d][%d]: ", d, c); scanf("%d", &a[d][c]); } } } 15
  16. Nhập/xuất ma trận số nguyên void Xuat(matran a, int sd, int sc) { for (int d = 0; d < sd; d++) { for (int c = 0; c < sc; c++) { printf("%d\t", a[d][c]); } printf("\n"); } } 16
  17. Nhập/xuất ma trận số nguyên int main() { matran a; int sd, sc; NhapKichThuoc(sd, sc); printf("Nhap gia tri cho ma tran:\n"); Nhap(a, sd, sc); printf("Cac phan tu trong ma tran\n"); Xuat(a, sd, sc); getch(); return 0; } 17
  18. Minh họa thực thi của chương trình Nhap so dong cua ma tran: 3 Nhap so cot cua ma tran: 4 Nhap gia tri cho ma tran: Nhap gia tri [0][0]: 1 Nhap gia tri [0][1]: 2 Nhap gia tri [0][2]: 3 Nhap gia tri [0][3]: 4 Nhap gia tri [1][0]: 5 Nhap gia tri [1][1]: 6 Nhap gia tri [1][2]: 7 Nhap gia tri [1][3]: 8 Nhap gia tri [2][0]: 9 Nhap gia tri [2][1]: 10 Nhap gia tri [2][2]: 11 Nhap gia tri [2][3]: 12 Cac phan tu trong ma tran 1 2 3 4 5 6 7 8 9 10 11 12 18
  19. Bài tập nhập/xuất Cho ma trận số nguyên a gồm sd dòng và sc cột. Viết các  hàm sau: 1. Phát sinh giá trị ngẫu nhiên cho ma trận 2. Xuất các phần tử lẻ 3. Xuất các phần tử là số nguyên tố 4. Xuất các phần tử có giá trị lớn hơn x 19
  20. Phát sinh giá trị ngẫu nhiên void PhatSinh(matran a, int sd, int sc) { for (int d = 0; d
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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