Câu hỏi:

18/08/2022 606

Tìm lỗi

Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng:

- Dòng thứ nhất chứa hai số nguyên pq ghi cách nhau một dấu cách.

- Dòng thứ hai là danh sách số nguyên A = (a1, a2, …, an), các số ghi trên một dòng cách nhau một dấu cách. Dữ liệu vào đảm bảo 1 ≤ p ≤ q ≤ n. Tính và đưa ra thiết bị ra chuẩn hai số nguyên trên một dòng:

min{ai, i = p, p+1, q} và max{ai, i = p, p+1, q}.

Chương trình thỉnh thoảng cho kết quả sai với một số bộ dữ liệu p, qA nào đó. Em hãy tìm và sửa lỗi để được chương trình cho kết quả đúng với mọi bộ dữ liệu vào p, qA.

Tìm lỗi Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng (ảnh 1)

Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.

Mua ngay

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Cần bỏ câu lệnh q = q - 1 để đảm bảo phần tử cuối trong khoảng yêu cầu tham gia vào việc tìm min và max. Tham khảo chương trình sau:

Tìm lỗi Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng (ảnh 2)

Quảng cáo

book vietjack

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Lỗi trong chương trình

Có mấy loại lỗi khi lập trình? Hệ thống hỗ trợ gì cho người lập trình trong việc tìm và khắc phục lỗi?

Xem đáp án » 18/08/2022 4,650

Câu 2:

Kiểm thử

Kiểm thử là gì? Tại sao cần kiểm thử khi mà chương trình chạy đưa ra kết quả đúng với ví dụ đã cho?

Xem đáp án » 18/08/2022 356

Câu 3:

Sửa lỗi cho chương trình

Xét bài toán: Robot hạ cánh xuống vùng cần thăm dò ở trạng thái quay mặt về hướng Đông.

Có ba lệnh điều khiển chuyển động: L - quay sang trái và tiến một bước, R - quay sang phải và tiến một bước, C – tiến một bước theo hướng đang đi. Các lệnh robot nhận được trong ngày được lưu trữ dưới dạng xâu Trace chỉ chứa các kí tự từ tập {L, R, C}. Hình bên minh hoạ một số chuyển động của robot. Để chuẩn bị cho trạng thái ngủ qua đêm người ta cần biết cuối ngày robot đang quay mặt nhìn về hướng nào.

Sửa lỗi cho chương trình  Xét bài toán: Robot hạ cánh xuống vùng cần thăm dò  (ảnh 1)

Hãy xác định hướng quay mặt của robot và đưa ra kết quả dưới dạng một kí tự từ tập {E, N, W, S}, trong đó E là hướng Đông, N là hướng Bắc, W là hướng Tây và S là hướng Nam.

Dữ liệu: Gồm một dòng chứa xâu Trace được nhập vảo từ thiết bị vào chuẩn.

Kết quả: Đưa ra thiết bị ra chuẩn một kí tự xác định hướng nhìn của robot.

Gợi ý thuật toán:

- Xét hướng ban đầu của robot: Đông (E).

- Sau một lần rẽ trái (lệnh L) robot chuyển sang hướng Bắc (N).

- Sau hai lần rẽ trái (lệnh L) robot chuyển sang hướng Tây (W).

- Sau ba lần rẽ trái (lệnh L) robot chuyển sang hướng Nam (S).

- Sau bốn lần rẽ trái (lệnh L) robot quay trở về hướng Đông (E).

- Một lần rẽ phải (lệnh R) tương đương với ba lần rẽ trái (không tính chuyển động).

- Các lệnh C - không thay đổi hướng đi.

Như vậy tính số lần rẽ theo lệnh L ta dễ dàng xác định hướng nhìn của robot ở cuối hành trình đã cho.

Chương trình ở hình sau thực hiện bài toán trên. Chương trình không có lỗi cú pháp nhưng khi thực hiện cho kết quả sai. Em hãy tìm chỗ sai và sửa lại để có chương trình đúng.

Sửa lỗi cho chương trình  Xét bài toán: Robot hạ cánh xuống vùng cần thăm dò  (ảnh 2)

Xem đáp án » 18/08/2022 151

Câu 4:

Hoàn thiện chương trình

Xét bài toán: Cho đa giác n đỉnh, đỉnh thứ i có toạ độ nguyên (xi, yi). với i = 1, 2, ..., n. Hãy tính và đưa ra độ dài cạnh lớn nhất của đa giác. Độ dài của đoạn thẳng với các điểm đầu, cuối lần lượt có toạ độ (u, v) và (p, q) được tính theo công thức (uv)2+(pq)2.

Dữ liệu: Nhập vào từ thiết bị vào chuẩn:

-         Dòng thứ nhất chứa số nguyên đương i.

-         Dòng thứ i trong n dòng sau chứa hai số nguyên xi, và yi ghi cách nhau một dấu cách. Các đỉnh của đa giác được liệt kê theo một chiều nào đó.

Kết quả: Đưa ra thiết bị ra chuẩn một số thực là độ dài lớn nhất tìm được với độ chính xác đến 2 chữ số sau dấu phẩy thập phân.

Chương trình sau thực hiện bài toán trên. Em hãy cho biết chương trình chưa hoàn thiện ở điểm nào và chỉ ra một cách hoàn thiện chương trình.

Hoàn thiện chương trình Xét bài toán: Cho đa giác n đỉnh, đỉnh thứ i có toạ độ  (ảnh 1)

Xem đáp án » 18/08/2022 138

Bình luận


Bình luận