Bài cũ: ?Thuật toán có tính chất gì?

Một phần của tài liệu Giáo án Tin học 8 (đã sửa) (Trang 38 - 40)

III. Tiến trình dạy học:

1.Bài cũ: ?Thuật toán có tính chất gì?

A. Tính xác định B. tính dừng,

2. Giải thuật đổi giá trị hai biến x và y cho nhau, ta có thể thực hiện nh sau: A. x ←z; x←y; y←x B. z←x; z←y; y←x;

C. z←x; x←y; y←z D. z←x; x←y; z←x; (Đáp án: C)

Hoạt động của GV Hoạt động của HS

Hoạt động 1: Tìm hiểu ví dụ 5 SGK

GV yêu cầu HS đọc bài toán

Ví dụ5: Cho 2 số thực a và b. Hãy cho biết kết quả so sánh hai số đó dới dạng “a lớn hơn b”, “a nhỏ hơn b” hoặc :a bằng b”.

?Hãy xác định Input và Output của bài toán? Gv hớng dẫn:

Thoạt đầu ta thấy thuật toán sau đây có thể giải quyết bài toán này:

Bớc 1: Nếu a>b, kết quả là “a lớn hơn b”

Bớc 2: Nếu a<b, kết quả là “a nhỏ hơn b”, Ngợc lại “a bằng b” và kết thúc thuật toán.

?Em hãy thử lại với a=6 và b=5

Ta thấy sau bớc 1 ta có kết quả “a lớn hơn b” nhng đến bớc 2, khi kiểm tra a<b ta lại có tiếp kết quả “ a bằng b” và nh thế ta nhận đợc 2 kết quả. ? Nh vậy để có kết quả đúng ta cần mô tả thuật toán nh thế nào?

Hoạt động 2: Tìm hiểu ví dụ 6 (SGK)

Gv yêu cầu HS đọc đề bài?

Ví dụ 6: Tìm số lớn nhất trong dãy A các số a1,

a2,...,an cho trớc.

GV hớng dẫn: Ta dùng biến Max để lu giá trị phần tử lớn nhất của dãy A. Đầu tiên gán giá trị a1 cho biến Max, tiếp theo so sánh các số

a2, ..an cho max. Nếu ai >max, ta gán ai cho max. ?Xác định Input và Output của bài toán?

? Dựa vào hớng dẫn trên hãy viết thuật toán. * Mô phỏng thuật toán tìm số lớn nhất trong dãy số cho trớc. Dãy số 5 3 4 7 6 3 15 9 11 i 1 2 3 4 5 6 7 8 9 10 Ví dụ 5: HS đọc bài Input: Hai số thực a và b Output: kết quả so sánh.

HS trao đổi kết quả cho nhau và đa ra nhận xét.

* Thuật toán đợc mô tả nh sau:

Bớc 1: Nếu a > b, kết qủa là “a lớn

hơn b” và chuyển đến bớc 3.

Bớc 2: Nếu a<b, kết quả là “a nhỏ

hơn b”; Ngợc lại kết quả là “ a bằng b”.

Bớc 3: Kết thúc thuật toán.

Ví dụ 6: Tìm số lớn nhất trong

dãy A các số a1, a2,...,an cho trớc.

Input: Cho dãy A các số a1, a2,...,an.

Output: Giá trị Max = max { a1, a2,...,an.} (adsbygoogle = window.adsbygoogle || []).push({});

Bớc 1: Max ← a1; i←1;

Bớc 2: i←i+1

Bớc 3: nếu i>n, chuyển tới bớc 5 Bớc 4: Nếu ai >max, max ←ai.

ai>max S S Đ S S Đ S S Kết thúc

Max 5 5 5 7 7 7 15 15 15

vậy max trong dày số trên là 15

* GV minh hoạ thuật toán trên với trờng hợp chọn thỏ lớn nhất trong 4 chú thỏ.

a) Giả sử thỏ lớn nhất là thỏ 1, tức max = 1

b) So sánh Max (thỏ 1) với thỏ 2. Vì thỏ 2 nhở hơn thỏ 1, do đó max vẩn bằng 1.

c) Tiếp theo so sánh Max(thỏ 1) với thỏ só 3. Vì thỏ số 3 lớn hơn thỏ số 1, do đó max = 3.

d) Cuối cùng, so sánh max (thỏ 3) với thỏ 4, do đó max vẩn bằng 3. Kết quả lớn nhất là thỏ 3.

Quay lại bớc 2.

Bớc 5: Kết thúc thuật toán.

HS lắng nghe và ghi chép.

V/ Củng cố bài:

Bài tập: Viết thuật toán tìm số lớn nhấ trong 3 số a, b, c. Input: ba số a, b, c

Output: max = Max{a, b, c} Bớc 1: Nhập 3 số a, b, c

Bớc 2: Gán max ← a

Bớc 3: Nếu b> max, gán max ← b Bớc 4: Nếu c> max, gán max ← c

Bớc 5: Thông báo kết quả max và kết thúc thuật toán.

Hớng dẫn về nhà: Làm bài tập 3, 4, 5,6 SGK.

Tiết 23: Bài tập

Ngày soạn:28/11/2009

I/ Mục tiêu:

- Biết xác định Input, Output của một bài toán đơn giản.

- Biết chơng trình là thể hiện của thuật toán trên một ngôn ngữ cụ thể. - Biết mô tả thuật toán bằng phơng pháp liệt kê các bớc.

II/ Ph ơng pháp: Hớng dẫn, thảo luận,…

III/ Chuẩn bị:

1. Chuẩn bị của GV: Một số bài tập.

2. Chuẩn bị của HS: Làm trớc bài tập ở nhà. (adsbygoogle = window.adsbygoogle || []).push({});

IV/ Hoạt động dạy học:

Một phần của tài liệu Giáo án Tin học 8 (đã sửa) (Trang 38 - 40)