- Hiểu và trình bày được thuật toán tìm giá trị lớn nhất của một dãy số nguyên theo 2 cách: liệt kê hoặc sơ đồ khối; nhận biết được các bài toán khác thuộc lớp các bài toán ví dụ: tìm mi
Trang 1Ngày soạn: 9/2018 CHƯƠNG I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC
CHỦ ĐỀ 3: BÀI TOÁN VÀ THUẬT TOÁN
§4 BÀI TOÁN VÀ THUẬT TOÁN
I Mục đích bài học:
1 Kiến thức:
- Biết khái niệm bài toán trong Tin học
- Biết khái niệm thuật toán và các tính chất của thuật toán
- Biết khái niệm thuật toán, các đặc trưng chính của thuật toán
- Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và ngôn ngữ liệt kê
- Hiểu một số thuật toán thông dụng
- Biết Input và Output của bài toán tìm giá trị lớn nhất của một dãy số nguyên; hiểu thuật toán của
bài toán đó.
- Biết Input và Output của bài toán tìm ước chung lớn nhất của 2 số nguyên dương; hiểu thuật
toán của bài toán đó.
- Biết Input và Output của bài toán sắp xếp bằng tráo đổi; hiểu thuật toán của bài toán đó.
- Biết Input và Output của bài toán tìm kiếm tuần tự; hiểu thuật toán của bài toán đó.
2 Kĩ năng:
- Xác định được Input, Output của một số bài toán đơn giản
- Hiểu và trình bày được thuật toán tìm giá trị lớn nhất của một dãy số nguyên theo 2 cách: liệt kê hoặc sơ đồ khối; nhận biết được các bài toán khác thuộc lớp các bài toán (ví dụ: tìm min,…)
- Xây dựng được thuật toán giải một bài toán đơn giản bằng sơ đồ khối hoặc ngôn ngữ liệt kê
- Hiểu và trình bày được thuật toán sắp xếp bằng tráo đổi (Exchange Sort) theo 2 cách liệt kê và
sơ đồ khối, vận dụng linh hoạt trong lớp những bài toán dạng này
- Hiểu và trình bày được thuật toán sắp xếp tìm kiếm tuần tự theo 2 cách liệt kê và sơ đồ khối, vận dụng linh hoạt trong lớp những bài toán dạng này
3 Năng lực hướng tới:
- - Năng lực chung: năng lực giải quyết vấn đề, năng lực sáng tạo, năng lực hợp tác, năng lực sử dụng ngôn ngữ, năng lực tự học, năng lực tính toán và năng lực sử dụng CNTT-TT
- Năng lực chuyên biệt, chuyên môn: Năng lực khoa học máy tính cơ bản; Sử dụng máy tính để học
tập II Đồ dùng dạy học
1 Chuẩn bị của giáo viên: SGK, SGV, phấn, máy chiếu
2 Chuẩn bị của học sinh: SGK, vở ghi
III Hoạt động dạy - học
1 Ổn định tổ chức: Ổn định nề nếp, kiểm tra sĩ số
2 Kiểm tra bài cũ:
Một máy tính chưa có phần mềm có thể hoạt động được không? Vì sao?
Em có biết thiết bị nào vừa là thiết bị vào vừa là thiết bị ra không?
Em hãy trình bày khái niệm bài toán?
Khi giải bài toán bằng máy tính thì cần quan tâm đến những yếu tố nào? Cho ví dụ?
Hãy mô tả thuật toán tìm giá trị nhỏ nhất của 1 dãy số nguyên theo phương pháp liệt kê?
Hãy mô tả thuật toán tìm giá trị nhỏ nhất của 1 dãy số nguyên theo pp sơ đồ khối?
Hãy nêu các cách biểu diễn thuật toán? Các tính chất của thuật toán?
Hãy mô tả thuật toán tìm UCLN của 2 số nguyên dương theo phương pháp liệt kê?
Hãy mô tả thuật toán tìm UCLN của 2 số nguyên dương theo phương pháp sơ đồ khối?
3 Nội dung:
Hoạt động 1: Giới thiệu khái niệm bài toán GV: Bài toán là gì, thuật toán là gì, thuật toán
dùng để làm gì, để biết được những điều trên
chúng ta cùng nghiên cứu bài hôm nay: Bài
toán và thuật toán
1 Khái niệm bài toán trong tin học:
Ví dụ 1a: Bài toán Giải PT:
ax + b = 0 (với a≠0) (*)
Ta nói đây là một bài toán
Trang 2GV: Trong toán học ta nhắc nhiều đến khái
niệm “bài toán” và ta hiểu đó là những việc
mà con người cần phải thực hiện sao cho từ
những thông tin đã có phải đưa ra một kết quả
nào đó Vậy bài toán trong tin học có gì khác?
HS:Trong phạm vi tin học, bài toán là một
việc nào đó ta muốn máy tính thực hiện
GV: Đưa ra 2 ví dụ
GV: Từ ví dụ 1a, ví dụ 1b em hãy cho biết bài
toán là gì? Và cũng từ các ví dụ trên ta thấy
bài toán được cấu tạo bởi các thành phần
nào?
HS:Trả lời câu hỏi.
GV: Vậy, khi cho một bài toán thì điều đầu
tiên là chúng ta phải xác định được Input và
Output của bài toán Việc xác định Input và
Ouput được gọi chung là xác định bài toán
HS: Chú ý lắng nghe, ghi chép
GV: Đưa ra ví dụ 2, 3, 4, 5 Yêu cầu HS
đứng tại chỗ xác định các thành phần của mỗi
bài toán
GV: Dẫn dắt để các em tự tìm được Input và
Output
HS: Đứng tại chỗ trả lời
Bài toán này các thành phần:
+ Input: các gía trị a, b
+ Output: tìm giá trị x thoả mãn (*)
Ví dụ 1b: Bài toán: cho số nguyên dương N và dãy A:
a1, a2, ,aN Tìm giá trị lớn nhất của dãy A
+ Input: Số nguyên dương N và dãy A.
+ Output: Max(a1, a2, ,aN)
Khái niệm: bài toán là việc nào đó ta muốn máy tính
thực hiện
Bài toán được cấu tạo bởi hai thành phần cơ bản:
+ Input (giả thiết): Các thông tin đã có;
+ Output (kết luận): Các thông tin cần tìm từ Input
Ví dụ 2 Bài toán tìm ước chung lớn nhất của hai số
nguyên dương + Input: Hai số nguyên dương M và N;
+ Output: Ước chung lớn nhất của M và N
Ví dụ 3 Bài toán tìm nghiệm của phương trình bậc hai
+ Input: Các số thực a, b, c (a 0);
+ Output: Số thực x thoả mãn: ax2 + bx + c = 0
ở đây, Output có thể là một hoặc hai số thực hoặc câu trả lời không có số thực nào như vậy
Ví dụ 4 Bài toán tính diện tích hình chữ nhật
+ Input: Chiều dài, chiều rộng
+ Output: Diện tích
Ví dụ 5 Bài toán xếp loại học tập của một lớp
+ Input: Bảng điểm của học sinh trong lớp;
+ Output: Bảng xếp loại học lực
Hoạt động 2: Giới thiệu khái niệm thuật toán GV: Nhưng muốn máy tính đưa ra
được output từ input đã cho thì cần
phải có chương trình, mà muốn viết
được chương trình cần phải có
thuật toán Vậy thuật toán là gì ?
HS: Trả lời câu hỏi
GV: Kết luận.
GV: Đưa ra ví dụ tìm ngiệm của
phương trình dạng ax + b = 0
GV: nêu các bước để giải bài toán
HS:quan sát, lắng nghe.
GV: xác định dữ liệu của bài toán?
HS: Đứng tại chỗ xác định input và
output
2 Khái niệm thuật toán.
Khái niệm thuật toán: Thuật toán để giải một bài toán là một dãy
hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm
Tác dụng của thuật toán: dùng để giải 1 bài toán
Ví dụ 1: Bài toán Giải PT: ax + b = 0 (*)
Xây dựng thuật toán để giải bài toán trên.
* Bài toán này các thành phần:
- Input: các gía trị a, b
- Output: tìm giá trị x thoả mãn (*)
* Ý tưởng:
- Nếu a = 0 thì PT vô định
- Nếu a ≠ 0 thì PT có nghiệm: x = - b/a
* Thuật toán:
Bước 1: Nhập các giá trị a, b
Bước 2: Nếu a = 0 thì đưa ra thông báo PT vô nghiệm rồi kết thúc Bước 3: Nếu a ≠ 0 thì đưa ra nghiệm x rồi kết thúc
GV: Em hãy trình bày các tính chất
của thuật toán?
HS:trả lời.
- Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực
hiện các thao tác;
- Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật
toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo;
- Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được
Output cần tìm
Trang 3Hoạt động 3: Hướng dẫn học sinh giải bài toán “Tìm GTLN của 1 dãy số nguyên”
GV: học sinh xác định Input và Output
HS: Đứng tại chỗ trả lời
GV: em cho biết ý tưởng bài toán “Tìm giá
trị lớn nhất của một dãy số nguyên”
HS: Đứng tại chỗ trả lời
Ví dụ 2 Tìm giá trị lớn nhất của một dãy số nguyên
Xác định bài toán:
- Input: Số nguyên dương N và dãy N số nguyên a 1 , , a N
- Output: Giá trị lớn nhất Max của dãy số.
Ý tưởng:
- Khởi tạo giá trị Max = a 1
- Lần lượt với i từ 2 đến N, so sánh giá trị số hạng a i với giá
trị Max, nếu a i > Max thì Max nhận giá trị mới là a i
GV: Ta có thể mô tả thuật toán bằng 2 cách:
liệt kê và dùng sơ đồ khối
GV: Dưới đây là ví dụ mô phỏng các bước
thực hiện thuật toán trên với N = 7 và dãy A:
5, 1, 4, 7, 6, 3, 15
HS: quan sát, lắng nghe.
Cách 1: Cách liệt kê
Thuật toán Thuật toán giải bài toán này có thể được mô
tả theo cách liệt kê như sau:
Bước 1 Nhập N và dãy a 1 , , a N;
Bước 2 Max ← a 1 , i ← 2;
Bước 3 Nếu i > N thì đưa ra giá trị Max rồi kết thúc; Bước 4.
4.1 Nếu a i > Max thì Max ai;
4.2 i i + 1 rồi quay lại bước 3;
GV: Cách viết thuật toán theo từng bước
như trên gọi là cách liệt kê Còn cách làm
khác đó là dùng sơ đồ khối
HS: theo dõi trên bảng phụ.
GV: Em hãy nhìn vào thuật toán dưới dạng
sơ đồ khối và hãy cho biết thuật toán được
diễn tả dưới dạng sơ đồ khối với các quy
định thế nào?
HS: Trả lời câu hỏi.
GV: dựa vào sơ đồ khối cho HS làm bài tập
VD
HS: làm bài tập theo yêu cầu của GV
Min
Cách 2: Sử dụng sơ đồ khối
* Quy định:
Hình thoi thể hiện thao tác so sánh;
Hình chữ nhật thể hiện các phép tính toán;
Các mũi tên quy định trình tự thực hiện các thao tác;
Hình ellip thể hiện thao tác nhập, xuất dữ liệu
* Bài tập vận dụng: Cho dãy số gồm N số sau (N =7):
11 6 20 2 8 7 3 Tìm giá trị NHỎ NHẤT của dãy số trên ?
Hoạt động 4: Hướng dẫn học sinh giải bài toán “Tìm UCLN của 2 số nguyên”
GV: Đưa ra ví dụ UCLN của 2 số M, N Xác
định input và output của bài toán
HS: Đứng tại chỗ xác định Input và Output.
GV: em cho biết ý tưởng bài toán “Tìm
UCLN của 2 số nguyên”
HS: trả lời câu hỏi.
3 Một số ví dụ:
Ví dụ 1 Thuật toán tìm ước chung lớn nhất của 2 số M, N
Xác định bài toán
- Input: Hai số nguyên dương M, N
- Output: UCLN của M và N
GV: Ghi thuật toán lên bảng.
Thuật toán: có 2 cách Cách 1: Cách liệt kê
Đúng
Đ
Sai Nhập N và dãy a1, , aN
Max ai
ai > Max?
i > N ?
Max
Đưa ra Max rồi kết thúc
i i + 1
S ai
Trang 4GV: Lấy VD cụ thể với 2 số (12,8) và giải
thích thuật toán qua từng bước:
B1: Nhập M =12, N =8 M > N
B3: M =12 – 8 = 4, N = 8 N > M
B4: M = 4, N = 8 – 4 = 4 M = N
UCLN (M, N) = 4
HS: quan sát, lắng nghe.
- B1: Nhập M,N
- B2: Nếu M = N thì UCLN = M
- B3: Nếu M > N thì thay M = M – N, quay lại B2
- B4: Thay N = N – M rồi quay lại B2
- B5: Gán UCLN là M Kết thúc
GV: Cách viết thuật toán theo từng bước gọi
là cách Liệt kê, còn có cách làm khác đó là
dùng sơ đồ khối
GV: Lấy lại VD tìm UCLN của 2 số M, N
GV: Vẽ sơ đồ thuật toán lên bảng Chỉ cho
HS: thấy các bước thực hiện của thuật toán
được mô tả trong sơ đồ khối
HS: Ghi lại sơ đồ thuật toán và hình dung ra
các bước giải của thuật toán
Cách 2: Sử dụng sơ đồ khối
BT vận dụng: Tìm UCLN của 2 số 21 và 14
Hoạt động 5: Giới thiệu cho học sinh về bài toán sắp xếp.
GV: Trong cuộc sống chúng ta thường gặp những việc liên
quan đến sắp xếp như: xếp những học sinh theo thứ tự từ
thấp đến cao, xếp loại học sinh theo điểm trung bình của
học sinh từ cao xuống thấp Một cách tổng quát cho một
dãy đối tượng cần sắp xếp theo một tiêu chí nào đó Chẳng
hạn như cho 10 chiếc cọc khác nhau (hình 22a) cần xếp lại
cọc từ thấp đến cao (hình 22b) Dưới đây ta chỉ xét bài
toán sắp xếp dạng đơn giản Các em ghi bài toán
HS: ghi bài
GV: Để sắp xếp dãy này có nhiều thuật toán sắp xếp Sau
đây chúng ta nghiên cứu thuật toán sắp xếp bằng tráo đổi
HS: quan sát, lắng nghe.
3 Một số ví dụ: (tt)
Ví dụ 2: Bài toán sắp xếp.
Bài toán: Cho dãy A gồm N số nguyên a1,
a2, , aN Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (tức là số hạng trước không lớn hơn số hạng sau)
Ví dụ:
Dãy 7 4 9 5 7 sau khi sắp xếp được dãy:
4 5 7 7 9
Hoạt động 6: Hướng dẫn học sinh tìm hiểu thuật toán sắp xếp bằng tráo đổi GV: Yêu cầu học sinh xác định bài toán.
Ví dụ: Cho dãy số nguyên sau:
6 1 5 3 7
GV: Theo em dãy số này nếu xếp tăng dần thì
sẽ như thế nào?
HS: đưa ra dãy đã sắp xếp tăng dần.
1 3 5 6 7
HS: đưa ra ý tưởng, thảo luận nhiều ý tưởng
khác nhau
* Xác định bài toán.
- Input: Dãy A gồm N số nguyên a1, a2, , aN
- Output: Dãy A được sắp xếp lại thành dãy không giảm
* ý tưởng bài toán
- Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số đứng trước lớn hơn số sau, ta đổi chỗ chúng cho nhau Việc đó được lặp lại, cho đến khi không có sự đổi chỗ nào nữa xảy ra
GV: giải thích cho học sinh từng bước của
thuật toán
HS: trao đổi, thảo luận.
HS: phát biểu từng bước liệt kê sơ đồ khối.
* Thuật toán:
a) Cách liệt kê:
B1: Nhập vào số nguyên dương N và dãy số a1, a2, , aN
B2: MN;
B3: Nếu M<2 thì sang B9 B4: M M - 1; i1
Nhập M, N
M > N
M = N
kết thúc
M = M – N
N
S
Đ S
Đ
Trang 5M N Nhập N và a1, a2, , aN
M M – 1; i 0
M < 2 ?
i > M ? đúng
Sai
ai > ai+1 ?
i i + 1
đưa ra A rồi kết thúc đúng
Sai
Sai
đúng Tráo đổi ai và ai+1
B5: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau B6: i i+1
B7: Nếu i > M thì quay lại B3 B8: Quay lại B5
B9: Đưa ra dãy số đã được sắp xếp, kết thúc
GV: Dùng bảng phụ
HS: Quan sát, vẽ vào vở
HS: lần lượt vẽ các bước sơ đồ khối theo các
bước
b) Dùng sơ đồ khối:
GV: Thực hiện lần lượt việc mô phỏng thuật
toán cho HS quan sát
Tuy nhiên vẫn phải làm cho tới khi dãy chỉ còn
1 phần tử
Như vậy ta được dãy số sắp xếp tăng dần
Lượt 1
1 6 5 3 7
1 5 6 3 7
1 5 3 6 7
Lượt 5
HS: theo dõi, nhận xét và ghi chép vào vở.
Mô phỏng việc thực hiện thuật toán với:
N = 5 và dãy A: 6, 1, 5, 3, 7
Với dãy số
6 1 5 3 7 Lần 1: 6 1 5 3 7 (đổi chỗ a1 và a2) 1 6 5 3 7 (đổi chỗ a2 và a3) 1 5 6 3 7
1 5 3 6 7 Lần 2: 1 5 3 6 7 (đổi chỗ a2 và a3) 1 3 5 6 7 Khi đó dãy đã sắp xếp xong
1 3 5 6 7
* Bài tập vận dụng:
a Sắp xếp dãy tăng dần:
b Sắp xếp dãy giảm dần:
Hoạt động 7: Giới thiệu cho học sinh về bài toán tìm kiếm
Đặt vấn đề: Tìm kiếm là một việc thường xảy
ra trong cuộc sống
GV: Cho dãy A gồm: 5, 7, 1, 4, 2, 9, 8, 11, 25,
51 Tìm i với ai = 2 ?
HS: i = 5
GV: Tổ chức các nhóm thảo luận
HS: Các nhóm thảo luận, đưa ra ý kiến
GV Hãy xác định bài toán?
HS + Input: N, a1, a2, …, aN, k
+ Output: i hoặc thông báo không có i
GV hướng dẫn HS tìm thuật toán giải bài toán.
GV: Cho các nhóm trình bày ý tưởng.
HS: thực hiện hoạt động nhóm theo y/c của GV
3 Một số ví dụ: (tt)
Ví dụ 3: Bài toán tìm kiếm
Cho dãy A gồm N số nguyên khác nhau: a1, a2, …, aN và một số nguyên k Cần biết có hay không chỉ số i ( 1 ≤ i ≤ N) mà ai = k Nếu có hãy cho biết chỉ số đó
a) Thuật toán tìm kiếm tuần tự
(sequential search)
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
Ý tưởng:
- Tìm kiếm tuần tự là 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
Trang 6dãy A không có số hạng nào bằng khoá.
Hoạt động 8: Hướng dẫn học sinh tìm hiểu thuật toán tìm kiếm
GV hướng dẫn HS trình bày thuật toán tìm
kiếm bằng cách liệt kê
HS: Các nhóm thảo luận và đưa ra thuật toán.
GV: i là biến chỉ số và nhận giá trị nguyên lần
lượt từ 1 đến N+1
b) Thuật toán:
* Cách liệt kê:
- B1: Nhập N, các số hạng a1, a2, …, aN và khoá k;
- B2: i �1;
- B3: Nếu ai = k thì thông báo chỉ số i, kết thúc;
- B4: i �i + 1;
- B5: 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
- B6: Quay lại bước 3.
GV: Dùng bảng phụ
HS: Quan sát, vẽ vào vở
HS: lần lượt vẽ các bước sơ đồ khối theo các
bước
* Sơ đồ khối:
GV: Thực hiện lần lượt việc mô phỏng thuật
toán cho HS quan sát
HS: theo dõi, nhận xét và ghi chép vào vở.
c) Mô phỏng việc thực hiện thuật toán với:
N = 10, k = 2 và dãy A: 5 7 1 4 2 9 8 11 25 51
k = 2 và N = 10
A 5 7 1 4 2 9 8 11 25 51
-Vậy i = 5 thì a5 = 2
4 Củng cố - dặn dò:
* Qua bài học yêu cầu học sinh cần nắm được:
- Bài toán là việc mà bạn muốn máy tính thực hiện
- Muốn giải một bài toán trước tiên phải xác định được Input và Output
+ Input: các thông tin đã cho trước
+ Output: thông tin cần tìm từ Input đã cho
- Xác định được Input & Output của các bài toán tìm giá trị lớn nhất của 1 dãy số nguyên, bài toán sắp xếp theo pp tráo đổi, bài toán tìm kiếm theo pp tuần tự bằng 2 dạng: liệt kê và sơ đồ khối
- Nhắc lại các thuật toán cơ bản: tìm UCLN của 2 số nguyên
- Việc xác định bài toán và đưa thuật toán bài toán sắp xếp, bài toán tìm kiếm
* Dặn dò: Học bài cũ
- Làm bài tập trong SBT
-BÀI TẬP
I Mục đích bài học
1 Kiến thức:
- Biết khái niệm thuật toán, các đặc trưng chính của thuật toán
- Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và ngôn ngữ liệt kê
- Hiểu một số thuật toán thông dụng
2 Kĩ năng:
- Xây dựng được thuật toán giải 1 số bài toán đơn giản theo cách liệt kê và sơ đồ khối
Trang 73 Năng lực hướng tới:
- Năng lực chung: năng lực giải quyết vấn đề, năng lực sáng tạo, năng lực hợp tác, năng lực sử dụng ngôn ngữ, năng lực tự học và năng lực sử dụng CNTT-TT
- Năng lực chuyên biệt, chuyên môn: Năng lực khoa học máy tính cơ bản; Sử dụng máy tính để học tập
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên: SGK, SGV, phấn, máy chiếu
2 Chuẩn bị của học sinh: SGK, vở ghi
III Hoạt động dạy - học
1 Ổn định tổ chức: Ổn định nề nếp, kiểm tra sĩ số
2 Kiểm tra bài cũ:
Câu 1: Hãy nêu các cách biểu diễn thuật toán? Các tính chất của thuật toán?
Câu 2: Hãy mô tả thuật toán Bài toán sắp xếp theo phương pháp liệt kê?
Câu 3: Hãy mô tả thuật toán Bài toán sắp xếp theo phương pháp sơ đồ khối?
3 Nội dung:
Hoạt động 1: Luyện tập cách xác định bài toán GV: Cho các nhóm thảo luận, gọi 1 HS bất kì trong nhóm trả
lời
HS trả lời
a) Input: chiều dài, chiều rộng
Output: chu vi
b) Input: a, b
Output: GTLN của a và b
c) Input: 3 số thực a, b, c (a0).
Output: Kết luận nghiệm của phương trình ax2 + bx + c = 0
Bài 1: Hãy xác định các bài toán sau:
a) Tính chu vi hình chữ nhật khi cho biết chiều dài và chiều rộng của hình chữ nhật đó
b) Tìm giá trị lớn nhất của 2 số a, b c) Tìm và đưa ra nghiệm của phương trình bậc 2 tổng quát: ax2 + bx + c = 0 (a0)
Hoạt động 2: Mô tả thuật toán giải các bài toán bằng cách liệt kê hoặc bằng sơ đồ khối
GV: Cho các nhóm thực hiện lần lượt các bước
để tìm thuật toán
GV: Gọi 1 HS bất kì trong nhóm trả lời.
HS: trả lời
GV Xác định bài toán?
HS Input: N, a1, a2, …, aN
Output: số Dem cho biết số lượng số 0 có
trong dãy số trên
GV Nêu ý tưởng thuật toán?
HS: – Ban đầu Dem = 0
– Lần lượt duyệt qua dãy số, nếu gặp số hạng nào
bằng 0 thì tăng giá trị Dem lên 1
Bài 2: Cho N và dãy số a1, a2, …, aN Hãy tìm thuật toán cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0
a) Xác định bài toán?
Input: N, a1, a2, …, aN
Output: số Dem cho biết số lượng số 0 có trong dãy số trên
b) Ý tưởng thuật toán?
– Ban đầu Dem = 0 – Lần lượt duyệt qua dãy số, nếu gặp số hạng nào bằng 0 thì tăng giá trị Dem lên 1
Hoạt động 3: Biểu diễn thuật toán bằng phương pháp liệt kê – sơ đồ khối GV: Hướng dẫn HS liệt kê các bước của thuật
toán và vẽ sơ đồ khối
HS: HS: theo dõi, nhận xét và ghi chép vào vở.
c) Thuật toán:
* Liệt kê:
B1: Nhập N, a1, a2, …, aN
B2: i 0; Dem 0
B3: i i + 1
B4: Nếu i > N thì thông báo giá trị Dem, rồi kết thúc B5: Nếu ai = 0 thì Dem Dem + 1
B6: Quay lại B3.
* Sơ đồ khối:
Trang 8GV: Thực hiện lần lượt việc mô phỏng thuật
toán cho HS quan sát
HS: theo dõi, nhận xét và ghi chép vào vở.
d) Mô phỏng việc thực hiện thuật toán:
a) N = 10, dãy A: 1, 2, 0, 4, 5, 0, 7, 8, 9, 0 Dem = 3 b) N = 10, dãy A: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Dem = 0
4 Củng cố - dặn dò:
* Qua bài học yêu cầu học sinh cần nắm được:
- Nắm được các cách giải bài toán bằng liệt kê và sơ đồ khối của các bài toán đã học
* Dặn dò: Học bài cũ
- Về nhà các em xem lại phần lý thuyết và bài tập từ bài 1 đến 4
Trang 9* Bảng mô tả các mức yêu cầu cần đạt cho mỗi loại câu hỏi/bài tập trong chủ đề.
Nội dung Loại câu
hỏi/bài tập Nhận biết Thông hiểu Vận dung thấp Vận dụng cao
BÀI TOÁN VÀ THUẬT TOÁN
1 Khái
niệm bài
toán
Câu hỏi /bài tập định tính
Biết bài toán trong Tin học
Biết Input và Output của bài toán
ND1.ĐT.NB1 ND1.ĐT.NB2
Tìm Input và Output của một
số bài toán
ND1.ĐT.TH1 ND1.ĐT.TH2
2 Khái
niệm
thuật
toán
Câu hỏi /bài tập định tính
Biết khái niệm thuật toán, các đặc trưng của thuật toán
ND2.ĐT.NB1 ND2.ĐT.NB2
Ý nghĩa của thuật toán tối ưu
Một thuật toán có thể giải được nhiều bài toán
ND2.ĐT.TH1 ND2.ĐT.TH2
3 Các
cách biểu
diễn
thuật
toán
Câu hỏi /bài tập định tính
Có 2 cách trình bày thuật toán: liệt kê &
sơ đồ khối
ND3.ĐT.NB1 ND3.ĐT.NB2
Qui định sử dụng các hình trong vẽ
sơ đồ khối
ND3.ĐT.TH1 ND3.ĐT.TH2
4 Một số
ví dụ
Câu hỏi /bài tập định tính
Xác định được giá trị Max khởi tạo
ND4.ĐT.TH1
Đọc hiểu thuật toán từ đó phát biểu bài toán
ND4.ĐT.VDC1 ND4.ĐT.VDC2
Câu hỏi /bài tập định lượng
Vận dụng 1 số thuật toán cho sẵn để đưa ra các kết quả
ND4.ĐT.VDT1 ND4.ĐT.VDT2 ND4.ĐT.VDT3 ND4.ĐT.VDT4
Vận dụng 1 số thuật toán thông dụng để
mô phỏng ví dụ minh hoạ
ND4.ĐL.VDC 1
* BỘ NỘI DUNG CÂU HỎI :
ND1.ĐT.NB1 Hãy chọn phương án đúng Trong phạm vi Tin học bài toán là:
A Công việc mà ta cần tính toán B Thuật toán có thể giải các bài toán.
C Một việc nào đó mà ta muốn máy tính cần thực hiện D Một yêu cầu mà máy tính thực hiện.
ND1.ĐT.NB2 Việc xác định bài toán là đi xác định các thành phần nào?
A Input B Output C Input và Output D Không có thành phần nào
ND1.ĐT.TH1 Hãy xác định Input của bài toán “Tìm nghiệm của phương trình bậc hai ax 2 + bx + c =
0 (a#0) ”
A Các số thực a, b, c (a#0) B Các số thực a, b, c
ND1.ĐT.TH2 Hãy xác định Output của bài toán “Tính chu vi hình tròn với bán kính cho trước”:
A Tính chu vi của hình tròn B Bán kính của hình tròn
C Chu vi của hình tròn D Chu vi và bán kính hình tròn
ND2.ĐT.NB1 Một thuật toán là:
A Việc chỉ ra tường minh một cách tìm Input từ Output
B Việc chỉ ra tường minh một cách tìm Output từ Input
C Một dãy hữu hạn các thao tác được sắp xếp theo trình tự xác định sao cho sau khi thực hiện ta nhận
được Output cần tìm từ Input
Trang 10D Một dãy hữu hạn các thao tác được sắp xếp theo trình tự xác định sao cho sau khi thực hiện ta nhận
được Input cần tìm từ Output
ND2.ĐT.NB2 “…(1) là một dãy hữu hạn các …(2) được sắp xếp theo mộ trật tự xác định sao cho khi
thực hiện dãy các thao tác ấy, từ …(3) của bài toán, ta nhận được …(4) cần tìm” Lần lượt điền các cụm từ còn thiếu là?
A Input – OutPut - thuật toán – thao tác B Thuật toán – thao tác – Input – OutPut
C Thuật toán – thao ác – Output – Input D Thao tác - Thuật toán– Input – OutPut
ND2.ĐT.TH1 Một thuật toán để giải một bài toán được xem là tối ưu nếu chương trình tương ứng được sử
dụng các ít lượng tài nguyên sau:
A Số lượng thao tác cơ bản cần dùng B Thời gian thực hiện
ND2.ĐT.TH2 Hãy chọn phát biểu đúng ?
A Mỗi bài toán chỉ có một thuật toán để giải B Mỗi thuật toán chỉ giải được một bài toán.
C Mỗi thuật toán có thể giải được nhiều bài toán D Mỗi bài toán chỉ giải một thuật toán.
ND3.ĐT.NB1 Có bao nhiêu cách trình bày một thuật toán?
ND3.ĐT.NB2 Hãy chọn phương án ghép đúng : Trong tin học sơ đồ khối là:
A Ngôn ngữ lập trình bậc cao B Sơ đồ mô tả thuật toán
C Sơ đồ về cấu trúc máy tính D Sơ đồ thiết kế vi điện tử
ND3.ĐT.TH1 Hình nào sau dây không dùng biểu diễn thuật toán?
ND3.ĐT.TH2 Trong cách diễn tả bằng sơ đồ khối hình thoi - hình chữ nhật dùng để thể hiện lần lượt thao
tác:
A so sánh và tính toán B xuất/nhập dữ liệu và so sánh
C tính toán và xuất nhập dữ liệu D a, b, c đều sai
ND4.ĐT.TH1 Cho dãy số A: 4 9 7 1 5 3 Giá trị Max được khởi tạo lần đầu là bao nhiêu:
ND4.ĐL.VDT1 Cho thuật toán sau:
B1: Nhập 2 số nguyên a, b
B2: Nếu a>b thì a a – b , ngược lại b b – a
B3: a a b
B4: Thông báo giá trị a, b, rồi kết thúc.
Với các bộ dữ liệu vào như sau, hãy cho biết kết quả của thuật toán (dữ liệu ra)
a) a = 6 , b = –2 a = ………… , b = …………
b) a= 3 , b = 3 a = ………… , b = …………
c) a = –5, b = 7 a = ………… , b = …………
ND4.ĐL.VDT2 Trong thuật toán tìm kiếm tuần tự với N=5; K=9 và dãy A như sau: 1 4 2 9 8
Khi thuật toán kết thúc thì i nhận giá trị là bao nhiêu?
ND4.ĐL.VDT3 Cho dãy A gồm các số sau: 5 , 51 , 12 , 14 , 7 Dựa vào thuật toán sắp xếp bằng tráo đổi để được 1 dãy tăng, hãy cho biết dãy thu được sau 1 lần duyệt dãy A trên:
A 5 , 12, 7 , 14 , 51 B 5 , 12 , 51 , 7 , 14 C 5 , 12, 14 , 7 , 51 D 5 , 7 , 12 , 14 , 51
ND4.ĐL.VDT4 Trong thuật toán tìm giá trị lớn nhất của dãy số nguyên Với N=8 và dãy A như sau:
Khi thuật toán kết thúc thì Max và i nhận giá trị là bao nhiêu?
A Max=19 tại i=1 B Max=19 tại i=5 C Max=19 tại i=6 D Max=19 tại i=4
ND4.ĐT.VDC1 Cho dãy n số nguyên a 1 , a 2 , , a n Có thuật toán tính số M được mô tả bằng cách liệt kê như sau:
Bước 1: Nhập n và dãy a 1 , a 2 , , a n
Bước 2 M 0; i 1;
Bước 3 Nếu i > n thì đưa ra M rồi kết thúc, ngược lại sang bước 4
Bước 4 M M+ ai rồi quay lại bước 3
Hãy cho biết thuật toán này tính gì?