Bài 5. Từ bài toán đến chương trình

Chia sẻ bởi Nguyễn Đức Thiện | Ngày 24/10/2018 | 58

Chia sẻ tài liệu: Bài 5. Từ bài toán đến chương trình thuộc Tin học 8

Nội dung tài liệu:

BÀI 5: Từ bài toán đến chương trình
Nội dung bài 5 là rất quan trọng
(thời lượng 4 tiết)
“Gv cần tận dụng hết thời gian dành cho
bài này để truyền đạt cho HS
một cách kỹ lưỡng”
(Trích:Sách hướng dẫn cho giáo viên)

Mục đích, yêu cầu của bài 5:
Biết khái niệm bài toán, thuật toán
Biết các bước giải bài toán trên máy tính
Xác định được 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
Hiểu thuật toán tính tổng của N số tự nhiên đầu tiên, tìm số lớn nhất của một dãy số.
Nội dung mục 3 là quan trọng

Bước xây dựng thuật toán là quan trọng và khó, Cần dành thời gian thích đáng cho mục này (Sách giáo viên)

Có thể sử dụng một bài toán đơn giản, quen thuộc. Không nhất thiết cứ phải lấy ví dụ trong SGK (Sách giáo viên)
Những cấu trúc quan trọng
Qua bài 5 cần cho học sinh biết ba cấu trúc :
Cấu trúc tuần tự
Cấu trúc rẽ nhánh
Cấu trúc lặp
Cấu trúc tuần tự
I) Với cấu trúc tuần tự:
Ngoài ví dụ SGK có thể đưa vào bài toán đơn giản sau:
Bài toán:
Tính chu vi và diện tích hình chữ nhật, biết chiều dài và chiều rộng là hai số dương a và b được nhập vào từ bàn phím.
* Xác đinh bài toán:
Input : Số a>0, số b>0
Output : Chu vi và diện tích của hình chữ nhật
Cấu trúc tuần tự
Thuật toán:
* Mô hình 1:
Bước 1: Nhập số a>0, số b>0
Bước 2: Thông báo chu vi của hình chữ nhật là (a+b).2
Bước 3: Thông báo diện tích của hình chữ nhật là a.b
Hỏi: Có thể thay đổi các bước nào cho nhau? Tại sao? Mô hình này sử dụng mấy ô nhớ?
(Biến phải được đặt tên và khai báo)
Cấu trúc tuần tự
* Mô hình 2:
Bước 1: Nhập số a>0, số b>0
Bước 2: P  (a+b).2
Bước 3: S  a.b
Bước 4: Thông báo chu vi của hình chữ nhật là P
Bước 5: Thông báo diện tích của hình chữ nhật là S

Lại hỏi: Có thể thay đổi các bước nào cho nhau? Tại sao?Mô hình này sử dụng mấy ô nhớ?
Khắc sâu cho học sinh cấu trúc tuần tự và biến
Một thuật toán quan trọng
Ví dụ 4 (SGK): Đổi giá trị của hai biến x và y
Đây là bài thuộc chuẩn kiến thức và trọng tâm
Cần làm thật kỹ để Hs hiểu:
1) Cấu trúc tuần tự
2) Phép gán
3) Biến và ô nhớ
(có thể đưa vào thuật toán tráo nước)
II) Với cấu trúc rẽ nhánh:
Nên bắt đầu từ những bài thật đơn giản trước:
Ví dụ 5 (SGK)
Cho hai số thực a và b. Hãy cho biết kết qủa 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”
Thuật toán SGK:
Bước 1: Nếu a>b , kết qủa là “ a lớn hơn b”
Bước 2: Nếu a
Với a=6, b=5 thuật toán cho hai kết quả “a lớn hơn b” và “a bằng b”
Nên phân tích thật kỹ để học sinh hiểu tại sao lại như vậy.
Cấu trúc rẽ nhánh
Có thể đưa ra một mô hình đơn giản như sau:

Bước 1: Nếu a>b, Thông báo “a lớn hơn b”
Bước 2: Nếu a Bước 3: Nếu a=b, Thông báo “ a bằng b”

Nên phân tích để học sinh biết sự thực hiện của thuật toán này.(tuần tự và rẽ nhánh)
 Đây cũng là mô hình cho cấu trúc rẽ nhánh thiếu mà học sinh sẽ học ở những bài sau
Cấu trúc rẽ nhánh
Mô hình SGK:
Bước 1: Nếu a>b , kết quả là “ a lớn hơn b” và chuyển đến bước 3
Bước 2: Nếu a Bước 3: Kết thúc thuật toán
Mô hình này ý tưởng cho cấu trúc rẽ nhánh đủ
Tiếp theo chúng ta giới thiệu bài giải phương trình bậc nhất dạng tổng quát bx + c =0(SGK)
(Đây là một bài khó)
Cấu trúc lặp
III) Cấu trúc lặp: Bắt đầu từ ví dụ 3 (SGK)
Bài toán: Tính tổng của 100 số tự nhiên khác 0 đầu tiên:
Mô hình SGK:
Bước 1: SUM  0 ; i  0
Bước 2: i  i+1
Bước 3: Nếu i ≤ 100, SUM  SUM + i và quay lại bước 2
Bước 4: Thông báo kết qủa và kết thúc thuật toán
Làm thật kỹ bài này thì những bài sau hs sẽ làm được
Chú ý phép gán ii+1;SUMSUM+i
và dấu hiệu Kết thúc thuật toán ở bài này
Cấu trúc lặp
Có thể đưa ra một mô hình khác như sau:
Bước 1: S  0
Bước 2: i  1
Bước 3: Nếu i > 100, chuyển về bước 5
Bước 4:
Bước 4.1: S  Tong + i
Bước 4.2: i i + 1 rồi quay lại bước 3
Bước 5: Thông báo tổng là S rồi kết thúc

(Chuẩn bị thuật toán này cho bài 8- Lặp While)
Cấu trúc lặp

Sau khi đã làm kỹ bài tính tổng 100 số tự nhiên khác 0 đầu tiên. Ta thay đổi bài toán:
Tính tổng của n số tự nhiên khác 0 đầu tiên.
(Lúc này Hs biết chỉ cần thay 100 bằng n là được)
* Đây là bài thuộc chuẩn kiến thức


* Hiểu thấu đáo bài trên Hs sẽ làm được bài sau:
*Tính tổng các phần tử của dãy số
A=(a1, a2, …,an) cho trước
(Bài 6 trong phần bài tập)
Cấu trúc lặp

Bài chuẩn kiến thức

Bài toán: Tìm số lớn nhất trong dãy A các số a1,a2,…,an cho trước
(Ví dụ 6 SGK)
Bài 1: Tìm số lớn nhất trong hai số a và b



Mô hình 2:

Bước 1: Gán số a cho biến Max
Bước 2: Nếu b>Max, gán số b cho biến Max
Bước 3: Thông báo số lớn nhất là Max
Mô hình 1:

Bước 1: Nếu a>b,
“a lớn nhất” Ngược lại “b lớn nhất”
Bước 2: Kết thúc thuật toán
Cho Hs nhận xét hai mô hình
Bài 2:Tìm số lớn nhất trong ba số a,b,c

Lúc này một số Hs đã bắt đầu thấy làm theo mô hình 1 sẽ có những khó khăn nhất định (làm cả hai mô hình rồi so sánh)
Nếu thấy cần thiết thì tiếp tục đưa bài toán:
Tìm số lớn nhất trong bốn số a, b, c, d
Đến đây nếu làm theo mô hình 1 thì gần như không thể, và chúng ta cho Hs thấy thuật toán ở mô hình 2 là hợp lý đặc biệt khi cần kiểm tra nhiều số.
Bài toán thuộc chuẩn kiến thức
Tìm số lớn nhất trong dãy A các số a1, a2,…,an cho trước
Sau khi đã làm kỹ các bài toán trên bằng mô hình 2 thì việc tiếp thu bài này của Hs là hoàn toàn không đến mức quá khó.
Thuật toán SGK:
Bước 1: MAX  a1 ; i  1
Bước 2: i  i+1
Bước 3: Nếu i>n, chuyển đến bước 5
Bước 4:Nếu ai>MAX, MAX  ai quay lại bước 2
Bước 5: Kết thúc thuật toán
Một cách xây dựng thuật toán
( Theo SGK lớp 10)
Bước 1: Nhập n và dãy a1, a2, …., an;
Bước 2: Max  a1; i  2;
Bước 3: Nếu i>N thì đưa ra giá trị Max rồi kết thúc
Bước 4:
Bước 4.1: Nếu ai>Max thì Max ai
Bước 4.2: i i+1 rồi quay lại bước 3


Trân trọng cảm ơn các đồng chí.
Kính chúc các đồng chí mạnh khỏe, Hạnh phúc.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Đức Thiện
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)