Thực hành lập trình – Tài liệu môn lập trình | Trường đại học sư phạm kỹ thuật TP. Hồ Chí Minh

Sinh viên viết  hàm cho các bài tập thực hành trong danh sách bên dưới và nộp tại Mimir Classroom. 2. Với mỗi bài tập, sinh viên bắt buộc phải ghi đầy đủ thông tin cá nhân (bao gồm: mã số sinh viên, họ tên, ngày sinh, và email) tại phần đầu của source code. Nếu không có đủ thông tin cá nhân theo yêu cầu thì bài đó sẽ không được tính điểm. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

T H C H À N H L P T R Ì N H 1
P a g e | 1
BÀI 5: PYTHON COLLECTION DATA TYPES AND STRINGS
YÊU CẦU:
1. Sinh viên viết cho các bài tập thực hành trong danh sách bênhàm
dưới và nộp tại Mimir Classroom.
2. Với mỗi bài tập, sinh viên bắt buộc phải ghi đầy đủ thông tin nhân
(bao gồm: số sinh viên, họ tên, ngày sinh, email) tại phần đầu
của source code. Nếu không đủ thông tin nhân theo yêu cầu thì
bài đó sẽ không được tính điểm.
3. Cách tính điểm:
a. Mỗi bài tập tối đa 10 điểm.
b. Điểm bài thực hành = Điểm trung bình của tất cả các bài (làm
tròn tới 0.5)
4. .Sinh viên sẽ nhận điểm 0 nếu gian lận
BÀI TẬP THỰC HÀNH
Bài 1.Viết hàm thực hiện các thao tác sau:
1.1) Nhập n số nguyên và lưu vào một danh sách (list).
Tên hàm: input_int_array
Tham số: số nguyên n
Output: list chứa các số vừa nhập
1.2) Yêu cầu người dùng nhập vào các số nguyên dương, lưu các
số đó vào một danh sách. Nếu người dùng nhập số âm, hàm sẽ
dừng lại trả về danh sách gồm các số nguyên dương vừa
nhập.
Tên hàm: input_positive_int_array
Tham số: Không có
Output: list chứa các số nguyên dương vừa nhập
1.3) Tính tổng và trung bình cộng các phần tử trong một dãy số.
Tên hàm: sum_avg
Tham số: List A
Output: Tổng tbc tính được. Trường hợp list rỗng, coi như
tổng và tbc bằng 0.
1.4) Tìm giá trị nhỏ nhất và lớn nhất của một dãy số.
Tên hàm: find_min_max
Tham số: List A
Output: Giá trị nhỏ nhất và lớn nhất tìm được.
1.5) Tính giá trị trung bình độ lệch chuẩn của các phần tử
trong một dãy số.
Tên hàm: compute_mean_std
T H C H À N H L P T R Ì N H 1
P a g e | 2
Tham số: List A
Output: Giá trị trung bình và độ lệch chuẩn tính được. Trường
hợp list rỗng, coi như các giá trị đó bằng 0.
(tổng thể)
1.6) Tính tổng trung bình cộng các phần tử chính phương
trong một dãy số.
Tên hàm: sum_avg_square_numbers
Tham số: List A
Output: Tổng và tbc tính được. Trường hợp không có số chính
phương, coi như tổng và tbc bằng 0.
1.7) Tìm vị trí của phần tử chẵn đầu tiên trong một dãy số.
Tên hàm: find_first_even_number
Tham số: List A
Output: Vị trí tìm được. Trường hợp không tìm được, trả về -
1.
1.8) Tìm số chẵn lớn nhất trong một dãy số.
Tên hàm: find_max_even_number
Tham số: List A
Output: Giá trị tìm được. Trường hợp không tìm được, trả về -
1.
1.9) Tính tổng bình phương các số nguyên tố trong một dãy số.
Tên hàm: square_sum_prime_numbers
Tham số: List A
Output: Tổng tính được. Trường hợp không số nguyên tố,
coi như tổng bằng 0.
1.10) Tìm phần tử của một dãy số.median
Gợi ý: Median (trung vị) số giữa trong một danh sách các
số được sắp xếp tăng dần hoặc giảm dần.
Tên hàm: find_median
Tham số: List A
Output: Giá trị median tìm được.
1.11) Tìm phần tử xuất hiện nhiều lần nhất trong một dãy số.
Tên hàm: find_most
Tham số: List A
Output: Giá trị của phần tử tìm được.
1.12) Tìm vị trí của phần tử nguyên tố đầu tiên trong một dãy số.
Tên hàm: find_first_prime_number
Tham số: List A
T H C H À N H L P T R Ì N H 1
P a g e | 3
Output: Vị trí tìm được. Trường hợp không tìm được, trả về -
1.
1.13) Tìm số nguyên tố nhỏ nhất trong một dãy số.
Tên hàm: find_min_prime_number
Tham số: List A
Output: Giá trị tìm được. Trường hợp không tìm được, trả về -
1.
1.14) Kiểm tra dãy số có phải là dãy tăng hay không.
Tên hàm: is_increasing
Tham số: List A
Output: True nếu dãy tăng, False nếu dãy giảm.
1.15) Thêm giá trị x vào dãy số sao cho dãy vẫn là dãy tăng.
Tên hàm: insert_increasing
Tham số: List A, số nguyên x
Output: List mới sau khi thêm phần tử. Trường hợp dãy ban
đầu chưa sắp xếp tăng, hàm trả về False.
1.16) Tìm có tổng lớn nhất.cặp hai phần tử liên tiếp nhau
Tên hàm: find_max_pair
Tham số: List A
Output: Tuple gồm 2 phần tử thỏa mãn điều kiện.
Bài 2.Cho một dãy (list) gồm các phân số, mỗi phân số gồm một
cặp 2 giá trị có kiểu dữ liệu tuple.
Ví dụ: A = [(2, 3), (8, 9)] là dãy gồm hai phân số
2
3
8
9
2.1) Sắp xếp dãy phân số theo chiều tăng dần.
Tên hàm: sort_fractions
Tham số: List các phân số
Output: List sau khi sắp xếp
2.2) Rút gọn các phân số có trong dãy.
Tên hàm: simplify_fractions
Tham số: List các phân số
Output: List các phân số sau khi rút gọn.
2.3) Tính tổng các phân số có trong dãy.
Tên hàm: sum_fractions
Tham số: List các phân số
Output: Tổng tính được (yêu cầu có rút gọn tổng nếu cần).
2.4) Tìm giá trị của phân số nhỏ nhất và lớn nhất có trong dãy.
Tên hàm: find_min_max_fractions
Tham số: List các phân số
Output: Phân số tìm được. Mỗi phân số một cặp kiểu
dữ liệu tuple như yêu cầu ở đề bài.
T H C H À N H L P T R Ì N H 1
P a g e | 4
2.5) Tách dãy phân số thành 2 dãy con, một dãy chứa toàn phân
số âm, một dãy chứa toàn phân số dương.
Tên hàm: split_fractions
Tham số: List các phân số
Output: Hai danh sách chứa các dãy phân số theo yêu cầu.
Bài 3.Cho một danh sách gồm các cuốn sách. Thông tin mỗi cuốn
sách chứa trong một dictionary với các từ khóa (key) như
sau: isbn, title, authors, publisher, pages, year.
Trong đó:
o isbn: kiểu string, mã duy nhất của mỗi cuốn sách
o title: kiểu string, tên của cuốn sách
o authors: set of strings, tên của các tác giả
o publisher: string, tên nhà xuất bản
o pages: int, số trang
o year: int, năm xuất bản
b1 = {‘isbn’: ‘999-12-392’, ‘title’: ‘Introduction to Python’, authors:
{‘Hana Kim’, ‘David Lim’}, ‘publisher’: ‘NoStarch’, ‘pages’: 140,
‘year’: 2019}
b2 = {‘isbn’: ‘999-12-456’, ‘title’: ‘Advanced Python’, authors:
{‘Hana Kim’}, ‘publisher’: ‘NoStarch’, ‘pages’: 350, ‘year’: 2021}
A = [b1, b2]
3.1) Sắp xếp danh sách theo chiều tăng dần của tên sách.
Tên hàm: sort_books_by_title
Tham số: List các cuốn sách
Output: List sau khi sắp xếp
3.2) Sắp xếp danh sách theo chiều giảm dần của năm xuất bản.
Tên hàm: sort_books_by_year
Tham số: List các cuốn sách
Output: List sau khi sắp xếp
3.3) Tìm cuốn sách có mã isbn là x.
Tên hàm: find_by_isbn
Tham số: List các cuốn sách, mã isbn
Output: Tên của cuốn sách tìm được.
3.4) Lọc các cuốn sách theo nhà xuất bản.
Tên hàm: filter_by_publisher
Tham số: List các cuốn sách, tên nhà xuất bản cần tìm.
Output: List gồm các cuốn sách tìm được.
T H C H À N H L P T R Ì N H 1
P a g e | 5
3.5) Tìm các cuốn sách của tác giả A.
Tên hàm: filter_by_author
Tham số: List các cuốn sách, tên của tác giả cần tìm.
Output: List gồm các cuốn sách tìm được.
| 1/5

