logo

Soạn Tin học 11 Kết nối tri thức Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều (trang 86, 88)

Hướng dẫn Soạn Tin học 11 Kết nối tri thức Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều (trang 86, 88) ngắn gọn, hay nhất theo chương trình Sách mới.

Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều


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.

Trả lời:

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

a. Hãy thông báo về điểm đầu tiên và điểm cuối cùng trong danh sách.

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


2. 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.

Trả lời:

#include <iostream> using namespace std;

int main()

{ cout << "Hello HowKteam.com" << endl;

// sử dụng 2 lần toán tử << int n1{ 60 };

// n1 = 60 int n2{ 9 };

// n2 = 9 // in chuỗi "Sum: 60 + 9 = 69" và xuống dòng cout << "Sum: " << n1 << " + " << n2 << n1 + n2 << "\n";

return 0;


3. 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ể.

Trả lời:

* Gợi ý:

Để giải quyết vấn đề này, chúng ta sẽ sử dụng một số vòng lặp và điều kiện để thực hiện các yêu cầu tương ứng. Dưới đây là một ví dụ code Python để giải quyết vấn đề này:

# Nhập số hàng và số cột của ma trận 

m = int(input("Nhập số hà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 

A = [] 

for i in range(m): 

row = list(map(int, input("Nhập hàng thứ " + str(i + 1) + " của ma trận: ").split())) 

A.append(row)

 # In ma trận A 

print("Ma trận A:") 

for row in A: 

print(row) 

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

total_sum = 0 

for i in range(m): 

for j in range(n): 

total_sum += A[i][j]

# In tổng các phần tử trong ma trận 

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

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

max_sum = float('-inf') 

max_rows = [] 

for i in range(m): 

row_sum = sum(A[i]) 

if row_sum > max_sum: 

max_sum = row_sum 

max_rows = [i] 

elif row_sum == max_sum: 

max_rows.append(i) 

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

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

# In giá trị các phần tử phân biệt trong ma trận 

distinct_values = set() 

for i in range(m): for j in range(n): 

distinct_values.add(A[i][j]) 

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

# Tìm số lần xuất hiện của một số bất kỳ trong ma trận 

num = int(input("Nhập số cần tìm: ")) 

count = 0 

positions = [] 

for i in range(m): 

for j in range(n): 

if A[i][j] == num: 

count += 1 

positions.append((i, j)) 

if count == 0: 

print("Số", num, "không xuất hiện trong ma trận A.") 

else: 

print("Số", num, "xuất hiện", count, "lần trong ma trận A tại các vị trí:", positions)

Trong đoạn mã này, chúng ta sử dụng hàm input() để nhập số hàng và số cột của ma trận A. Sau đó, chúng ta sử dụng vòng lặp và điều kiện để nhập từng phần tử của ma trận A từ bàn phím và lưu trữ chúng vào một danh sách hai chiều.

Sau đó, chúng ta sử dụng vòng lặp để tính tổng các phần tử trong ma trận A và in kết quả ra màn hình. Để tìm dòng có tổng các phần tử lớn nhất, chúng ta sử dụng một biến max_sum để lưu trữ giá trị lớn nhất và một danh sách max_rows để lưu trữ các chỉ số của các dòng có tổng các phần tử bằng max_sum. Để in giá trị các phần tử phân biệt trong ma trận A, chúng ta sử dụng hàm set() để loại bỏ các giá trị trùng lặp.

Cuối cùng, chúng ta cho phép người dùng nhập một số bất kỳ và sử dụng vòng lặp để tìm số lần xuất hiện của số đó trong ma trận A và lưu trữ vị trí của các phần tử đó vào một danh sách. Kết quả được in ra màn hình.

Ví dụ, nếu chúng ta nhập số hàng và số cột của ma trận là 3 và 4, và nhập các phần tử của ma trận như sau:

Nhập số hàng của ma trận: 3 

Nhập số cột của ma trận: 4 

Nhập hàng thứ 1 của ma trận: 1 2 3 4 

Nhập hàng thứ 2 của ma trận: 5 6 7 8 

Nhập hàng thứ 3 của ma trận: 9 10 11 12

Kết quả sẽ được in ra màn hình như sau:

Ma trận A:

[1, 2, 3, 4]

[5, 6, 7, 8]

[9, 10, 11, 12]

Tổng các phần tử trong ma trận A là: 78

Các dòng có tổng các phần tử lớn nhất là: [2]

Các giá trị phân biệt trong ma trận A là: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Nhập số cần tìm: 7

Số 7 xuất hiện 1 lần trong ma trận A tại các vị trí: [(1, 2)]

>>> Xem toàn bộ: Soạn Tin 11 Kết nối tri thức

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

Trên đây Toploigiai đã cùng các bạn Soạn Tin học 11 Kết nối tri thức Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều trong bộ SGK Kết nối tri thức theo chương trình sách mới. Chúng tôi hi vọng các bạn đã có kiến thức hữu ích khi đọc bài viết này. Click vào trang chủ Toploigiai để tham khảo và chuẩn bị bài cho năm học mới nhé. Chúc các bạn học tốt!

icon-date
Xuất bản : 24/02/2023 - Cập nhật : 19/07/2023

Tham khảo các bài học khác