23

Bai toan va thuat toan

Embed Size (px)

Citation preview

Page 1: Bai toan va thuat toan
Page 2: Bai toan va thuat toan

A. Mục đích, yêu cầu:1. Về kiến thức:

- Học sinh biết được khái niệm bài toán, thuật toán.- Học sinh biết cách chỉ ra được Input và Output của

mỗi bài toán đưa ra.2. Về tư tưởng, tình cảm:

- Học sinh biểu bài và hứng thú với bài học.- Học sinh ngày càng yêu thích môn học hơn.

B. Phương pháp, phương tiện. 1. Phương pháp:

Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp, sử dụng phương tiện trực quan, ...2. Phương tiện:

- Vở ghi lý thuyết, sách giáo khoa, sách tham khảo.- Máy tính, máy chiếu hoặc hình ảnh về thuật toán.

Page 3: Bai toan va thuat toan

1. Khái niệm bài toán:Xét các yêu cầu sau : Giải phương trình bậc hai ax2+bx+c=0. Viết một dòng chữ ra màn hình máy tính. Quản lý các cán bộ trong một cơ quan. Tìm ước chung lớn nhất của hai số nguyên dương a

và b. Xếp loại học tập các học sinh trong lớp.

Trong TIN HỌCTrong TOÁN HỌC

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

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

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?

Page 4: Bai toan va thuat toan

Khái niệm bài toán trong Tin học?

Bài toán là việc nào đó ta muốn máy tính thực hiện.

Khi máy tính giải bài toán cần quan tâm đến 2 yếu tố:

INPUT

Caùc thoâng tin ñaõ coù

OUTPUT

Caùc thoâng tin caàn tìm töø

Input

Page 5: Bai toan va thuat toan

CÁC VÍ DỤ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)• Output : Số thực x thỏa : ax2+bx+ c = 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ị nhỏ nhất trong dãy số.

VD3 : Tìm ước chung lớn nhất của hai số nguyên dương a và b.• Input : • Output:

VD4 : Xếp loại học tập các học sinh trong lớp. • Input :• Output :

ƯCLN của a và b.Hai số nguyên dương a và b.??

??Bảng điểm của học sinh.Bảng xếp loại học tập.

Page 6: Bai toan va thuat toan

SBD Hä vµ tªn V¨n To¸n LÝ Anh Tæng KÕt qu¶

105 Lª ThÞ Thu 8.5 10.0 7.0 9.0

102 Vò Ngäc S¬n 6.0 8.5 8.5 5.0

215 TrÇn Thuû 7.0 7.0 6.5 6.5

211 NguyÔn Anh 4.5 5.0 7.0 7.5

245 Phan V©n 5.0 2.0 3.5 4.5

VD5: Qu¶n lÝ ®iÓm trong mét k× thi b»ng m¸y tÝnh.

Yªu cÇu : H·y x¸c ®Þnh th«ng tin ®a vµo (Input) vµ th«ng tin cÇn lÊy ra (Output)

Input: SBD, Hä vµ tªn, V¨n, To¸n, LÝ, Anh.

Output: Tæng ®iÓm, KÕt qu¶ thi cña häc sinh.

53 §ç

42.5 §ç

41 §ç

33.5 §ç

22

Page 7: Bai toan va thuat toan

TÓM LẠI

Khi dùng máy tính giải bài toán, ta cần quan tâm đến 2 yếu tố cơ bản:

• Input: Các thông tin đã có.• Output: Các thông tin cần tìm từ Input.

Page 8: Bai toan va thuat toan

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

Chương trình

Input OutputMuốn máy tính đưa ra Output từ Input

Thuật toán

BÀI TOÁN

Muốn viết chương trình ?

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

Page 9: Bai toan va thuat toan

MÔ TẢ CÁC THAO TÁC TRONG THUẬT TOÁN

Có 2 cách mô tảLiệt kê

Dùng sơ đồ khối

Nêu ra tuần tự các thao tác cần tiến hành

Dùng một số biểu tượng thể hiện các thao tác

Page 10: Bai toan va thuat toan

a. Liệt kê.Ví dụ: Thuật toán tìm số lớn nhất trong dãy

MAX

SỐ LỚN NHẤT TRONG DÃY SỐ LÀ

Input: Nhập số chữ số và các số Output: Chữ số lớn nhất ?

Bước 2: Max = a1, I 2 Bước 3: Nếu I > N thì chuyển đến bước 6

Bước 4: Nếu ai> Max thì max ai

Bước 5: i i+1, quay lại bước 3Bước 6 Thông báo giá trị max, kết thúc

Bước 1: Nhập số chữ số N và các số a1,a2,…,an

i2

2>5 (sai)

i 3

3>5 (sai)

i 4

4>5 (sai)

i 5

5>5 (sai)

i 6

6>5 (Đúng)

Chuyển KNChuyển SDK

Page 11: Bai toan va thuat toan

: Thể hiện các thao tác so sánh.

b. Dùng sơ đồ khối

Trong sơ đồ khối, người ta dùng một số biểu tượng thể hiện các thao tác như:

: Thể hiện các phép tính toán.

: Quy định trình tự thực hiện các thao tác.

: Thể hiện các thao tác nhập, xuất dữ liệu.

Page 12: Bai toan va thuat toan

§

S

§

S

NhËp N vµ d·y a1,…,aN

