Thực hành danh sách - Phần 1¶
Tóm lược nội dung
Bài này hướng dẫn bài toán liên quan đến duyệt danh sách:
- Tính tổng
- Tính trung bình cộng
- Tìm giá trị lớn nhất
Bài 1¶
Đề bài¶
Yêu cầu:
Viết chương trình tính tổng các phần tử trong danh sách.
Đầu vào:
Danh sách các số nguyên L.
Đầu ra:
Tổng các phần tử.
Ví dụ:
| Đầu vào | Đầu ra |
|---|---|
| [6, -2, -5, -4, 6, 6, 0, -3, 10, 5] | 19 |
Cách giải đề xuất¶
Ý tưởng chính
Duyệt danh sách từ đầu đến cuối, cộng dồn từng phần tử vô biến tổng kết quả.
Viết chương trình
1. Viết hàm sum_list() (1) dùng để tính tổng các phần tử trong danh sách.
- Ta không đặt tên là
sum()vì trùng tên với hàmsum()có sẵn của Python.
Hàm gồm có:
- Một tham số đầu vào là danh sách
L. - Giá trị trả về là tổng
s.
Hàm hoạt động như sau:
- Khởi tạo tổng
s = 0. -
Dùng vòng lặp
forvà toán tửin:Ứng với mỗi phần tử
e, cộng dồnevôs.
2. Viết chương trình chính:
-
Khởi tạo biến danh sách
numbers(1).- Ta tạm thời khai báo "cứng" danh sách, không cho người dùng nhập thủ công từng phần tử. Mục đích là tiết kiệm thời gian và tập trung vào ý tưởng duyệt danh sách, tránh sa vào vấn đề khác.
-
Gọi hàm
sum_list()để lấy tổng, gán kết quả cho biếnsum_numbers. - In ra
sum_numbers.
Bài 2¶
Đề bài¶
Yêu cầu:
Viết chương trình tính trung bình cộng của các phần tử trong danh sách.
Đầu vào:
Danh sách các số nguyên L.
Đầu ra:
Trung bình cộng của các phần tử.
Ví dụ:
| Đầu vào | Đầu ra |
|---|---|
| [6, -2, -5, -4, 6, 6, 0, -3, 10, 5] | 1.9 |
Cách giải đề xuất¶
Ý tưởng chính
Ta có thể viết hàm tính trung bình cộng vô chung chương trình của bài 1.
Trong hàm này, ta gọi hàm sum_list() để tính tổng, trước khi thực hiện chia để tính trung bình.
Viết chương trình
1. Viết hàm sum_list() như bài 1.
2. Viết hàm average() dùng để tính trung bình cộng.
Hàm gồm có:
- Một tham số đầu vào là danh sách
L. - Giá trị trả về là trung bình cộng.
Hàm hoạt động như sau:
- Gọi hàm
len()để lấy số phần tử củaL. - Gọi hàm
sum_list()để tính tổng các phần tử củaL. - Thực hiện phép chia để lấy trung bình cộng.
3. Viết chương trình chính:
- Gọi hàm
average()để lấy trung bình cộng, gán kết quả cho biếnavg. - In ra
avg.
Bài 3¶
Đề bài¶
Yêu cầu:
Viết chương trình tính tìm giá trị lớn nhất trong danh sách.
Đầu vào:
Danh sách các số nguyên L.
Đầu ra:
Giá trị lớn nhất.
Ví dụ:
| Đầu vào | Đầu ra |
|---|---|
| [6, -2, -5, -4, 6, 6, 0, -3, 10, 5] | 10 |
Cách giải đề xuất¶
Ý tưởng chính
Trong cùng chương trình với hai bài trên, ta viết thêm hàm tìm giá trị lớn nhất.
Để tìm giá trị lớn nhất trong danh sách:
- Ta tạm coi phần tử đầu là lớn nhất.
-
Duyệt danh sách từ phần tử thứ hai trở đi:
Nếu phần tử nào lớn hơn phần tử lớn nhất (tạm thời) thì nó là lớn nhất, ta cập nhật giá trị lớn nhất mới.
Viết chương trình
1. Viết hàm maximum() (1) dùng để tìm giá trị lớn nhất trong danh sách.
- Ta không đặt tên là
max()vì trùng tên với hàmmax()có sẵn của Python.
Hàm gồm có:
- Một tham số đầu vào là danh sách
L. - Giá trị trả về là vị trí
mcủa phần tử lớn nhất (tứcL[m]là lớn nhất).
Hàm hoạt động như sau:
- Biến
mdùng để lưu vị trí của phần tử lớn nhất. - Tạm coi phần tử đầu tiên là lớn nhất: khởi tạo
m = 0. -
Duyệt mảng bằng biến
itừ chỉ số1đến hết:Nếu
L[i] > L[m]thì cập nhậtmmới. -
Trả về
m.
2. Viết chương trình chính:
- Gọi hàm
maximum()để lấy chỉ số của phần tử lớn nhất, gán kết quả cho biếnmax_index. - Dùng biến
max_valueđể lưu giá trị lớn nhất. - In ra cả
max_indexlẫnmax_value.
Mã nguồn¶
Code đầy đủ được đặt tại: