1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo án môn Tin học 10 - Bài 4: Bài toán và thuật toán

19 52 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 386,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

VD: Bài toán “Tìm giá trị lớn nhất của dãy số nguyên” ở trên được mô tả bằng +GV: Hướng dẫn HS chuyển từng bước sơ đồ khối như sau: NhËp N vµ d·y a ,..., a trong mô tả thuật toán theo cá[r]

Trang 1

Ngày soạn: 28/09/2006; ngày giảng: 02/10/2006; Lớp: 10

Tiết PPCT: 10, 11, 112,13, 14

I MỤC TIÊU BÀI HỌC:

1 Kiến thức :

-Hiểu khái niệm “bài toán” trong Tin học và biết 2 thành phần cơ bản của một bài toán (Input, Output)

-Hiểu khái niệm “thuật toán” và 2 cách mô tả các thao tác trong thuật toán (liệt kê, sơ đồ khối) Nắm chắc các biểu tượng thể hiện các thao tác trong sơ đồ khối

-Hiểu được khái niệm sơ lược ban đầu về “ngôn ngữ lập trình”

-Nắm được các thuật ngữ chính trong bài

-Qua bài học, HS hình dung rõ hơn một bước nữa về cách thức hoạt động của máy tính

2 Kỹ năng :

-Biết cho ví dụ một số bài toán trong Tin học

-Xác định được Input và Output của các bài toán

-Mô tả được các thao tác trong thuật toán của một số bài toán cụ thể bằng 2 cách: liệt kê và dùng sơ đồ khối

3 Thái độ :

Nghiêm túc, cẩn thận, đoàn kết, có tinh thần giúp đỡ nhau trong xây dựng bài học

II CHUẨN BỊ:

1 Tài liệu, bài tập:

2 Dụng cụ, thiết bị:

III TIẾN TRÌNH LÊN LỚP:

1 Ổn định, tổ chức lớp:

2 Kiểm tra bài cũ:

1/ -Khái niệm hệ thống tin học?

-Các thành phần của một hệ

thống tin học?

2/ -CPU là gì?

-Kể tên một số thiết bị vào?

1/ (SGK)

2/ (SGK)

Trang 2

3 Bài giảng:

GV: (ĐVĐ) Để viết được chương trình

cho máy tính thực hiện ta cần biết thế nào

là bài toán và thuật toán Hôm nay ta

sang bài 4

Hoạt động 1:

-Nội dung: Khái niệm bài toán.

-Mục tiêu: HS nắm được khái niệm bài

toán

-Cách tiến hành:

+GV: 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 dữ kiện đã có phải

tìm ra hay chứng minh một kết quả nào

đó

Vậy khái niệm “bài toán” trong Tin

học có gì khác không? Để khẳng định cho

vấn đề này, chúng ta xét các yêu cầu sau

+HS: Thảo luận các yêu cầu trên bảng

+GV: Trong các yêu cầu trên, yêu cầu

nào được xem như là một bài toán?

*Trong phạm vi Toán học?

*Trong phạm vi Tin học?

+HS: Đưa ra kềt quả

+GV: Nhận xét kết quả

§4 BÀI TOÁN VÀ THUẬT TOÁN

I/ BÀI TOÁN:

1/ Khái niệm bài toán:

*Xét các yêu cầu sau:

1)Giải phương trình bậc hai

ax2 + bx + c = 0;

2)Viết 1 dòng chữ ra màn hình máy tính; 3)Tìm giá trị nhỏ nhất của các số trong một dãy số

4)Tìm ƯCLN của 2 số nguyên dương a và b;

5)Xếp loại học tập các HS trong lớp 6)Quản lý các cán bộ trong 1 cơ quan;

→Yêu cầu nào được xem như là một bài toán?

*Kết quả:

-Trong phạm vi Toán học:

Yêu cầu 1) và 4) được xem là bài toán

-Trong phạm vi Tin học:

Tất cả các yêu cầu trên được xem là bài toán

Trang 3

+GV: Từ kết quả trên, em nào có thể

đưa ra khái niệm “bài toán” trong Tin

học

+HS: nêu khái niệm bài toán

Hoạt động 2 :

-Nội dung: Tìm hiểu các yếu tố cơ bản

của một bài toán.

-Mục tiêu: Giúp HS nắm được 2 yếu tố

cơ bản (Input, Output) của một bài toán

-Cách tiến hành:

+GV: Ghi vấn đề lên bảng

+HS thảo luận vấn đề trên bảng

