Tr CHAO MNG QU THAY CO D GI

  • Slides: 36
Download presentation
Tr CHAØO MÖØNG QUÍ THAÀY CO DÖÏ GIÔØ GV: Phaïm Thò Bích Lieãu 1

Tr CHAØO MÖØNG QUÍ THAÀY CO DÖÏ GIÔØ GV: Phaïm Thò Bích Lieãu 1

Kieåm tra baøi cuõ Caâu 1. Em hãy cho biết ngôn ngữ lập trình

Kieåm tra baøi cuõ Caâu 1. Em hãy cho biết ngôn ngữ lập trình là gì? Caâu 2. Em hãy cho biết có những loại ngôn ngữ lập trình nào? Nêu đặc điểm của từng loại ? 2

Kieåm tra baøi cuõ Caâu 3. Chương trình dịch dùng để làm gì ?

Kieåm tra baøi cuõ Caâu 3. Chương trình dịch dùng để làm gì ? A. Diễn đạt các thao tác của thuật toán B. Biểu diễn thuật toán bằng sơ đồ khối C. Là chương trình dịch từ các ngôn ngữ khác nhau ra ngôn ngữ máy D. Dùng để diệt Virus 3

Có phải máy tính thông minh và làm được mọi công việc kể cả

Có phải máy tính thông minh và làm được mọi công việc kể cả việc giải toán? Việc giải toán trên máy tính được thực hiện như thế nào? 4 Máy tính làm một công việc hay giải một bài toán là do con người đã đưa vào trong máy cách thức làm việc để hướng dẫn cho máy thực hiện công việc.

CHƯƠNG TRÌNH TIN HỌC LỚP 10 Tuần: 8 PPCT Tiết: 16 5 -----------o. Oo-----------

CHƯƠNG TRÌNH TIN HỌC LỚP 10 Tuần: 8 PPCT Tiết: 16 5 -----------o. Oo-----------

+ Kiến thức: • Biết các bước cơ bản khi tiến hành giải toán

+ Kiến thức: • Biết các bước cơ bản khi tiến hành giải toán trên máy tính: xác định bài toán, xây dựng thuật toán, lựa chọn cấu trúc dữ liệu, viết chương trình, hiệu chỉnh, đưa ra kết quả và hướng dẫn sử dụng. + Kĩ năng: • Thực hiện một số bước để giải bài toán đơn giản trên máy tính. 6

XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN VIẾT CHƯƠNG TRÌNH

XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN VIẾT CHƯƠNG TRÌNH HIỆU CHỈNH 5 7 VIẾT TÀI LIỆU

1. XÁC ĐỊNH BÀI TOÁN xác định bài toán là xác định cái Xác

1. XÁC ĐỊNH BÀI TOÁN xác định bài toán là xác định cái Xác định Input, Output của bài toán và gì? mối quan hệ giữa chúng. Từ đó xác định ngôn ngữ lập trình và cấu trúc thích hợp. VD: Tìm ước số chung lớn nhất của hai số nguyên dương M và N Input: M, N là hai số nguyên dương Output: ƯCLN của hai số M, N 8

1. XÁC ĐỊNH BÀI TOÁN VD: Tìm ước số chung lớn nhất của hai

1. XÁC ĐỊNH BÀI TOÁN VD: Tìm ước số chung lớn nhất của hai số nguyên dương M và N Khái niệm ƯCLN? Các cách tìm ƯCLN? 9

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN Khi đã xác định được input

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN Khi đã xác định được input và output ta sẽ lựa chọn hoặc thiết kế thuật toán cho bài toán. 10

Cách 1 BÀI TOÁN có nhiều cách giải (thuật toán) Cách 2 Cách 3.

Cách 1 BÀI TOÁN có nhiều cách giải (thuật toán) Cách 2 Cách 3. . . 11 KẾT QUẢ

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a. Lựa chọn thuật toán Vì

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a. Lựa chọn thuật toán Vì sau phải lựa chọn thuật toán? Tiêu chuẩn để thuật toán tối ưu? Nhóm 1, 5 b. Diễn tả thuật toán * Ý tưởng thuật toán tìm ƯCLN của 2 số M, N 12 Nhóm 2, 6 * Thuật toán bằng cách liệt kê Nhóm 3, 7 * Thuật toán bằng sơ đồ khối Nhóm 4, 8

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a. Lựa chọn thuật toán -

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a. Lựa chọn thuật toán - Mỗi thuật toán chỉ giải được cho một bài toán, nhưng có thể có nhiều thuật toán khác nhau cùng giải một bài toán. Vì vậy ta phải chọn thuật toán tối ưu để giải bài toán. - Tiêu chuẩn thuật toán tối ưu là: » Thời gian thực hiện nhanh. » Ít tốn bộ nhớ. » Trình bày dễ hiểu, dễ nhìn. 13

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN b. Diễn tả thuật toán Có

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN b. Diễn tả thuật toán Có 2 cách • Diễn tả bằng cách liệt kê. • Diễn tả bằng sơ đồ khối. Có mấy cách diễn tả thuật toán? 14