Preview text:

T H Ự C H À N H L Ậ P T R Ì N H 1 P a g e | 1
BÀI 5: PYTHON COLLECTION DATA TYPES AND STRINGS YÊU CẦU:
1. Sinh viên viết hàm cho các bài tập thực hành trong danh sách bên
dưới và nộp tại Mimir Classroom.
2. Với mỗi bài tập, sinh viên bắt buộc phải ghi đầy đủ thông tin cá nhân
(bao gồm: mã số sinh viên, họ tên, ngày sinh, và email) tại phần đầu
của source code. Nếu không có đủ thông tin cá nhân theo yêu cầu thì
bài đó sẽ không được tính điểm. 3. Cách tính điểm:
a. Mỗi bài tập tối đa 10 điểm.
b. Điểm bài thực hành = Điểm trung bình của tất cả các bài (làm tròn tới 0.5)
4. Sinh viên sẽ nhận điểm 0 nếu gian lận. BÀI TẬP THỰC HÀNH
Bài 1.Viết hàm thực hiện các thao tác sau:

1.1) Nhập n số nguyên và lưu vào một danh sách (list).  Tên hàm: input_int_array  Tham số: số nguyên n
 Output: list chứa các số vừa nhập
1.2) Yêu cầu người dùng nhập vào các số nguyên dương, lưu các
số đó vào một danh sách. Nếu người dùng nhập số âm, hàm sẽ
dừng lại và trả về danh sách gồm các số nguyên dương vừa nhập.
 Tên hàm: input_positive_int_array  Tham số: Không có
 Output: list chứa các số nguyên dương vừa nhập
