1. Trang chủ
  2. » Công Nghệ Thông Tin

CHƯƠNG 2 : GIẢI QUYẾT BÀI TOÁN BẰNG MÁY TÍNH pdf

25 568 1

Đ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

Tiêu đề Giải Quyết Bài Toán Bằng Máy Tính
Thể loại Bài viết
Định dạng
Số trang 25
Dung lượng 345 KB

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

Nội dung

CHƯƠNG 2 : GIẢI QUYẾT BÀI TOÁN BẰNG MÁY TÍNH 2.1 Thuật toán 2.2 Biểu diễn thuật toán 2.3 Các bước giải quyết bài toán trên máy tính... 1 Khái niệm THUẬT TOÁN Hệ thống các qui tắc  các

Trang 1

CHƯƠNG 2 : GIẢI QUYẾT BÀI TOÁN BẰNG MÁY TÍNH

2.1 Thuật toán

2.2 Biểu diễn thuật toán

2.3 Các bước giải quyết bài toán trên máy tính

Trang 2

2.1 Thuật toán

CHƯƠNG TRÌNH = THUẬT TOÁN + CẤU TRÚC DỮ LIỆU

(Programs = algorithms + Data Structures)

Trang 3

1 Khái niệm

THUẬT TOÁN

Hệ thống các qui tắc

 các đối tượng

 Dãy hữu hạn các thao tác (bước)

 Thực hiện hữu hạn lần các thao tác

ta đạt được mục tiêu định trước

Trang 4

VD: giải phương trình ax + b = 0 (a<>0)

Đối tượng: a,b,x Qui tắc : ax + b = 0 và các qui tắc toán học khác 

Các thao tác : (1) Nhập giá trị cho a (a<>0), b(2) Tính x = -b/a

(3) Xuất kết quả x(4) Dừng

Trang 5

•Một vấn đề, bài toán cho trước có thể có nhiều thuật toán khác nhau

•Thuật toán cho kết quả với thời gian nhanh nhất được coi là thuật toán tối

ưu về mặt thời gian

•Thuật toán sử dụng ít bộ nhớ nhất được coi là thuật toán tối ưu về bộ nhớ

(3) Tính x2 = 1/a (4) Tính x = x1*x2 (5) Xuất kết quả x (6) Dừng

Trang 6

(3) So sánh DELTA với 0 (4) Dựa vào (3)

Nếu DELTA<0 Xuất kết quả ‘PTVN’

Dừng Nếu DELTA=0 Tính nghiệm (kép) x = -b/(2*a) Xuất kết quả x

Dừng Nếu DELTA>0 Tính nghiệm x1 = (-b+sqrt(DELTA))/(2*a) x2 = (-b-sqrt(DELTA))/(2*a) Xuất kết quả x1, x2

Dừng

Trang 7

2 Tính giá trị của đa thức Pn(X)=AnXn + An-1Xn-1 +…+ A1X1 + A0 tại X=C

Viết lại : Pn(C)=(…( AnC+An-1)C+An-2 )C+…+A1 )C+A0 Minh họa với n=3

P3(C) = A3C3 + A2C2 +A1C1 + A0 = (( A3C+A2)C+A1 )C+A0

(3) Q:=Q*C+ A1=(A3*C+A2)*C+A1 =A3*C2+A2*C+A1(2) i:=0>=0

(3) Q:=Q*C+ A0=(A3*C2+A2*C+A1)*C+A0 =A3*C3+A2*C2+A1*C+A0(2) i:=-1<0

(3) In Q; Dừng

Trang 8

3 Tính tổng n số tự nhiên đầu tiên S=1+2+…+n; n>0 (S=(n+1)*n/2)

Trang 9

1 Giải phương trình bậc 2 ax2 + bx + c = 0 với a tùy ý.

2 Kiểm tra số nguyên dương cho trước là số nguyên tố

3 Kiểm tra số nguyên dương cho trước là số chính phương

4 Tìm ước số chung lớn nhất của 2 số nguyên dương cho trước

5 Liệt kê các số khác nhau trong 1 dãy số cho trước

Trang 10

Thuật toán số nguyên tố

 DK: j=2 và n chia hết cho 1 và chính nó.

 (1): Nhập n

 (2): j=2

 (3): j<=n and n không chia hết cho j ->

Nếu không thỏa (3) - > (5)

Nếu thỏa (3) -> (4)

 (4): j=j+1 -> (3)

 (5) Nếu j=n thì in số nguyên tố

(6) Dừng

Trang 11

3 Các đặc trưng

Tính dừng (kết thúc) :

•thuật toán phải dừng sau hữu hạn lần thực hiện thao tác

•Trong VD1 tính dừng là rõ ràng; Trong VD2 ở (2) i giảm 1 đơn vị cho nên sau một số lần thực hiện thao tác ta sẽ có i<0;

Các thao tác : (1)Q= An ; i=n(2) i:=i-1, so sánh i với 0(3) Dựa vào (2)

Nếu i>=0 Tính Q:=Q*C+ Ai  (2)

Nếu i<0 Xuất kết quả Q Dừng

Trang 12

•Trong VD3 ở (3) i tăng 1 đơn vị cho nên sau một số lần thực hiện thao tác

ta sẽ có i>n

Các thao tác : (1) S=0; i=1(2) S:=S+i(3) i:=i+1(4) So sánh i với n(5) Dựa vào (4) Nếu i<=n  (2) Nếu i>n Xuất kết quả S Dừng

Trang 13

Tính xác định :

các thao tác ở mỗi bước phải rõ ràng và chỉ hiểu theo một nghĩa duy nhất

Trang 14

Tính phổ dụng :

áp dụng cho các bài toán cùng loại

Trong VD1 thuật toán không phổ dụng vì thuật toán không sử dụng được khi nhập a=0 hoặc a là một ký tự; Trong VD3 thuật toán sẽ sai khi cho n=0

Các thao tác : (1) S=0; i=1(2) S:=S+i(3) i:=i+1(4) So sánh i với n(5) Dựa vào (4) Nếu i<=n  (2) Nếu i>n Xuất kết quả S Dừng

Trang 15

Tính khả thi :

bao gồm các thao tác mà máy có thể thực hiện được

Phép tính căn trong tính nghiệm khi giải phương trình bậc 2 ở trường hợp DELTA>0 là không thực hiện được trên máy tính

Trang 16

Tính đầy đủ :

phải vét hết các tình huống, các khả năng có thể có

Thuật toán trong VD1 nêu trên đã bỏ qua trường hợp a=0; Thuật toán trong VD3 bỏ qua trường hợp n=0

Trang 17

Tính đúng đắn :

phải chứng minh tính đúng đắn của thuật toán

Chứng minh tính đúng đắn của thuật toán là một việc làm khó,

thông thường ta chỉ kiểm tra thuật toán với giá trị nhỏ (hoặc tính nhẩm được)

VD : kiểm tra thuật toán trong VD3 với n=5 ta có S=15

Trang 18

2.2 Biểu diễn thuật toán

1 Các cách biểu diễn thuật toán

Ngôn ngữ tự nhiên hoặc mã giả

VD : sử dụng ngôn ngữ tự nhiên để biểu diễn thuật toán

giải phương trình bậc 2 với a<>0

In x

Dừng

Nếu Delta>0 thì Tính x1,2=(-bsqrt(delta))/(2*a)

In x1, x2

Dừng

Trang 19

Lưu đồ (Flowchart)

Các qui ước

Khối nhập dữ liệu Nhập x,y,… Nhập x,y,…

Khối thao tác, tính toán Thao tác/

Trang 20

Khối xuất dữ liệu

In a, b,…

Khối dừng (kết thúc)

END

Trang 21

VD : sử dụng lưu đồ để biểu diễn thuật toán giảp phương trình bậc 2 với a<>0

In x.

Dừng.

Nếu Delta>0 thì Tính x1,2=(-bsqrt(delta))/(2*a).

In x1, x2.

Dừng.

Trang 22

2.3 Các bước giải quyết bài toán trên máy tính

Trang 23

2 Biểu diễn thuật toán

3 Viết chương trình

4 Sửa lỗi cú pháp (Syntax error)

1 Nghiên cứu bài toán, dữ liệu sử dụng và phác thảo cách giải

để trên cơ sở đó tìm ra thuật toán

VD : bài toán giải phương trình bậc 2: ax2 + bx + c = 0 với a<>0

Dữ liệu nhập : a<>0, b, c là các số thực

Các kiến thức về giải phương trình bậc 2 với a<>0

Tính Delta (số thực)

Xử lý nghiệm phương trình (số thực)

Trang 24

5 Sửa lỗi logic

•Chạy thử chương trình với các bộ dữ liệu cơ bản

Trang 25

•Chạy thử chương trình với các bộ dữ liệu cá biệt

với chương trình giải phương trình bậc 2 với a<>0 ta nhập a=0

•Đặt bẫy lỗi

cô lập các dòng lệnh trong chương trình nghi ngờ có lỗi

bổ sung các lệnh in dữ liệu sau các đoạn chương trình nghi ngờ có lỗi

•Sử dụng các công cụ dò lỗi logic (Debug) kèm theo chương trình dịch

Ngày đăng: 03/07/2014, 08:20

TỪ KHÓA LIÊN QUAN

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

w