VD: Tìm ƯCLN của hai số nguyên dương M, N. Ý tưởng: ta có

VD: Tìm ƯCLN của hai số nguyên dương M, N. Ý tưởng: ta có 2 ý tưởng sau: • Nếu M=N thì giá trị chung là UCLN • Nếu M>N thì UCLN(M, N)=UCLN(M-N, N) • Nếu M<N thì UCLN(M, N)=UCLN(M, N-M) 15 • Chia M cho N lấy dư là R • Nếu R=0 thì UCLN(M, N)=N • Nếu R khác 0 thì gán N cho M, gán R cho N • Tiếp tục chia M cho N.

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN * Thuật toán bằng cách liệt

2. LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN * Thuật toán bằng cách liệt kê : B 1: Nhập M, N B 2: Nếu M=N thì giá trị chung là UCLN rồi kết thúc * Thuật toán bằng sơ đồ khối Nhập M, N Đ M=N B 3: Nếu M>N thì M M-N, chuyển sang B 2 B 4: N N-M, chuyển sang B 2 16 S M>N S N N-M Đ Đưa ra M và KT M M-N

VD. Diễn tả thuật toán bằng cách dùng sơ đồ khối Lượt M= 25,

VD. Diễn tả thuật toán bằng cách dùng sơ đồ khối Lượt M= 25, M N , N = 10 Nhập 55===N 10 5 ? ? ? 15 25 M 10 S M 515 25>>>10 10 N? S N <-N = 10 --M 5 17 Đ M 25 1 15 2 5 3 5 N 10 10 10 5 ƯCLN = 5 thúc Đưa ra (25, 10) M và kết Đ M M <-15 <-25 -- N 10 10 <-M

Cho hai số: M = 7 và N = 5 tìm ƯCLN 18 M=

Cho hai số: M = 7 và N = 5 tìm ƯCLN 18 M= 721 N= 531 N M>>M N M=N M N == N M--M N ƯCLN(M, N) = 1 M M N == 5372 -–– 251

3. VIẾT CHƯƠNG TRÌNH - Là lựa chọn cách tổ chức dữ liệu và

3. VIẾT CHƯƠNG TRÌNH - Là lựa chọn cách tổ chức dữ liệu và lựa chọn ngôn ngữ lập trình (NNLT) phù hợp với thuật toán. - Có nhiều loại NNLT, vì vậy khi viết Kể tên các ngôn chương trình trongngữ ngôn ngữ nào thì lập trình? phải tuân theo những quy định đó. 19

