Cho trước dãy số bất kì A. Em hãy viết chương trình tìm và chỉ ra vị trí đầu tiên của dãy A mà 3 số hạng liên tiếp

Câu 31.4 trang 64 SBT Tin học 10Cho trước dãy số bất kì A. Em hãy viết chương trình tìm và chỉ ra vị trí đầu tiên của dãy A mà 3 số hạng liên tiếp có giá trị là 1, 2, 3 (có thể tổng quát 3 số bất kì p, q, s). Nếu tìm thấy thì thông báo vị trí tìm thấy, nếu không thì thông báo "không tìm thấy mẫu".

Trả lời

Để kiểm tra tại một chỉ số i, 3 phần tử liên tiếp nhau bằng 1, 2, 3 có nhiều cách kiểm tra khác nhau, ví dụ:

Cách 1. Sử dụng biểu thức lôgic.

A[i] == 1 and A[i] == 2 and A[i] == 3

Cách 2. Sử dụng so sánh có chứa vùng chỉ số.

A[i:i+3] == [1,2,3]

Chương trình có thể viết như sau:

A = [0,4,0,1,2,3,8,9,0,1,2,3,17,-16,0,1,2]

p = [1,2,3]

pkq = -1

i = 0

while i < len(A) - 3 and pkq == -1:

if A[i: i+3] == p:

pkq = i

else:

i = i + 1

if pkq >= 0 :

print("Tìm thấy mẫu",p,"tại vị trí", pkq)

else:

print("Không tìm thấy mẫu",p)

Sách bài tập Tin học 10 Bài 31 (Kết nối tri thức): Thực hành: Viết chương trình đơn giản (ảnh 1)

Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:

Bài 29: Nhận biết lỗi chương trình

Bài 30: Kiểm thử và gỡ lỗi chương trình

Bài 31: Thực hành: Viết chương trình đơn giản

Bài 32: Ôn tập lập trình Python

Bài 33: Nghề thiết kế đồ họa máy tính

Bài 34: Nghề phát triển phần mềm

Câu hỏi cùng chủ đề

Xem tất cả