Giải bài 18: Thực hành mảng một chiều và hai chiều | Tin học 11 Kết nối tri thức

 Xin gửi tới bạn đọc bài viết Tin học 11 Kết nối tri thức bài 18: Thực hành mảng một chiều và hai chiều để bạn đọc cùng tham khảo và có thêm tài liệu giải sgk Tin 11 Kết nối tri thức. Mời các bạn cùng theo dõi bài viết.

Nhiệm vụ 1:
Viết chương trình quản điểm kiểm tra một môn học của một học sinh
trong một học kì
Chương trình được thực hiện như sau:
- Nhập điểm: yêu cầu người dùng nhập các đâu điểm kiếm tra (từ hai
đầu điểm trở lên).
- Thống điểm: chương trinh duyệt qua các đầu điểm rồi tính in ra
điểm trung binh kiểm tra, điểm thấp nhất, cao nhất.
Bài làm
Phân tích: Nhiệm vụ này có thể được thực hiện bằng cách sứ dụng mảng
một chiều, cụ thể sử dụng danh sách trong python. Việc nhập điểm
được thực hiện ngay trên màn hình. Sau khi đã danh sách các đầu
điểm, dùng cấu trúc for đề duyệt qua các phản từ của mảng để tính tổng
điểm, thống kê điểm cao nhất, thấp nhất.
Nhiệm vụ 2
Viết chương trình quản điểm kiểm tra một môn học trong mới học
của tất cả học sinh trong lớp.
Chương trình được thực hiện như sau:
Nhiệm vụ này thể được thực hiện bảng cách sử dụng một mảng hai
chiều để lưu tắt cả điểm của học sinh trong lớp, mỗi hàng điểm của
một học sinh, điểm cụ thể lấy các phần tử của hàng. Để thống cần
dừng vòng lập để duyệt qua từng hàng, tính trung bình từng háng xét
từng điểm để tìm ra đậu điểm thấp nhất. Trong khi tính, tìm điểm trung
bình kiểm tra của từng học sinh, cần lưu lại số thứ tự của học sinh
đêm trung binh cao nhất để tham chiều in ra tên của học sinh đó.
Luyện tập
Câu hỏi 1.Chỉnh sửa lại chương trình của Nhiệm vụ 1 để bổ sung chức
năng:
a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.
b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ
1ng với điểm đâu tiên, Nêu n lớn hơn tổng số đâu điềm hoặc nhỏ hơn
1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.
Bài làm
Chỉnh sửa lại chương trình của Nhiệm vụ 1
a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.
b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ
1ng với điểm đâu tiên, Nêu n lớn hơn tổng số đâu điềm hoặc nhỏ hơn
1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.
Vận dụng
Câu hỏi 1.Viết chương trình nhập vào t bàn phím danh sách lên
(không gồm họ đệm) học sinh cách nhau bởi dấu cách lưu vào
trong một mảng. Giả thiết rằng tên, không gồm khoảng trắng. Sau đó hệ
thống kê xembao nhiêu tên khác nhau và mỗi tên xuất liện bao nhiêu
lần trong danh sách.
Bài làm
ds=list(map(str,input().split()))
c={}
for i in ds:
if i in c:
c[i] =c[i]+1
else:
c[i] = 1
print('số tên khác nhau là',len(c))
print('mỗi tên có số lần xuất hiện là:')
for i in c:
print(i, c[i])
Câu hỏi 2.Viết chương trình nhập từ bàn phím số tự nhiên m n. Sau
đó lần lượt nhập m dòng, mỗi dòng bao gồm n số cách nhau bởi dấu
cách, Đưa dữ liệu đã nhập vào ma trận A, in ma trận A ra màn hình, Sau
đó:
a) Tính tổng các phần tử ma trận A.
b) In ra dòng có tổng các phần tử lớn nhất (nếu có nhiều dòng bằng nhau
thì in tất cả các dòng)
c) In ta gía trị các phần tử phân biệt trong ma trận tức nếu các giá
trị xuất hiện nhiều lần trong mã trận A thì chỉ in rõ một lần
d) Cho phép người dùng tìm số lần xuất hiện của một số bất trong ma
trận A, ví dụ người dùng nhập vào số 3 chương trình thông báo số 3 xuất
hiện x lần trong ma trận tại các vị trí cột (i,j) cụ thể.
Bài làm
a)
m = int(input("Nhập số dòng của ma trận: "))
n = int(input("Nhập số cột của ma trận: "))
# Khởi tạo ma trận A với kích thước m x n
A = []
for i in range(m):
row = list(map(int, input(f"Nhập dòng thứ {i+1} (gồm {n} số cách nhau
bởi dấu cách): ").split()))
A.append(row)
# In ma trận A ra màn hình
print("Ma trận A:")
for row in A:
print(*row)
# Tính tổng các phần tử trong ma trận A
total = 0
for row in A:
total += sum(row)
print("Tổng các phần tử trong ma trận A là:", total)
b)
# Tìm dòng có tổng các phần tử lớn nhất
max_sum = max(sum(row) for row in A)
print("Dòng có tổng các phần tử lớn nhất là:")
for i, row in enumerate(A):
if sum(row) == max_sum:
print(f"Dòng thứ {i+1}: {row}")
c)
Tìm các giá trị phân biệt trong ma trận A
distinct_values = set()
for row in A:
distinct_values.update(set(row))
# In các giá trị phân biệt ra màn hình
print("Các giá trị phân biệt trong ma trận:")
print(*distinct_values)
d)
k=int(input("nhập số cần tìm"))
l=0
for i in range(m):
for j in range(n):
if k==a[i][j]:
l=l+1
print('xuất hiện ở các vị trí',i,j)
print('số',k,' xuất hiện',l,' lần')
----------------------------------
| 1/5

