Câu hỏi:
25/09/2023 182
Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng:
• Dòng thứ nhất chứa danh sách 4 gồm các số nguyên.
• Dòng thứ hai chứa số nguyên x.
Chương trình sẽ kiểm tra xem giá trị x có xuất hiện trong danh sách A hay không. Chương trình cho ra kết quả sai với nhiều bộ dữ liệu A và x. Hãy kiểm thử và sửa lỗi trong chương trình:
A = [int (v) for v in input ().split()]
X =
int (input())
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
break
else:
print("Không tìm thấy giá trị x trong A")
break
Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng:
• Dòng thứ nhất chứa danh sách 4 gồm các số nguyên.
• Dòng thứ hai chứa số nguyên x.
Chương trình sẽ kiểm tra xem giá trị x có xuất hiện trong danh sách A hay không. Chương trình cho ra kết quả sai với nhiều bộ dữ liệu A và x. Hãy kiểm thử và sửa lỗi trong chương trình:
A = [int (v) for v in input ().split()]
X =
int (input())
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
break
else:
print("Không tìm thấy giá trị x trong A")
break
Quảng cáo
Trả lời:
Chương trình cho ra kết quả sai trong trường hợp 4=[1, 2, 3, 4, 5] và x=2. Nguyên nhân: Chỉ duy nhất phần tử đầu tiên trong danh sách được kiểm tra. Sửa lại: Đưa kết luận “không tìm thấy” ra ngoài vòng lặp và thêm một biến boolean để đánh dấu sự xuất hiện của x.
Chương trình sửa lại như sau:
A= [int (v) for v in input().split()]
x = int(input())
found = False
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
found = True
break
if not found: print("Không tìm thấy giá trị x trong A")
Hot: Học hè online Toán, Văn, Anh...lớp 1-12 tại Vietjack với hơn 1 triệu bài tập có đáp án. Học ngay
- Trọng tâm Hóa học 11 dùng cho cả 3 bộ sách Kết nối, Cánh diều, Chân trời sáng tạo VietJack - Sách 2025 ( 58.000₫ )
- Sách - Sổ tay kiến thức trọng tâm Vật lí 11 VietJack - Sách 2025 theo chương trình mới cho 2k8 ( 45.000₫ )
- Sách lớp 11 - Trọng tâm Toán, Lý, Hóa, Sử, Địa lớp 11 3 bộ sách KNTT, CTST, CD VietJack ( 52.000₫ )
- Sách lớp 10 - Combo Trọng tâm Toán, Văn, Anh và Lí, Hóa, Sinh cho cả 3 bộ KNTT, CD, CTST VietJack ( 75.000₫ )
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Lời giải
Có hai lỗi:
Lỗi cú pháp: Dòng 3 sửa tên biến yera thành year.
Lỗi thuật toán: Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100. Nếu chia hết cho 4 (dòng 2) và chia hết cho 100 (dòng 3) thì nếu chia hết cho 400 (dòng 4) là năm nhuận, ngược lại là năm không nhuận. Nhưng dòng 4 là điều kiện không chia hết nên sửa lại dòng 4 từ phép toán “! =” thành “==”.
Lời giải
Do đã sắp xếp ba số theo thứ tự không giảm a[0] <a[1]<a[2] nên em chỉ cần kiểm tra hai cạnh nhỏ có tổng lớn hơn cạnh còn lại hay không. Chương trình của bạn Nhật sai ở dòng i f a[0] + a[1] < a[2]:.
Chương trình được sửa lại như sau:
a = [int (v) for v in input ().split()]
sort (a)
if a[0] + a [1] > a [2]:
else:
print("Là ba cạnh của tam giác")
print("Không phải ba cạnh của tam giác")
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.