Program Tim. UCLN; Var M, N, R: integer; Begin Write(‘Nhap vao M, N’); Read(M,

Program Tim. UCLN; Var M, N, R: integer; Begin Write(‘Nhap vao M, N’); Read(M, N); While M<>N do IF M>N THEN M: =M-N ELSE N: =N-M; Write(‘ uoc chung lon nhat la: ’, M); End. 20

4. HIỆU CHỈNH Sau khi viết xong, chương trình cần phải được thử bằng

4. HIỆU CHỈNH Sau khi viết xong, chương trình cần phải được thử bằng một số Input tiêu biểu. Nếu phát hiện sai sót thì phải sửa chương trình rồi thử lại. Khi ta giải một bài toán có lúc kết quả cũng đúng không? Tại sao cần phải có bước hiệu chỉnh? Thế nào là hiệu chỉnh? 21

4. HIỆU CHỈNH * Một số bộ INPUT kiểm tra thuật toán tìm ƯCLN

4. HIỆU CHỈNH * Một số bộ INPUT kiểm tra thuật toán tìm ƯCLN M = 8; M = 25; M = 88; M = 17; 22 N=8 N = 10 N = 121 N = 13 ƯCLN = 8 ƯCLN = 5 ƯCLN = 11 ƯCLN = 1

5. VIẾT TÀI LIỆU - Mô tả chi tiết về bài toán, thuật toán,

5. VIẾT TÀI LIỆU - Mô tả chi tiết về bài toán, thuật toán, chương trình và kết quả thử nghiệm - Hướng dẫn cách sử dụng chương trình - Người sử dụng có thể đề xuất những khả năng hoàn thiện thêm 23

CỦNG CỐ Câu 1: Các bước cần phải có khi giải bài toán trên

CỦNG CỐ Câu 1: Các bước cần phải có khi giải bài toán trên máy tính là a. Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, diễn tả thuật toán, hiệu chỉnh, viết tài liệu. b. Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, viết tài liệu. c. Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, hiệu chỉnh, viết tài liệu. d. Xác định bài toán, viết thuật chọn, viết chương trình, viết tài liệu. 24

CỦNG CỐ Câu 2: Mục đích của việc hiệu chỉnh là : a. Xác

CỦNG CỐ Câu 2: Mục đích của việc hiệu chỉnh là : a. Xác định lại Input và Output của bài toán. b. Phát hiện và sửa sai sót. c. Mô tả chi tiết bài toán. d. Để tạo ra một chương trình mới. 25

CỦNG CỐ Câu 3. Thuật toán tối ưu là? a. Sử dụng ít thời

CỦNG CỐ Câu 3. Thuật toán tối ưu là? a. Sử dụng ít thời gian, ít bộ nhớ. . . b. Sử dụng ít thời gian, nhiều bộ nhớ, ít phép toán. . . c. Sử dụng nhiều thời gian, nhiều bộ nhớ, ít phép toán. . d. Sử dụng ít thời gian, ít bộ nhớ, ít phép toán. . . 26

BÀI TẬP VỀ NHÀ Hãy viết thuật toán giải phương trình bậc nhất ax

BÀI TẬP VỀ NHÀ Hãy viết thuật toán giải phương trình bậc nhất ax + b = 0 và đề xuất các bộ Test tiêu biểu 27

DẶN DÒ • Về nhà học bài, trả lời các câu hỏi sau bài

DẶN DÒ • Về nhà học bài, trả lời các câu hỏi sau bài học. • Chuẩn bị bài phần mềm máy tính cho tiết sau. 28

29

29

VD: Tìm ƯCLN của hai số nguyên dương M, N. Ý tưởng: ta có

VD: Tìm ƯCLN của hai số nguyên dương M, N. Ý tưởng: ta có 2 ý tưởng sau: • Nếu M=N thì giá trị chung là UCLN • Chia M cho N lấy dư là R • Nếu M>N thì UCLN(M, N)=UCLN(M-N, N) • Nếu R=0 thì UCLN(M, N)=N • Nếu M<N thì UCLN(M, N)=UCLN(M, N-M) • Nếu R khác 0 thì gán N cho M, gán R cho N 30 • Tiếp tục chia M cho N.

v Thuật toán : * Diễn tả thuật toán bằng cách liệt kê :

v Thuật toán : * Diễn tả thuật toán bằng cách liệt kê : B 1: Nhập M, N B 2: Nếu M=N thì giá trị chung là UCLN rồi kết thúc B 2: Chia M cho N lấy dư là R B 3: Nếu M>N thì B 3: Nếu R=0 thì UCLN(M, N)=N rồi kết thúc M M-N, chuyển sang B 2 B 4: N B 2 31 N-M, chuyển sang B 4: M N , N chuyển sang B 2 R,

* Diễn tả thuật toán bằng sơ đồ khối: Nhập M, N Đ M=N

* Diễn tả thuật toán bằng sơ đồ khối: Nhập M, N Đ M=N S Đ M>N S N Đưa ra M và KT Chia M cho N lấy dư R Đ R=0 M M-N S M N N-M 1 Đưa ra N và KT N R 2 Nên lựa chọn cách giải (thuật toán) nào để viết chương trình? 32

Với M=3, N=100 Nhập M, N Đ M=N S M>N S N N-M Đ

Với M=3, N=100 Nhập M, N Đ M=N S M>N S N N-M Đ Đưa ra M và KT M M-N Lần M N 1 3 100 2 3 97 3 3 … … 94 … 34 3 1 35 2 1 36 1 1 KQ 33 UCLN(3, 100)=1

Với M=3, N=100 Nhập M, N Chia M cho N lấy dư R Đ

Với M=3, N=100 Nhập M, N Chia M cho N lấy dư R Đ R=0 S M N N R Đưa ra N và KT Lần M N R 1 3 100 3 2 100 3 1 3 3 1 0 KQ 34 UCLN(3, 100)=1

Số lần thực hiện 1 2 3 4 Thuật toán 1 và giá trị

Số lần thực hiện 1 2 3 4 Thuật toán 1 và giá trị tương ứng của (M, N) Thuật toán 2 và giá trị tương ứng của (M, N) 3, 100 3, 97 3, 94 3, 91 3, 100, 3 3, 1 Kết luận: ƯCLN = 1 … 34 … 3, 1 35

Program Tim. UCLN; Var M, N, R: integer; Begin Write(‘Nhap vao M, N’); Read(M,

Program Tim. UCLN; Var M, N, R: integer; Begin Write(‘Nhap vao M, N’); Read(M, N); While N<> 0 do While M<>N do Begin IF M>N THEN R: =M mod N; M: =M-N M: =N; N: =R; ELSE N: =N-M; Write(‘ uoc chung lon nhat la: ’, M); End. 36 end; Write(‘ uoc chung lon nhat la: ’, M); End.