+GV: Để giải 1 bài toán công việc đầu

tiên chúng ta phải làm gì?

+HS: Trà lời (xác định đâu là dữ kiện

đã cho và đâu là cái cần tìm)

+GV: Nhận xét câu trả lời của HS, đưa

ra kết luận và giới thiệu 2 thành phần

tuơng ứng của một bài toán trong Tin

học

*Kết luận:

2 Các thành phần cơ bản của một bài toán :

* Vấn đề thảo luận:

Các yếu tố cần quan tâm khi giải một bài toán trong Toán học?

-Giả thiết (cái đã biết) -Kết luận (cái cần tìm) Trong Tin học :

-Giả thiết Input (Các thông tin đã có)

(Đầu vào: Các T.tin đưa vào máy)

-Kết luận  Output (Các t tin cần tìm)

(Đầu ra: Các t.tin cần lấy ra từ máy)

*Kết luận :

Các bài toán được cấu tạo bởi hai yếu tố cơ bản :

-Input : Các thông tin đã có

(Các giả thiết)

-Output : Các thông tin cần tìm

(Kết luận)

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.

Trang 4

+GV: Hướng dẫn học sinh tìm Input và

Ouput của một số bài toán thông qua các

ví dụ

+HS: Theo dõi sự hướng dẫn của GV

và áp dụng giải quyết các bài toán còn

lại

+GV: Qua các VD trên ta thấy bài toán

được cấu tạo bởi hai yếu tố cơ bản, đó là:

*input: Các thông tin đã có.

* Output : Các thông tin cần tìm.

3 Các ví dụ : Tìm input và output của bài toán

VD1: Giải phương trình bậc hai

ax2+bx+c =0 (a ≠ 0)

-Input : Các số thực a,b,c (a ≠ 0)

VD2: Tìm giá trị nhỏ nhất của các số

trong một dãy số

-Input : Các số trong dãy số.

-Output : Giá trị lớn nhất trong dãy số.

VD3: Tìm ước chung lớn nhất của hai số

VD4: Xếp loại học tập các học sinh trong

lớp

-Output :Bảng xếp loại học tập của học sinh

VD5: Viết 1 dòng chữ ra màn hình máy

tính

-Input: Các kí tự.

-Output: Một dòng chữ

Trang 5

Hoạt động 3 :

-Nội dung: Khái niệm thuật toán.

-Mục tiêu: Giúp HS hiểu và nắm được

khái niệm thuật toán

-Cách tiến hành:

+GV: (ĐVĐ) Chúng ta đã biết khái

niện về “bài toán” và các yếu tố cơ bản

của một bài toán đó là: input, output Để

tìm được output từ input của bài toán, ta

làm bằng cách nào? Hôm nay chúng ta

sang phần tiếp theo (II Thuật toán)

+GV: Trình bày khái niệm thuật toán

thông qua sơ đồ

+HS: Lắng nghe và quan sát sơ đồ

trên bảng

+GV: Muốn tìm ra kết luận từ giả

thiết của bài toán, thì chúng ta phải làm

gì?

+HS: Đứng tại chỗ trả (Giải bài

toán)

+GV: Yêu cầu HS dựa vào sơ đồ đó

phác thảo khái niệm “thuật toán”

+HS: Trình bày theo cách hiểu của

bản thân

+GV: Nhận xét và đưa ra kết luận

II THUẬT TOÁN

1 Khái niệm thuật toán:

*Sơ đồ:

Bài tốn

Giải bài tốn

Hướng dẫn các thao tác cho

máy thực hiện để tìm ra lời giải

Thuật tốn

Nói cách khác :

(Thao tác 1Thao tác 2 Thao tác n)

*Kết luậ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ác thao tác này đượ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 đó, từ Input của bài toán ta nhận được Output cần tìm.

BÀI TỐN

Trang 6

Hoạt động 4 :

-Nội dung: Mô tả các thao tác trong

thuật toán.

-Mục tiêu : Giúp HS biết được 2 cách mô

tả thuật toán: liệt kê và dùng sơ đồ khối.

-Cách tiến hành:

+ GV: Đưa ra bài toán giải “Tìm giá trị

lớn nhất của dãy số nguyên” và yêu cầu

HS xác định các yếu tố cơ bản của bài

toán: Input và Output

+GV: Trong Toán học sau bước xác

định yêu cầu bài toán, bước kế tiếp

chúng ta phải làm công việc gì?

+HS: Trả lời (xác định hướng hay

phương pháp giải)

