Bài học cùng chủ đề
Báo cáo học liệu
Mua học liệu
Mua học liệu:
-
Số dư ví của bạn: 0 coin - 0 Xu
-
Nếu mua học liệu này bạn sẽ bị trừ: 2 coin\Xu
Để nhận Coin\Xu, bạn có thể:

Phần II. Tự luận (3 điểm) SVIP
Kiểm thử phần mềm có vai trò gì trong lập trình? Nêu ví dụ minh họa.
Hướng dẫn giải:
Kiểm thử giúp xác nhận rằng chương trình hoạt động đúng như yêu cầu và giúp phát hiện các lỗi trong mã nguồn hoặc lỗi logic mà có thể không được phát hiện trong quá trình lập trình. Từ đón đảm bảo rằng phần mềm hoạt động ổn định và có thể tin cậy trong mọi tình huống.
Ví dụ. Kiểm thử số nguyên tố:
- Với các số nguyên tố (ví dụ: 2, 3, 5, 7) thì chương trình trả về kết quả đúng.
- Với các số không phải là số nguyên tố (ví dụ: 4, 8, 9) thì kết quả trả về là sai.
Trình bày một thuật toán (kiểm tra số nguyên tố, kiểm tra tính chẵn lẻ của tổng dãy số) dưới dạng bước liệt kê hoặc giả mã. Sau đó, chuyển thuật toán đã học thành chương trình (NNLT là Python, C++) theo ý tưởng của phương pháp làm mịn dần.
Hướng dẫn giải:
Trình bày thuật toán
Bước 1. Nhập dãy số a[1], a[2], ..., a[n].
Bước 2. Tính tổng các phần tử của dãy số S = a[1] + a[2] + ... + a[n].
Bước 3. Kiểm tra nếu tổng S chia hết cho 2:
Bước 3.1. Nếu đúng, trả về "Tổng chẵn".
Bước 3.2. Nếu sai, trả về "Tổng lẻ".
[1] Chuyển mô tả thành chương trình bằng phương pháp làm mịn dần:
A = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
Tính tổng các phần tử của dãy số S = a[1] + a[2] + ... + a[n]. → Làm mịn tiếp tại [2]
if S%2 == 0:
return "Tổng chẵn"
else:
return "Tổng lẻ"
[2] Làm mịn chương trình tính tổng:
S = 0
Duyệt dãy từ i = 0 đến n: → Có thể chuyển trực tiếp thành câu lệnh
S = S + a[i]
[3] Chương trình hoàn chỉnh:
A = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
S = 0
Duyệt dãy từ i = 0 đến n: → Có thể chuyển trực tiếp thành câu lệnh
S = S + a[i]
if S%2 == 0:
return "Tổng chẵn"
else:
return "Tổng lẻ"
Cho một danh sách các số nguyên. Hãy sắp xếp danh sách này sao cho tất cả các số chẵn đứng trước tất cả các số lẻ, trong nhóm số chẵn và nhóm số lẻ, các số được sắp xếp theo thứ tự tăng dần.
Đầu vào: [64, 34, 25, 12, 22, 11, 90]
Đầu ra: [12, 22, 64, 90, 11, 25, 34]
Hướng dẫn giải:
def should_swap(a, b):
if a % 2 != 0 and b % 2 == 0:
return True
elif a % 2 == b % 2 and a > b:
return True
else:
return False
def bubble_sort_chan_le(arr):
n = len(arr)
for i in range(n - 1):
for j in range(0, n - i - 1):
if should_swap(arr[j], arr[j + 1]):
arr[j], arr[j + 1] = arr[j + 1], arr[j]
my_list = [64, 34, 25, 12, 22, 11, 90]
bubble_sort_chan_le(my_list)
print("Mảng đã sắp xếp:", my_list)