Chương trình Pascal thuật toán tìm kiếm tuần tự Program SequentialSearch; Uses wincrt; Type MANG = array[1..20] of Integer; Var M: MANG; Index: Integer; {-- Hàm tiềm kiếm tuần tự --} Fun[r]
Trang 1BÀI TẬP THẦN THÁNH
THỰC HIỆN BỞI:GSTS Bùi Vũ Tuấn Anh
Trang 2I PHÁT BIỂU BÀI TOÁN
- Giới thiệu: Chúng ta biết rằng tin học là một ngành khoa học có rất nhiều ứng dụng trong các lĩnh vực đời sống xã hội
có vai trò quan trọng trong việc thúc đẩy sự phát triển các
ngành kinh tế
- Hôm nay ta sẽ được làm quen với thuật toán tìm kiếm tuần
tự Đây là một thuật toán cơ bản trong chương trình tin học
lớp 11.
- Thuật toán tìm kiếm tuần tự là một thuật toán rất hay Hãy
nghiên cứu bài giảng ngày hôm nay để biết nó hay thế nào
nhé!
Trang 3
II XÁC ĐỊNH BÀI TOÁN
- Input: Dãy A gồm N số nguyên khác
báo không có số hạng nào của dãy A có giá trị bằng k.
Trang 4
III THUẬT TOÁN TRÌNH BÀY LIỆT KÊ CÁC BƯỚC VÀ SƠ ĐỒ KHỐI
1 LIỆT KÊ CÁC BƯỚC
Bước 1: Nhập N, các số hạng a1, a2,…, an và khoá k;
Bước 2: i <= n;
Bước 3: Nếu ai = k thì thông báo chỉ số i, rồi kết thúc;
Bước 4: i <= i + 1;
Bước 5: Nếu i > N thì thông báo dãy A không có số hạng nào có giá trị bằng k,
rồi kết thúc;
Bước 6: Quay lại bước 3.
Trang 52 SƠ ĐỒ THUẬT TOÁN
Trang 6IV MÔ PHỎNG THUẬT TOÁN TÌM KIẾM TUẦN TỰ
Tìm kiếm tuần tự được thực hiện một cách tự nhiên
Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá cho đến khi hoặc gặp một số hạng bằng khoá hoặc dãy đã được xét hết và không có giá trị nào bằng khoá Trong trường hợp thứ hai dãy A không
có số hạng nào bằng khoá.
Trang 7V Chương trình Pascal thuật toán tìm kiếm tuần
Uses wincrt;
Type
MANG = array[1 20] of Integer;
Var M: MANG;
Index: Integer;
{ Hàm tiềm kiếm tuần tự }
Function TimKiemTuanTu( A: MANG; X,N: Integer): Integer;
Var
I: Integer;
Begin
For I:=1 To N Do
Begin
If X = A[I] Then
Begin
SequentialSearch:= I;
Exit;
End;
End;
End;
Trang 8HẾT