+GV: Đó là ý tưởng của bài toán

+GV: sau bước xác định yêu cầu bài

toán và phương pháp giải, công việc còn

lại chúng ta phải làm gì để tìm ra kết

luận từ giả thiết của bài toán?

+HS: Trả lời (Giải bài toán)

+GV: Nhận xét và giải thích: “Giải bài

toán”là trong Toán học, còn trong Tin

học gọi là “Thuật toán”.

Từ đó, GV hướng dẫn HS cách

chuyển từ ý tưởng của bài toán này sang

mô tả thuật toán bằng cách liệt kê

+ HS: Lắng nghe và hiểu được các bước

mô tả thuật toán

2 Mô tả các thao tác trong thuật toán:

Có 2 cách : Liệt kê và dùng sơ đồ khối

Bài toán : “Tìm giá trị lớn nhất của 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 dương a1, a2, , aN

-Output: Giá trị lớn nhất Max của dãy

số

*Ý tưởng:

-Khởi tạo giá trị Max = a1; -Lần lượt với i từ 2 đến N, so sánh số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai

*Thuật toán:

a Mô tả theo cách liệt kê:

(Nêu ra tuần tự các thao tác cần tiến

hành).

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 kết quả và

kết thúc; ngược lại thì sang Bước 4;

Bước 4:

4.1: Nếu ai > Max thì Max  ai ;

Trang 7

4.2: i  i + 1 rồi quay lại Bước 3.

+GV: Ngoài cách liệt kê các thao tác

như trên, ta có thể dùng sơ đồ khối để mô

tả thuật toán

+GV: Ghi các qui ước trong sơ đồ lên

bảng

b Biểu diễn bằng sơ đồ khối:

Trong sơ đồ khối ta qui ước:

-Hình ô van : thể hiện thao tác nhập, xuất dữ liệu;

Trang 8

(Đặc biệt yêu cầu HS học thuộc tại lớp

các biểu tượng thể hiện các thao tác trong

sơ đồ khối)

+GV: Lấy lại VD: Bài toán “Tìm giá trị

lớn nhất của dãy số nguyên”

+GV: Hướng dẫn HS chuyển từng bước

trong mô tả thuật toán theo cách liệt kê

sang cách mô tả thuật toán bằng sơ đồ

khối tương ứng

+HS: Phân biệt được điểm giống và

khác nhau giữa 2 cách mô tả này Thuộc

lòng tại lớp ý nghĩa các biểu tượng trong

sơ đồ khối

-Hình thoi : thể hiện thao tác so sánh;

-Hình chữ nhật : thể hiện phép tính toán;

-Các mũi tên : qui định trình tự thực hiện các thao tác

VD: Bài toán “Tìm giá trị lớn nhất của dãy số nguyên” ở trên được mô tả bằng

sơ đồ khối như sau:

*Ghi chú:

-Mũi tên  hiểu là gán giá trị của biểu thức bên phải mũi tên cho biến ở bên trái mũi tên;

-VD: i  i + 1: Đặt cho biến I giá trị mới bằng giá trị trước đó tăng thêm 1 đơn vị.

3 Tính chất của thuật toán:

§ĩng

§ĩng

Sai

Sai NhËp N vµ d·y a 1 , , a N

Max  a i

a ii > Max

i > N

Max  a 1 , i  2

§­a ra Max råi kÕt thĩc

i  i + 1

Trang 9

+GV: Thoõng qua Khaựi nieọm thuaọt toaựn

vaứ VD treõn, neõu tớnh chaỏt cuỷa thuaọt toaựn

vaứ giaỷi thớch vaứ ủửa ra VD tửứng tớnh chaỏt

+HS: Chuự yự theo doừi vaứ ghi cheựp

-Tớnh dửứng:

Thuaọt toaựn phaỷi keỏt thuực sau 1 soỏ hửừu

haùn laàn thửùc hieọn thao taực.

-Tớnh xaực ủũnh:

Sau khi thửùc hieọn 1 thao taực thỡ hoaởc

laự thuaọt toaựn keỏt thuực hoaởc laứ coự ủuựng 1 thao taực xaực ủũnh ủeồ ủửụùc thửùc hieọn tieỏp theo.

-Tớnh ủuựng ủaộn:

Sau khi thuaọt toaựn keỏt thuực, ta nhaọn

ủửụù Output caàn tỡm.

VD: Với thuật toán tìm Max đã xét:

-Tính dừng:

