Slide bài giảng Khoa học máy tính 11 cánh diều Chủ đề F(CS) Bài 2: Mảng hai chiều
Slide điện tử Chủ đề F(CS) Bài 2: Mảng hai chiều. Trình bày với các hiệu ứng hiện đại, hấp dẫn. Giúp học sinh hứng thú học bài. Học nhanh, nhớ lâu. Có tài liệu này, hiệu quả học tập của học môn Khoa học máy tính 11 Cánh diều sẽ khác biệt
Bạn chưa đủ điều kiện để xem được slide bài này. => Xem slide bài mẫu
Tóm lược nội dung
BÀI 2. MẢNG HAI CHIỀU
HOẠT ĐỘNG KHỞI ĐỘNG
GV đặt câu hỏi: Em có biết khái niệm nào được gọi là việc xếp nối tiếp nhau n mảng số thực có cùng độ dài m phần tử trong bộ nhớ không?
NỘI DUNG BÀI HỌC GỒM
- Mảng hai chiều
- Sử dụng danh sách làm mảng hai chiều trong Python
- Luyện tập
- Vận dụng
HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC
Hoạt động 1: Mảng hai chiều
GV yêu cầu học sinh trao đổi: Mảng hai chiều được sử dụng để làm gì? Từ đó, có thể rút ra khái niệm về mảng hai chiều như thế nào?
Nội dung gợi ý:
- Mảng hai chiều dùng để lưu trữ một bảng số liệu hình chữ nhật.
- Mảng hai chiều (ma trận) là bảng hình chữ nhật các phần tử có cùng kiểu dữ liệu, gồm n hàng và m cột.
Hãy trình bày về việc khai báo, cấu trúc của mảng hai chiều và khả năng truy cập ngẫu nhiên của nó.
Nội dung gợi ý:
Khai báo mảng hai chiều
- Cung cấp đầy đủ các thông tin: tên biến mảng, kiểu dữ liệu, kích thước.
- Kích thước gồm hai số nguyên dương, mỗi số xác định kích thước một chiều hình chữ nhật.
Ví dụ: khai báo mảng trong C về bảng điểm tổng kết của lớp có 45 HS với 8 môn học
float bangDiem [45][8]; /* bangDiem là mảng hai chiều 45 × 8 số thực*/
Cấu trúc mảng hai chiều
- Trong bộ nhớ, mảng hai chiều được lưu trữ thành một khối các ô nhớ liên tục, có độ lớn bằng:
số hàng × số cột × độ dài kiểu dữ liệu.
Truy cập ngẫu nhiên
- Có thể truy cập các phần tử bằng hai chỉ số: chỉ số hàng và chỉ số cột.
- Thời gian thực hiện là hằng số, không phụ thuộc vào kích thước mảng.
Hoạt động 2: Sử dụng danh sách làm mảng hai chiều trong Python
HS thảo luận trả lời câu hỏi: Có những lưu ý gì khi sử dụng danh sách để làm mảng hai chiều trong Python?
Nội dung gợi ý:
(1) Khai báo danh sách dùng làm mảng (một chiều hoặc hai chiều) với các phần tử hay các danh sách con sẽ được thêm dần vào sau đó:
Tên_danhsach = []
(2) Khai báo danh sách với cặp dấu “[ ]” chứa danh sách con cùng độ dài cho kết quả là một danh sách dùng như mảng hai chiều.
Tên_danhsach = [[...],[...],...[...]]
- Trong bộ nhớ máy tính, mảng hai chiều n hàng và m cột được lưu trữ thành dãy n × m số bằng cách xếp các hàng nối tiếp nhau, bắt đầu là hàng 0, tiếp theo là hàng 1, hàng 2… cho đến hết.
HOẠT ĐỘNG LUYỆN TẬP
Câu 1: Hãy chọn phương án ghép đúng nhất. Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho
A. xóa một phần tử
B. chèn thêm phần tử và xóa phần tử;
C. chèn thêm phần tử;
D. truy cập đến phần tử bất kì;
Câu 2: Phát biểu nào dưới đây là sai ?
A. Hai chỉ số trong khai báo xây dựng kiểu mảng hai chiều phải thuộc hai kiểu dữ liệu khác nhau
B. Mỗi hàng của mảng hai chiều có cấu trúc như mảng một chiều có cùng kích thước. Nếu coi mỗi hàng của mảng hai chiều là một phần tử thì có thể nói mảng hai chiều là mảng một chiều mà mỗi phần tử lại là một mảng một chiều.
C. Bất cứ kiểu dữ liệu nào có thể làm chỉ số cho mảng một chiều thì cũng có thể lấy làm chỉ số cho mảng hai chiều.
D. Mảng hai chiều là kiểu dữ liệu có cấu trúc do người lập trình xây dựng, nó như một bảng các phần tử cùng kiểu.
Câu 3: Phát biểu nào dưới đây về kiểu mảng là phù hợp ?
A. Độ dài tối đa của mảng là 255;
B. Là một tập hợp các số nguyên;
C. Là một dãy hữu hạn các phần tử cùng kiểu;
D. Mảng không thể chứa kí tự;
Câu 4: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?
S1 := ‘anh’ ;
S2 := ‘em’ ;
i := pos(S2, S) ;
While i <> 0 do
Begin
Delete(S, i, 2) ;
Insert(S1, S, i) ;
i := pos(S2, S) ;
End ;
A. Thay toàn bộ cụm từ ‘em’ trong xâu S bằng cụm từ ‘anh’ ;
B. Thay cụm từ ‘em’ đầu tiên trong xâu S bằng cụm từ ‘anh’ ;
C. Thay cụm từ ‘anh’ đầu tiên trong xâu S bằng cụm từ ‘em’ ;
D. Thay toàn bộ cụm từ ‘anh’ trong xâu S bằng cụm từ ‘em’ ;
Câu 5: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử) ?
S := 0 ;
For i := 1 to N do S := S + A[i] ;
A. Đếm số phần tử của mảng A;
B. In ra màn hình mảng A;
C. Không thực hiện việc nào trong 3 việc trên.
D. Tính tổng các phần tử của mảng A;
Đáp án gợi ý:
Câu 1 | Câu 2 | Câu 3 | Câu 4 | Câu 5 |
D | A | C | A | D |
HOẠT ĐỘNG VẬN DỤNG
GV yêu cầu HS hoàn thành Vận dụng SGK trang 96: Hoạt động khám phá trong bài đã minh họa cấu trúc mảng hai chiều và chuẩn bị dữ liệu đầu vào là các dãy điểm số môn học. Hãy viết tiếp các câu lệnh để thực hiện phân tích kết quả học tập như sau:
a) Đối với chỉ số i ứng với một học sinh nào đó trong danh sách: in ra tên học sinh kèm với điểm cao nhất, điểm thấp nhất và điểm trung bình của các môn học.
b) Đối với chỉ số k ứng với một môn học nào đó trong danh sách: in ra điểm cao nhất, điểm thấp nhất và điểm trung bình của môn học đó.