1. Trang chủ
  2. » Giáo án - Bài giảng

Tiết 20 Bài 6_Giải bài toán trên máy tính

20 68 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 20
Dung lượng 1,06 MB

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

Nội dung

Các bước thực hiệnBước 1: Xác định bài toán; Bước 2: Lựa chọn hoặc thiết kế thuật toán; Bước 3: Viết chương trình; Bước 4: Hiệu chỉnh Bước 5: Viết tài liệu... 2/ Lựa chọn hoặc thiết kế

Trang 1

Bài toán

Tìm ước số chung lớn nhất (ƯCLN) của hai số nguyên dương M và N

Với các giá trị:

M = 5; N = 5 N = 5.

M = 8; N = 6 N = 6.

M = 13; N = 17 N = 17.

M = 2006; N = 2018.

M = 2006; N = 2018

UCLN(M,N) = 5 UCLN(M,N) = 2 UCLN(M,N) = 1 UCLN(M,N) = 2

Trang 2

1 Hãy chỉ ra những ưu điểm của việc giải bài toán bằng máy tính so với cách giải toán thông

Trang 3

Các bước thực hiện

Bước 1: Xác định bài toán;

Bước 2: Lựa chọn hoặc thiết kế thuật toán;

Bước 3: Viết chương trình;

Bước 4: Hiệu chỉnh

Bước 5: Viết tài liệu

Trang 4

Ví dụ: Xét bài toán

Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N

Hãy xác định Input và Output của bài toán trên?

Trang 5

Cho dãy số A: 2 3 6 9 30 100

Tìm số k = 6.

Ví dụ 2:

1 Đây là dạng bài toán nào? Có

những thuật toán nào để giải? Em chọn thuật toán nào? Vì sao?

2 Khi lựa chọn hoặc thiết kế thuật

toán cần đảm bảo các tiêu chuẩn nào?

Trang 6

có nhiều cách giải

(thuật toán)

BÀI TOÁN

Cách 1 Cách 2 Cách 3

KẾT QUẢ

Trang 7

2/ Lựa chọn hoặc thiết kế thuật toán

- Một thuật toán chỉ giải được một bài toán, nhưng một bài toán có thể có nhiều thuật toán để giải Vì vậy ta phải chọn thuật toán tối ưu trong các thuật toán đã có.

- Một thuật toán tối ưu phải có các tiêu chuẩn sau :

Thời gian thực hiện nhanh.

Ít tốn dung lượng bộ nhớ.

Ít phức tạp (trình bày dễ hiểu, dễ nhìn).

a/ Lựa chọn thuật toán :

Trang 8

Ví dụ 1:Tìm ước chung lớn nhất của hai số nguyên dương

M, N

• 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)

• 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

Ý tưởng: ta có 2 ý tưởng sau

Trang 9

B1: Nhập M, N

B2: Chia M cho N lấy

dư là R

B3: Nếu R=0 thì UCLN(M,N)=N rồi kết thúc

B4: M N , N R, chuyển sang B2

B1:Nhập M,N

B2: Nếu M=N thì giá trị

chung là UCLN rồi kết thúc

B3:Nếu M>N thì

M M-N, chuyển sang B2

B4: N N-M, chuyển sang

B2

Thuật toán :

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

Trang 10

Nhập M,N

N N-M

M=N Đưa ra M và

KT

M>N

S

Đ

S

M M-N Đ

Nhập M,N

Chia M cho N lấy dư R

R=0

M N

N R

Đưa ra N và KT

Nên lựa chọn cách giải (thuật toán) nào để viết chương trình?

Đ

S

2 1

* Diễn tả thuật toán bằng sơ đồ khối:

Trang 11

Nhập M,N

N N-M

M=N Đưa ra M và

KT

M>N

S

Đ

S

M M-N Đ

KQ UCLN(3,100)=1 Với M=3, N=100

Trang 12

Nhập M,N

Chia M cho N

lấy dư R

R=0

M N

N R

Đưa ra N và KT

Đ

S

KQ UCLN(3,100)=1 Với M=3, N=100

Trang 13

Số

lần

thực

hiện

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)

1

37 Kết luận: ƯCLN

= 1

Trang 14

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

chương trình trong ngôn ngữ nào thì phải tuân theo những quy định đó

Trang 15

Program TimUCLN;

Var M, N, R:integer;

Begin

Write(‘Nhap vao M,N’);

Read(M,N);

While N<> 0 do Begin

R:=M mod N;

M:=N; N:=R;

end;

Write(‘ uoc chung lon nhat la:’, M); End.

Program TimUCLN;

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.

Trang 16

4/ Hiệu chỉnh

?Khi ta giải một bài toán có phải lúc nào 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?

Khái niệm: Chương trình được kiểm tra bằng cách cho

chạy thử trên những bộ Input mà người ta đã biết trước Output Các bộ Input-Output này gọi là các Test Nếu

có sai sót người lập trình sửa chương trình rồi thử lại Quá trình này được gọi là hiệu chỉnh.

Trang 17

Ghép nối mỗi mục ở cột bên trái với mục ở cột bên phải

để thể hiện nội dung tương ứng của từng bước giải bài

toán trên máy tính.

1 Xác định bài

toán a) Lựa chọn cách tổ chức dữ liệu và ngôn ngữ lập trình để diễn đạt thuật toán

2 Lựa chọn hoặc

thiết kế thuật toán b) Thực hiện chương trình với 1 số bộ Input để kiểm tra kết quả

3 Viết chương

trình c) Xác định Input và Output.

4 Hiệu chỉnh d) Mô tả bài toán, thuật toán, thiết kế chương trình, kết quả thử nghiệm và

hướng dẫn sử dụng

5 Viết tài liệu e) Lựa chọn thuật toán có thời gian thực hiện nhanh nhất, tốn ít dung lượng bộ nhớ

và ít phức tạp nhất

Trang 18

1 Xác định bài

toán a) Lựa chọn cách tổ chức dữ liệu và ngôn ngữ lập trình để diễn đạt thuật toán

2 Lựa chọn hoặc

thiết kế thuật toán b) Thực hiện chương trình với 1 số bộ Input để kiểm tra kết quả

3 Viết chương

trình c) Xác định Input và Output.

4 Hiệu chỉnh d) Mô tả bài toán, thuật toán, thiết kế chương trình, kết quả thử nghiệm và

hướng dẫn sử dụng

5 Viết tài liệu e) Lựa chọn thuật toán có thời gian thực hiện nhanh nhất, tốn ít dung lượng bộ nhớ

và ít phức tạp nhất

Trang 19

Bài tập 3:

Bài toán: viết thuật toán giải pt bậc nhất ax+b=0 và sử dụng vài bộ Input để kiểm chứng tính đúng đắn của chương trình.

- Input : các hệ số a,b

- Output : các kết luận về nghiệm của pt.

sau:

-Nếu a=0 :

+Nếu b=0 :kết luận pt có vô số nghiệm;

+Nếu b≠ 0 : kết luận pt vô nghiệm;

-Nếu a ≠ 0 : kết luận pt có một nghiệm x = -b/a.

Trang 20

Đ

•Thuật toán :

- Sơ đồ khối

Nhập a và b

a=0?

b=0? Pt vn rồi

kết thúc

Pt vsn rồi

kết thúc

Đ

S

nghiệm x=-b/a rồi kết thúc

Giải pt: 8x+96=0

Pt có nghiệm :x=-12

Ngày đăng: 21/10/2020, 21:23

TỪ KHÓA LIÊN QUAN

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

w