Preview text:

Nhiệm vụ 1:

Viết chương trình quản lí điểm kiểm tra một môn học của một học sinh trong một học kì

Chương trình được thực hiện như sau:

- Nhập điểm: yêu cầu người dùng nhập các đâu điểm kiếm tra (từ hai đầu điểm trở lên).

- Thống kê điểm: chương trinh duyệt qua các đầu điểm rồi tính và in ra điểm trung binh kiểm tra, điểm thấp nhất, cao nhất.

Bài làm

Phân tích: Nhiệm vụ này có thể được thực hiện bằng cách sứ dụng mảng một chiều, cụ thể là sử dụng danh sách trong python. Việc nhập điểm được thực hiện ngay trên màn hình. Sau khi đã có danh sách các đầu điểm, dùng cấu trúc for đề duyệt qua các phản từ của mảng để tính tổng điểm, thống kê điểm cao nhất, thấp nhất.

Nhiệm vụ 2

Viết chương trình quản lí điểm kiểm tra một môn học trong mới học kì của tất cả học sinh trong lớp.

Chương trình được thực hiện như sau:

Nhiệm vụ này có thể được thực hiện bảng cách sử dụng một mảng hai chiều để lưu tắt cả điểm của học sinh trong lớp, mỗi hàng là điểm của một học sinh, điểm cụ thể lấy các phần tử của hàng. Để thống kê cần dừng vòng lập để duyệt qua từng hàng, tính trung bình từng háng và xét từng điểm để tìm ra đậu điểm thấp nhất. Trong khi tính, tìm điểm trung bình kiểm tra của từng học sinh, cần lưu lại số thứ tự của học sinh cò đêm trung binh cao nhất để tham chiều in ra tên của học sinh đó.

Luyện tập

Câu hỏi 1. Chỉnh sửa lại chương trình của Nhiệm vụ 1 để bổ sung chức năng:

a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.

b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ 1 ứng với điểm đâu tiên, Nêu n lớn hơn tổng số đâu điềm hoặc nhỏ hơn 1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.

Bài làm

Chỉnh sửa lại chương trình của Nhiệm vụ 1

a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.

b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ 1 ứng với điểm đâu tiên, Nêu n lớn hơn tổng số đâu điềm hoặc nhỏ hơn 1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.

Vận dụng

Câu hỏi 1. Viết chương trình nhập vào từ bàn phím danh sách lên (không gồm họ và đệm) học sinh cách nhau bởi dấu cách và lưu vào trong một mảng. Giả thiết rằng tên, không gồm khoảng trắng. Sau đó hệ thống kê xem có bao nhiêu tên khác nhau và mỗi tên xuất liện bao nhiêu lần trong danh sách.

Bài làm

ds=list(map(str,input().split()))

c={}

for i in ds:


if i in c:

c[i] =c[i]+1

else:

c[i] = 1

print('số tên khác nhau là',len(c))

print('mỗi tên có số lần xuất hiện là:')

for i in c:

print(i, c[i])

Câu hỏi 2. Viết chương trình nhập từ bàn phím số tự nhiên m và n. Sau đó lần lượt nhập m dòng, mỗi dòng bao gồm n số cách nhau bởi dấu cách, Đưa dữ liệu đã nhập vào ma trận A, in ma trận A ra màn hình, Sau đó:

a) Tính tổng các phần tử ma trận A.

b) In ra dòng có tổng các phần tử lớn nhất (nếu có nhiều dòng bằng nhau thì in tất cả các dòng)

c) In ta gía trị các phần tử phân biệt trong ma trận tức là nếu có các giá trị xuất hiện nhiều lần trong mã trận A thì chỉ in rõ một lần

d) Cho phép người dùng tìm số lần xuất hiện của một số bất kì trong ma trận A, ví dụ người dùng nhập vào số 3 chương trình thông báo số 3 xuất hiện x lần trong ma trận tại các vị trí cột (i,j) cụ thể.

Bài làm

a)

m = int(input("Nhập số dòng của ma trận: "))

n = int(input("Nhập số cột của ma trận: "))

# Khởi tạo ma trận A với kích thước m x n

A = []

for i in range(m):

row = list(map(int, input(f"Nhập dòng thứ {i+1} (gồm {n} số cách nhau bởi dấu cách): ").split()))

A.append(row)

# In ma trận A ra màn hình

print("Ma trận A:")

for row in A:

print(*row)

# Tính tổng các phần tử trong ma trận A

total = 0

for row in A:

total += sum(row)

print("Tổng các phần tử trong ma trận A là:", total)

b)

# Tìm dòng có tổng các phần tử lớn nhất

max_sum = max(sum(row) for row in A)

print("Dòng có tổng các phần tử lớn nhất là:")

for i, row in enumerate(A):

if sum(row) == max_sum:

print(f"Dòng thứ {i+1}: {row}")

c)

Tìm các giá trị phân biệt trong ma trận A

distinct_values = set()

for row in A:

distinct_values.update(set(row))

# In các giá trị phân biệt ra màn hình

print("Các giá trị phân biệt trong ma trận:")

print(*distinct_values)

d)

k=int(input("nhập số cần tìm"))

l=0

for i in range(m):

for j in range(n):

if k==a[i][j]:

l=l+1

print('xuất hiện ở các vị trí',i,j)

print('số',k,' xuất hiện',l,' lần')

----------------------------------