1.3) Tính tổng và trung bình cộng các phần tử trong một dãy số.  Tên hàm: sum_avg  Tham số: List A
 Output: Tổng và tbc tính được. Trường hợp list rỗng, coi như tổng và tbc bằng 0.
1.4) Tìm giá trị nhỏ nhất và lớn nhất của một dãy số.  Tên hàm: find_min_max  Tham số: List A
 Output: Giá trị nhỏ nhất và lớn nhất tìm được.
1.5) Tính giá trị trung bình và độ lệch chuẩn của các phần tử trong một dãy số.
 Tên hàm: compute_mean_std
T H Ự C H À N H L Ậ P T R Ì N H 1 P a g e | 2  Tham số: List A
 Output: Giá trị trung bình và độ lệch chuẩn tính được. Trường
hợp list rỗng, coi như các giá trị đó bằng 0. (tổng thể)
1.6) Tính tổng và trung bình cộng các phần tử chính phương trong một dãy số.
 Tên hàm: sum_avg_square_numbers  Tham số: List A
 Output: Tổng và tbc tính được. Trường hợp không có số chính
phương, coi như tổng và tbc bằng 0.
1.7) Tìm vị trí của phần tử chẵn đầu tiên trong một dãy số.
 Tên hàm: find_first_even_number  Tham số: List A
 Output: Vị trí tìm được. Trường hợp không tìm được, trả về - 1.
1.8) Tìm số chẵn lớn nhất trong một dãy số.
 Tên hàm: find_max_even_number  Tham số: List A
 Output: Giá trị tìm được. Trường hợp không tìm được, trả về - 1.
1.9) Tính tổng bình phương các số nguyên tố trong một dãy số.
 Tên hàm: square_sum_prime_numbers  Tham số: List A
 Output: Tổng tính được. Trường hợp không có số nguyên tố, coi như tổng bằng 0.
1.10) Tìm phần tử median của một dãy số.
Gợi ý: Median (trung vị) là số ở giữa trong một danh sách các
số được sắp xếp tăng dần hoặc giảm dần.  Tên hàm: find_median  Tham số: List A
 Output: Giá trị median tìm được.
1.11) Tìm phần tử xuất hiện nhiều lần nhất trong một dãy số.  Tên hàm: find_most  Tham số: List A
 Output: Giá trị của phần tử tìm được.
1.12) Tìm vị trí của phần tử nguyên tố đầu tiên trong một dãy số.
 Tên hàm: find_first_prime_number  Tham số: List A
T H Ự C H À N H L Ậ P T R Ì N H 1 P a g e | 3
 Output: Vị trí tìm được. Trường hợp không tìm được, trả về - 1.