Max ← a1 ; i ← 2

I > N ?

ai> Max ?

Max ←ai

i ← i+1

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

MaxiA

77555543267415

N=5 ; A [ 5 1 4 7 6 ]

Max ← 5 ; i ← 2

2 > 5 ?

1> 5 ?

i ← 2+1

3 > 5 ?

4> 5 ?

i ←3+1

4 > 5 ?

7 > 5 ?

Max ←7

4

i ←4+1

5 > 5 ?

7 > 7 ?

i ←5+1

6 > 5 ? Sè lín nhÊt cña d·y lµ 7

M« pháng thuËt to¸n

Víi i = 2Víi i = 3Víi i = 4Víi i = 5

Page 13: Bai toan va thuat toan

VD1: Tìm nghiệm phương trình bậc nhất tổng quát: ax + b = 0

Nhaäp a, b

a = 0

x -b/a

Ñuùng

Ñöa ra x vaø keát thuùc

Sai

Bước 1: Nhập a, b.Bước 2: Nếu a = 0 thì quay lại

bước 1, ngược lại thì qua bước 3.

Bước 3: Gán cho x giá trị -b/a, rồi qua bước 4.

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

SƠ ĐỒ KHỐILIỆT KÊ

Page 14: Bai toan va thuat toan

B7: KÕt thóc.

B1: B¾t ®Çu;

B2: NhËp a, b, c; B3: TÝnh ∆ = b2 – 4ac;

B4: NÕu ∆ < 0 => PT v« nghiÖm => B7;

B5: NÕu ∆ = 0 => PT cã nghiÖm kÐp x = -b/2a => B7; B6: NÕu ∆ > 0 => PT cã hai nghiÖm x1, x2 = (-b ± √∆)/2a => B7;

VD2: ThuËt to¸n gi¶i ph¬ng tr×nh bËc hai (a ≠ 0).

C¸ch 1: LiÖt kª c¸c bíc

Page 15: Bai toan va thuat toan

NhËp vµo a, b, c

∆ = b - 4ac

∆ < 0 PT v« nghiÖm

∆ = 0 PT cã nghiÖm x= - b/2a KT

BD

®

s

Cách 2: Sơ đồ khối

2

PT cã 2 nghiÖm

x1,x2 = ( -b ±√∆ )/2a

B1

B2

B3

B4

B5

B6

s

®

B7

Page 16: Bai toan va thuat toan

a,b,c= 1 3 5

∆ = 3∗3 − 4∗5 = − 11

−11 < 0 PT v« nghiÖm

∆ = 0 PT cã nghiÖm x = -b/2a KT

BD

-11

531

c b a

S

PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2a

§

S

∆ = b* b − 4* a* c

nhËp vµo a,b,c

∆ < 0

Mô phỏng nghiệm phương trình bậc hai

Bộ Test 1

Page 17: Bai toan va thuat toan

a,b,c= 1 2 1

∆ = 2∗2 − 4∗1∗1 = 0

PT v« nghiÖm

PT cã nghiÖm x=-b/2a KT

BD

0

121

c b a

S

PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2a

§

S

∆ = b* b − 4* a* c

nhËp vµo a,b,c

∆ < 0

§

∆ = 0 PT cã nghiÖm kÐp x=-1

Bộ Test 2

Mô phỏng nghiệm phương trình bậc hai

Page 18: Bai toan va thuat toan

KT

BD

1

6-51

c b a

S

§

S

∆ < 0

§

∆ = 0

PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2aPT cã nghiÖm x1 = 3 x2 = 2

PT cã nghiÖm x=-b/2a

PT v« nghiÖm

∆ = 25 − 24 = 1 ∆ = b* b − 4* a* c

a,b,c= 1 -5 6 nhËp vµo a,b,c

Bộ Test 3

Mô phỏng nghiệm phương trình bậc hai

Page 19: Bai toan va thuat toan

Thuật toán có các tính chất:

- 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.

Page 20: Bai toan va thuat toan

Ví dụ: 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 sánh ở bước 3 xác định việc đưa ra giá trị 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ác 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.

Page 21: Bai toan va thuat toan

CỦNG CỐ

* Bài học hôm nay các em cần nắm những nội dung chính sau:- Bài toán là việc mà con người 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: Thông tin đưa vào máy.+ Output: Thông tin muốn lấy từ máy.

- Thuật toán là một dãy hữu hạn các thao tác được sắp xếp tuần tự mà khi thực hiện nó thì từ Input đưa vào ta sẽ lấy được Output.- Thuật toán có 2 dạng: Liệt kê và Sơ đồ khối

Page 22: Bai toan va thuat toan

* Một số câu hỏi trắc nghiệm::

Câu 1: Khi sử dụng máy tính giải bài toán:

a. Ta chỉ cần xác định Input

b. Ta cần xác định: Input, Output

c. Ta chỉ cần xác định Output

d. Cả ba ý trên.

Câu 2: Input của bài toán giải phương trình bậc hai

ax2 + bx + c = 0 là:

a. x, a, b, c b. a, b, c

c. a, b d. x, a, c

* Bài tập về nhà:

- Ôn tập lại bài học hôm nay.

- Làm các bài tập trong SGK trang 44

- Chuẩn bị trước phần bài còn lại.

Page 23: Bai toan va thuat toan