Vì giá trị của i mỗi lần tăng lên 1 nên sau N lần thì i > N, khi đó kết quả phép so

Max rồi kết thúc

-Tính xác định:

Thứ tự thực hiện các b,ớc của thuật toán đ,ợc mặc định là tuần tự nên sau b,ớc 1 là b,ớc 2, sau b,ớc 2 là b,ớc 3 Kết quả các phép so sánh trong b,ớc 3 và b,ớc 4 đều xác định duy nhất b,ớc tiếp theo cần thực hiện

-Tính đúng đắn:

Vì thuật toán so sánh Max với từng số hạng của dãy số và thực hiện Max  ai

nếu ai > Max nên sau khi so sánh hết N số

hạng của dãy thì Max là giá trị lớn nhất

+ GV: ẹửa ra baứi toaựn giaỷi phửụng

Trang 10

trình bậc nhất và yêu cầu HS trình bày

lời giải theo cách thông thường

+Từ đó, GV hướng dẫn HS cách

chuyển từ lời giải thông thường này

sang 2 cách liệt kê và dùng sơ đồ khối

(Đặc biệt yêu cầu HS học thuộc tại lớp

các biểu tượng thể hiện các thao tác

trong sơ đồ khối)

+ HS: Lắng nghe và hiểu được 2 cách

mô tả thuật toán Phân biệt được điểm

giống và khác nhau giữa 2 cách mô tả

này Thuộc lòng tại lớp ý nghĩa các biểu

tượng trong sơ đồ khối

+GV: Giải thích để học sinh có được

cảm nhận ban đầu về chương trình và

ngôn ngữ lập trình.

+HS: Có được khái niệm ban đầu về

ngôn ngữ lập trình và chương trình

VD : Tìm nghiệm phương trình bậc nhất

tổng quát : ax + b = 0

a Bằng cách liệt kê:

-Bước 3 : Gán cho x giá trị -b/a

-Bước 4 : Đưa ra kết quả x và kết thúc

b.Bằng sơ đồ khối:

a <> 0

Nhập a, b

Sai

Đúng

x  -b/a

Đưa ra x rồi kết thúc

* Lưu ý:

Ta cần diễn tả thuật toán bằng một ngôn ngữ sao cho máy tính có thể hiểu và thực hiện được, ngôn ngữ đó gọi là

ngôn ngữ lập trình Kết quả diễn tả

thuật toán như vậy gọi là một chương

trình.

Trang 11

Hoaùt ủoọng 5 :

-Noọi dung: Xeựt caực vớ duù veà thuaọt toaựn

-Muùc tieõu : Giuựp HS vaọn duùng nhửừng

kieỏn thửực coự ủửụùc trong hoaùt ủoọng 4 vaứo

moọt soỏ baứi toaựn cuù theồ

-Caựch tieỏn haứnh :

+GV: Hửụựng daón caực bửụực thửùc hieọn

baứi toaựn trong VD

+HS: Theo doừi sửù hửụựng daón cuỷa giaựo

vieõn

Ghi chú:

-Biến i nhận giá trị nguyên thay đổi

 

để kiểm tra N có chia hết cho i hay

không

-[x] kí hiệu phần nguyên của x, là số

nguyên không lớn hơn x và gần x nhất

III CAÙC VÍ DUẽ VEÀ THUAÄT TOAÙN:

nguyên dương

*Xác định bài toán

- Input: N là một số nguyên =,O R -Output: "N là số nguyên tố" hoặc "N

không là số nguyên tố"

*ý tưởng: Ta nhớ lại định nghĩa: Một số

Từ định nghĩa đó, ta suy ra:

-Nếu N = 1 thì N không là số nguyên tố; -Nếu 1 < N < 4 thì N là số nguyên tố;

từ 2 đến phần nguyên căn bậc hai của N thì

N là số nguyên tố

Từ đó ta có thuật toán , sau:

*Thuật toán

a) Thuật toán diễn tả bằng cách liệt kê

Bửụực1: Nhập số nguyên =,O  N;

Bửụực2: Nếu N = 1 thì thông báo N không

nguyên tố rồi kết thúc;

Bửụực3: Nếu N < 4 thì thông báo N là

nguyên tố rồi kết thúc;

Bửụực4: i ← 2;

Bửụực5: Nếu i > [ N]* thì thông báo N là

nguyên tố rồi kết thúc;

Bửụực6: Nếu N chia hết cho i thì thông báo N

không nguyên tố rồi kết thúc;

Bửụực7: i ← i + 1 rồi quay lại +, 5.

Trang 12

b) Sơ đồ khối: Kiểm tra tính nguyên tố

Đúng

Nhập N

N = 1

Thông báo N là

số nguyên tố rồi kết thúc

i  2

i>  N 

 

i  i + 1 N chia hết cho i

N < 4

Thông báo N không

là số nguyên tố rồi kết thúc

Đúng Sai

Sai

Đúng

Sai

Đúng Sai

Y, đây là ví dụ mô phỏng các +, thực

Kiểm tra tính nguyên tố.

Với N = 29 (  29   5 ) Với N = 45 ( 45  6)

Chia hết

không? Không Không Không Không

Chia hết không?

Không Chia hết a) 29 là số nguyên tố b) 45 không là số nguyên tố

Trang 13

+GV: Trong cuộc sống, ta ,c  gặp những

việc liên quan đến sắp xếp chaỳng haùn nhử:

Danh saựch học sinh cuỷa lụựp 10C ủửụùc xeỏp theo

thửự tửù tửứ A ủeỏn Z (thửự tửù ABC); Xếp loại học

lực học sinh trong lớp;

Nói một cách tổng quát, cho một dãy

đối ,6 # cần sắp xếp lại vị trí các đối ,6 

theo một tiêu chí nào đó.

VD: Cho 10 chiếc cọc có chiều cao khác

nhau (hỡnh a), cần xếp lại sao cho cọc thấp ở

,# cọc cao ở sau (hỡnh b).

a) Dữ liệu gốc b) Sau khi sắp xếp

VD: Với A là dãy gồm N số nguyên ( N = 10):

6, 1, 5, 3, 7, 8, 10, 7, 12, 4,

Sau khi sắp xếp ta có dãy:

1, 3, 4, 5, 6, 7, 7, 8, 10, 12.

+GV Giụựi thieọu sụ qua PP Saộp xeỏp: Saộp xeỏp

ủửụùc chia laứm 2 loaùi ủoự laứ: SX trong vaứ SX

ngoaứi.

*Saộp xeỏp TRONG:

→ +Phửụng phaựp Choùn (Selection Sort);

+ PP ẹoồi choó (Exchange Sort);

+ PP Cheứn (Insertion Sort ).

*Saộp xeỏp NGOAỉI:

→ PP Troọn tửù nhieõn (Natural Merge

Sort).

Trong phaùm vi SGK chuựng ta chổ hoùc thuaọt

toaựn saộp xeỏp baống PP ẹoồi choó hay coứn goùi laứ

traựo ủoồi (Exchange Sort).

+GV: Hửụựng daón caực bửụực thửùc hieọn baứi

toaựn trong VD.

+HS: Theo doừi sửù hửụựng daón cuỷa giaựo

vieõn.

Ví dụ 2 Bài toán sắp xếp

Cho dãy A gồm N số nguyên a1 , a 2 , , a N 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).

Thuật toán Sắp xếp bằng tráo đổi (Exchange Sort)

*Xác định bài toán

- Input: Dãy A gồm N số nguyên a1 , a 2 , , a N

- Output: Dãy A ,6 sắp xếp lại thành dãy

không giảm.

*YÙ tưởng:

Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số 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 xảy ra nữa.

*Thuật toán

a) Cách liệt kê:

Bước 1 Nhập N, các số hạng a 1 , a 2 , , a N;

Bước 2 M ← N;

Bước 3 Nếu M < 2 thì , ra dãy A đã

,6 sắp xếp rồi kết thúc;

Bước 4 M ← M - 1, i ← 0;

Bước 5 i ← i + 1;

Bước 6 Nếu i > M thì quay lại +, 3;

Bước 7 Nếu a i > a i+1 thì tráo đổi a i và a i+1

cho nhau;

Bước 8. Quay lại +, 5.

... tố; -Nếu < N < N số nguyên tố;

từ đến phần nguyên bậc hai N

N số ngun tố

Từ ta có thuật tốn , sau:

*Thuật toán< /b>

a) Thuật. ..

Thuật toán Sắp xếp tráo đổi (Exchange Sort)

*Xác định toán< /small>

- Input: Dãy A gồm N... số nguyên ( N = 10) :

6, 1, 5, 3, 7, 8, 10, 7, 12, 4,

Sau xếp ta có dãy:

1, 3, 4, 5, 6, 7, 7, 8, 10, 12.

Ngày đăng: 03/04/2021, 01:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w