1.13) Tìm số nguyên tố nhỏ nhất trong một dãy số.
 Tên hàm: find_min_prime_number  Tham số: List A
 Output: Giá trị tìm được. Trường hợp không tìm được, trả về - 1.
1.14) Kiểm tra dãy số có phải là dãy tăng hay không.  Tên hàm: is_increasing  Tham số: List A
 Output: True nếu dãy tăng, False nếu dãy giảm.
1.15) Thêm giá trị x vào dãy số sao cho dãy vẫn là dãy tăng.
 Tên hàm: insert_increasing
 Tham số: List A, số nguyên x
 Output: List mới sau khi thêm phần tử. Trường hợp dãy ban
đầu chưa sắp xếp tăng, hàm trả về False.
1.16) Tìm cặp hai phần tử liên tiếp nhau có tổng lớn nhất.  Tên hàm: find_max_pair  Tham số: List A
 Output: Tuple gồm 2 phần tử thỏa mãn điều kiện.
Bài 2.Cho một dãy (list) gồm các phân số, mỗi phân số gồm một
cặp 2 giá trị có kiểu dữ liệu tuple.
Ví dụ: A = [(2, 3), (8, 9)] là dãy gồm hai phân số 2 và 8 3 9
2.1) Sắp xếp dãy phân số theo chiều tăng dần.  Tên hàm: sort_fractions
 Tham số: List các phân số
 Output: List sau khi sắp xếp
2.2) Rút gọn các phân số có trong dãy.
 Tên hàm: simplify_fractions
 Tham số: List các phân số
 Output: List các phân số sau khi rút gọn.
2.3) Tính tổng các phân số có trong dãy.  Tên hàm: sum_fractions
 Tham số: List các phân số
 Output: Tổng tính được (yêu cầu có rút gọn tổng nếu cần).
2.4) Tìm giá trị của phân số nhỏ nhất và lớn nhất có trong dãy.
 Tên hàm: find_min_max_fractions
 Tham số: List các phân số
 Output: Phân số tìm được. Mỗi phân số là một cặp có kiểu
dữ liệu tuple như yêu cầu ở đề bài.
T H Ự C H À N H L Ậ P T R Ì N H 1
P a g e | 4 2.5) Tách dãy phân số thành 2 dãy con, một dãy chứa toàn phân
số âm, một dãy chứa toàn phân số dương.  Tên hàm: split_fractions
 Tham số: List các phân số
 Output: Hai danh sách chứa các dãy phân số theo yêu cầu.
Bài 3.Cho một danh sách gồm các cuốn sách. Thông tin mỗi cuốn
sách chứa trong một dictionary với các từ khóa (key) như
sau: isbn, title, authors, publisher, pages, year. Trong đó:
o isbn: kiểu string, mã duy nhất của mỗi cuốn sách
o title: kiểu string, tên của cuốn sách
o authors: set of strings, tên của các tác giả
o publisher: string, tên nhà xuất bản o pages: int, số trang o year: int, năm xuất bản
b1 = {‘isbn’: ‘999-12-392’, ‘title’: ‘Introduction to Python’, authors:
{‘Hana Kim’, ‘David Lim’}, ‘publisher’: ‘NoStarch’, ‘pages’: 140, ‘year’: 2019}
b2 = {‘isbn’: ‘999-12-456’, ‘title’: ‘Advanced Python’, authors:
{‘Hana Kim’}, ‘publisher’: ‘NoStarch’, ‘pages’: 350, ‘year’: 2021} A = [b1, b2]
3.1) Sắp xếp danh sách theo chiều tăng dần của tên sách.  Tên hàm: sort_books_by_title 
Tham số: List các cuốn sách 
Output: List sau khi sắp xếp
3.2) Sắp xếp danh sách theo chiều giảm dần của năm xuất bản.  Tên hàm: sort_books_by_year 
Tham số: List các cuốn sách 
Output: List sau khi sắp xếp
3.3) Tìm cuốn sách có mã isbn là x.  Tên hàm: find_by_isbn 
Tham số: List các cuốn sách, mã isbn 
Output: Tên của cuốn sách tìm được.
3.4) Lọc các cuốn sách theo nhà xuất bản.  Tên hàm: filter_by_publisher 
Tham số: List các cuốn sách, tên nhà xuất bản cần tìm. 
Output: List gồm các cuốn sách tìm được.
T H Ự C H À N H L Ậ P T R Ì N H 1
P a g e | 53.5) Tìm các cuốn sách của tác giả A.  Tên hàm: filter_by_author 
Tham số: List các cuốn sách, tên của tác giả cần tìm. 
Output: List gồm các cuốn sách tìm được.