Bài 6. Giải bài toán trên máy tính

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Bùi Vũ Tuấn Anh
Ngày gửi: 21h:49' 26-12-2016
Dung lượng: 5.1 MB
Số lượt tải: 113
Nguồn:
Người gửi: Bùi Vũ Tuấn Anh
Ngày gửi: 21h:49' 26-12-2016
Dung lượng: 5.1 MB
Số lượt tải: 113
Số lượt thích:
0 người
BÀI TẬP THẦN THÁNH
THỰC HIỆN BỞI:GSTS Bùi Vũ Tuấn Anh
I. 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é!
II. XÁC ĐỊNH BÀI TOÁN
- Input: Dãy A gồm N số nguyên khác nhau a1, a2,…,an và số nguyên k;
- Output: Chỉ số i mà ai = k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.
III. THUẬT TOÁN TRÌNH BÀY LIỆT KÊ CÁC BƯỚC VÀ SƠ ĐỒ KHỐI
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.
2. SƠ ĐỒ THUẬT TOÁN
IV. 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á.
V. 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ự --}
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;
HẾT
THỰC HIỆN BỞI:GSTS Bùi Vũ Tuấn Anh
I. 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é!
II. XÁC ĐỊNH BÀI TOÁN
- Input: Dãy A gồm N số nguyên khác nhau a1, a2,…,an và số nguyên k;
- Output: Chỉ số i mà ai = k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.
III. THUẬT TOÁN TRÌNH BÀY LIỆT KÊ CÁC BƯỚC VÀ SƠ ĐỒ KHỐI
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.
2. SƠ ĐỒ THUẬT TOÁN
IV. 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á.
V. 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ự --}
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;
HẾT







thuật toán liệt kê thì gán i <-- N trong khi sơ đồ khối thì i <--1