Giải SBT Tin học 11 Cánh diều Bài 2, 3. Mảng hai chiều Thực hành về tệp, mảng và danh sách có đáp án
27 người thi tuần này 4.6 444 lượt thi 7 câu hỏi
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
🔥 Học sinh cũng đã học
Đề thi cuối kì 2 Tin học 11 năm 2024-2025 Sở Nam Định có đáp án
Đề thi cuối kì 2 Tin học 11 năm 2025-2026 THPT Xuyên Mộc (TP.HCM) có đáp án
Đề thi cuối kì 2 Tin học 11 năm 2024-2025 THPT Gio Linh (Quảng Trị) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2025-2026 THPT Xuyên Mộc (TP.HCM) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2024-2025 THPT Hồ Nghinh (Quảng Nam) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2025-2026 THPT Hùng Vương (Đà Nẵng) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2024-2025 THPT (Bắc Giang) có đáp án
Đề thi cuối kì 1 Tin học 11 năm 2024-2025 THPT Gio Linh (Quảng Trị) có đáp án
Danh sách câu hỏi:
Lời giải
Em có thể xem bản chất của mảng hai chiều chính là một mảng gồm các mảng một chiều. Kết quả của chương trình đã cho là:
4
3
6
Lời giải
- Quan sát công thức, ta thấy C(i, j) phụ thuộc vào hai ô ở dòng i – 1. Vậy em có thể tính từng dòng một của tam giác và thêm dần vào mảng hai chiều C. - Quan sát đoạn chương trình ở Cách 1, ta thấy C được khai báo là kiểu danh sách (dấu []), nên các phần tử không cần phải giống nhau về kiểu dữ liệu. Em có thể thấy các phần tử của C (các dòng của bảng) có kích thước khác nhau (dòng thứ i có chứa đúng i số).
Một hướng làm khác giúp tiết kiệm bộ nhớ hơn, đó là sử dụng hai mảng (n + 1)(n+2) một chiều thay vì dùng cả bảng có kích thước vào khoảng 2 Làm được như vậy vì trong công thức ta chỉ cần quan tâm tới dòng i − 1 và dòng i.
Chương trình mẫu:
Cách 1:

Cách 2:

Lời giải
Dễ thấy thời khoá biểu là một thông tin dạng bảng nên em có thể áp dụng mảng hai chiều.
- Cần phải điền nội dung vào trước, sau đó mới có cơ sở để tính độ rộng của cột và thực hiện in ra. Các thao tác này đều thực hiện được bằng hai vòng lặp for. Chương trình mẫu:
q = int(input())
TKB = [[""] * 8 for i in range (11)]
# Dòng 0 dành cho tiêu đề cột
TKB[0] = ["Tiet", "Hai", "Ba", "Tu", "Nam", "Sau", "Bay", "CN"]
# Cột 0 chứa tiêu đề dòng
for i in range (1,11):
TKB [i][0] = str(i)
for i in range (q):
a, b, c = input ().split()
a = int (a)
b = int (b)
TKB [a] [b-1] = C
# Vì đã có dòng 0 nên lấy [a] thay vì [a-1]
# Tương tự, vì cột 0 đầu tiên cũng đã có nội dung
# Nên lấy [b-1] thay vì [b-2]
doRong = [0] * 8
for i in range (11):
for j in range (8):
doRong [j] = max (doRong [j], len (TKB [i][j]) + 1)
for i in range (11):
for j in range (8):
print (TKB [i][j], end = "")
print (" "* (doRong [j] - len (TKB [i][j])), end = "")
print ()
Lời giải
A =[int (v) for v in input().split()] k int (input())
= for i in range (len (A)
print (min (A[i:i+k]))
k + 1):
Lời giải
Hướng dẫn (duyệt qua từng dòng, dùng hàm sum để tính tổng):
fin = open("input.txt"", "r")
lines fin.readlines ()
result = 0
for line in lines:
nums = [int (v) for v in line.split()]
result += sum (nums)
print("Tổng các số trong tệp là:", result)
Lời giải
Dùng danh sách hai chiều, mỗi dòng của danh sách là thông tin của một thí sinh.
import sys
sys.stdin = open ("thi TN.inp", "r") sys.stdout = open("thi TN. out", "w") n = int(input())
A = []
for i in range (n):
s = input().split()
A.append(s)
for i in range(n):
# Cú pháp a[-i] để truy cập phần tử thứ i
# từ phải sang của mảng a
x = format (float (A[i] [-3])+ float (A[i] [-2])+ float (A[i] [-1]), ".1f")
A[i].append(x)
# Sắp xếp danh sách A theo thứ tự tăng dần của cột tổng A. sort (key-lambda x: x[-1])
for x in A:
for temp in x: print (temp, end=" ")
print ()
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Xem tiếp với tài khoản VIP
Còn 1/7 câu hỏi, đáp án và lời giải chi tiết.
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.







