Giải Tin học 11 Bài 2 (Cánh diều): Mảng hai chiều

Với giải bài tập Tin học 11 Bài 2: Mảng hai chiều sách Cánh diều hay nhất, chi tiết giúp học sinh dễ dàng làm bài tập Tin học 11 Bài 2.

1 1,075 07/08/2023


Giải Tin học 11 Bài 2: Mảng hai chiều

Giải Tin học 11 trang 94

Khởi động trang 94 Tin học 11: Em có biết nếu xếp nối tiếp nhau n mảng số thực cùng độ dài m phần tử trong bộ nhớ thì đó gọi là gì không?

Lời giải:

Em có biết nếu xếp nối tiếp nhau n mảng số thực cùng độ dài m phần tử trong bộ nhớ thì đó gọi là mảng 2 chiều.

2. Sử dụng danh sách làm mảng hai chiều phython

Giải Tin học 11 trang 95

Hoạt động trang 95 Tin học 11: Em hãy khai báo danh sách để làm mảng hai chiều khi lập trình giải bài toán thực tế với dự liệu đầu vào là bảng điểm tổng kết các môn học như mô tả ở trên. Để tiết kiệm thời gian, ta tạm thời minh hoạ với mảng 4x3 bằng bảng trích từ Hình 1a như sau:

Em hãy khai báo danh sách để làm mảng hai chiều khi lập trình giải bài toán thực tế

Lời giải:

Em hãy khai báo danh sách để làm mảng hai chiều khi lập trình giải bài toán thực tế

Diemtongket = [[7.5, 6.5, 5.0] , [5.0, 9.0, 4.5] , [8.5, 8.0, 8.0] , [4.5, 5.5, 7.0]]

Luyện tập

Giải Tin học 11 trang 96

Luyện tập 1 trang 96 Tin học 11: Vì sao có thể nói mảng hai chiều là các mảng một chiều?

Lời giải:

Mảng hai chiều (2D array) là một cấu trúc dữ liệu trong lập trình, nó cho phép lưu trữ các giá trị dưới dạng một bảng, với các hàng và cột được sắp xếp theo thứ tự. Có thể nói mảng hai chiều là mảng các mảng một chiều là do nó được xây dựng từ các mảng một chiều. Khi khai báo một mảng hai chiều, chúng ta định nghĩa một mảng 1 chiều để lưu trữ các phần tử của từng hàng trong bảng, và sau đó định nghĩa một mảng 1 chiều khác để lưu trữ các mảng 1 chiều đó, tức là các hàng của bảng.

Luyện tập 2 trang 96 Tin học 11: Hãy cho ví dụ một bài toán thực tế cần tính toán trên một bang số hình chữ nhật.

Lời giải:

Một ví dụ về bài toán thực tế cần tính toán trên một bảng số hình chữ nhật bằng Python là tính tổng các giá trị trong một bảng số.

Giả sử bạn có một bảng số hình chữ nhật được lưu trữ dưới dạng một danh sách các danh sách con chứa các giá trị của các ô trong bảng số như sau:

[[1, 2, 3],

[4, 5, 6],

[7, 8, 9]]

Để tính tổng các giá trị trong bảng số này, bạn có thể sử dụng hàm tích hợp có sẵn trong Python là sum() để tính tổng của các giá trị trong mỗi danh sách con và sau đó tính tổng của các tổng này. Kết quả là tổng của tất cả các giá trị trong bảng số là 45.

Vận dụng

Vận dụng trang 96 Tin học 11: Hoạt động khám phá trong bài đã minh hoạ cấu trúc máng hai chiều, đồng thời cũng chuẩn bị sẵn 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:

a) Cho chỉ số i ứng với một học sinh nào đó trong danh sách tìm ra tên học sinh kèm điểm cao nhất, điểm thấp nhất, điểm trung bình các môn.

b) Cho 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, điểm trung bình môn học.

Lời giải:

def nhapSinhVien(self):

# Khởi tạo một sinh viên mới

svId = self.generateID()

name = input("Nhap ten sinh vien: ")

sex = input("Nhap gioi tinh sinh vien: ")

age = int(input("Nhap tuoi sinh vien: "))

diemToan = float(input("Nhap diem toan: "))

diemLy = float(input("Nhap diem Ly: "))

diemHoa = float(input("Nhap diem Hoa: "))

sv = SinhVien(svId, name, sex, age, diemToan, diemLy, diemHoa)

self.tinhDTB(sv)

self.xepLoaiHocLuc(sv)

self.listSinhVien.append(sv)

Câu hỏi tự kiểm tra

Câu 1 trang 96 Tin học 11: Trong Python, danh sách dùng làm mảng một chiều và danh sách dùng làm mảng hai chiều có gì khác nhau?

Lời giải:

Trong Python, danh sách là một kiểu dữ liệu linh hoạt có thể chứa nhiều loại dữ liệu khác nhau, bao gồm cả các danh sách khác. Về cơ bản, danh sách được sử dụng để lưu trữ các giá trị, trong khi mảng là một cấu trúc dữ liệu tương tự như danh sách, nhưng chỉ chứa các phần tử cùng kiểu dữ liệu.

Một danh sách trong Python có thể được sử dụng như một mảng một chiều bằng cách sử dụng chỉ số của phần tử để truy cập vào các giá trị trong danh sách. Ví dụ, danh sách a = [1, 2, 3] có thể được truy cập bằng cách sử dụng a[0], a[1], a[2] để lấy giá trị 1, 2, 3 tương ứng.

Một danh sách trong Python cũng có thể được sử dụng để đại diện cho mảng hai chiều bằng cách chứa các danh sách khác. Tuy nhiên, danh sách không được tối ưu để sử dụng như một mảng hai chiều, do đó, nó không hiệu quả trong việc thao tác với các phần tử của mảng hai chiều.

Vì vậy, mặc dù danh sách và mảng đều có thể được sử dụng để lưu trữ dữ liệu, tuy nhiên, mảng hai chiều được thiết kế để cung cấp các tính năng hiệu quả và hữu ích hơn cho việc thao tác với các phần tử của mảng hai chiều.

Câu 2 trang 96 Tin học 11: Nói "Thời gian thực hiện (là) tuyển tính” nghĩa là gì?

Lời giải:

Câu nói "Thời gian thực hiện (là) tuyến tính" đề cập đến khái niệm độ phức tạp thời gian của một thuật toán. Theo đó, thời gian thực hiện của một thuật toán được đo bằng số lần lặp qua các câu lệnh hoặc số thao tác được thực hiện.

Trong trường hợp thời gian thực hiện của một thuật toán là tuyến tính, nghĩa là thời gian tăng theo cùng một tốc độ với kích thước của dữ liệu đầu vào. Ví dụ, nếu một thuật toán tốn thời gian để thực hiện n lần, thì thời gian thực hiện của thuật toán này sẽ tăng tuyến tính theo n.

Điều này có nghĩa là nếu kích thước của dữ liệu đầu vào tăng lên gấp đôi, thời gian thực hiện của thuật toán sẽ tăng lên gấp đôi cũng. Với các thuật toán tuyến tính, thời gian thực hiện không phụ thuộc vào cách sắp xếp hay tổ chức dữ liệu. Chính vì vậy, các thuật toán tuyến tính thường được coi là hiệu quả và ổn định trong việc xử lý dữ liệu lớn và phức tạp.

Xem thêm Lời giải bài tập Tin học 11 Cánh diều hay, chi tiết khác: 

Bài 1: Kiểu mảng và cấu trúc mảng

Bài 3: Thực hành về tệp, mảng và danh sách

Bài 4: Làm mịn dần từng bước từ thuật toán đến chương trình máy tính

Bài 5: Đánh giá thuật toán

Bài 6: Kiểm thử và sửa lỗi chương trình

1 1,075 07/08/2023


Xem thêm các chương trình khác: