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

Bài giảng tin học đại cương chương 4 lê thị ngọc thảo

29 0 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

Tiêu đề Chương trình & Giải thuật
Người hướng dẫn Lê Thị Ngọc Thảo
Trường học Đại học Tôn Đức Thắng, Khoa Công nghệ Thông tin - Tự động hóa
Chuyên ngành Tin học đại cương
Thể loại Bài giảng
Định dạng
Số trang 29
Dung lượng 674,75 KB

Nội dung

Các khái niệm 1z Thuật toán• Cách hiểu đơn giản• Tập các hướng dẫn thực hiện một công việc.• Tập hữu hạn các hướng dẫn rõ ràng để người giải toán có thể theo đó mà giải quyết được vấn đề

Trang 1

CHƯƠNG 4:

CHƯƠNG TRÌNH & GIẢI THUẬT

Trang 2

Các khái niệm (1)

z Thuật toán

• Cách hiểu đơn giản

• Tập các hướng dẫn thực hiện một công việc.

• Tập hữu hạn các hướng dẫn rõ ràng để người giải toán có thể theo đó mà giải quyết được vấn đề.

• Một phương pháp thể hiện lời giải của vấn đề.

• Algorithm: nhà toán học Trung Á

Muhammad Bin Musa Al-Khwarizmi

http://www2.sjsu.edu/depts/Museum/alkhwa.html

Trang 3

Các khái niệm (2)

z Thuật toán (tt)

• Trong khoa học máy tính

Một dãy hữu hạn các bước rõ ràng và thực thi được.

Quá trình hành động theo các bước này phải dừng và

cho được kết quả như mong muốn.

• Tính xác định

Hướng dẫn giải rõ ràng và đúng

• Tính hữu hạn

Trang 5

• 1.Lập danh sách các môn học theo tên, số đvht

• 2.Sắp thứ tự các môn học giảm dần theo số đvht

• 3.Chọn ra một môn học có nhiều đvht nhất

• Câu hỏi???

Trang 6

Các khái niệm (5)

z Tính mập mờ (tt):

Phân biệt mập mờ và chọn lựa có quyết định

Mập mờ là thiếu thông tin hoặc có nhiều chọn lựa nhưng không đủ điều kiện để quyết định

Chọn lựa có quyết định là hoàn toàn xác định duy nhất

trong điều kiện cụ thể của vấn đề

• Sửa lại:

• 3.Chọn ra một môn học có nhiều đvht nhất

• 3.1 Nếu chỉ có một môn học nhiều đvht nhất: chọn một

• 3.2 Nếu có nhiều môn học cùng số đvht: sắp xếp tăng dần theo tên môn học trong thứ tự từ điển rối chọn môn đầu tiên.

Trang 7

Các khái niệm (6)

z Tính thực thi được:

• Hiển nhiên

• Chỉ xét trong điều kiện hiện tại của bài toán

• Cho ví dụ về điều kiện hiện tại:???

z Tính dừng:

• Không dừng: Lặp vô tận, bị quẫn

• Dễ vi phạm nhất

Trang 8

Các khái niệm (7)

z Tính dừng -Ví dụ:

• Tính tổng các số nguyên dương lẻ trong khoảng từ 1 đến n ta có thuật toán sau :

• B1 Hỏi giá trị của n

Trang 9

Các khái niệm (8)

z Tính dừng -Ví dụ:

• Chỉ dừng khi n chẵn

• Khi n lẻ phải thay B4 bằng:

• B4 Nếu i >= n+1 thì sang bước B8, ngược lại sang bước B5

z Tính đúng:

• Chứng minh thuật toán đúng!!!

• Khó đạt được nhất

Trang 11

Các khái niệm (10)

z Các đặc trưng khác của thuật toán

• Ðầu vào và đầu ra (input/output)

• Tính hiệu quả (effectiveness): theo tiêu chuẩn

• Khối lượng tính toán, không gian và thời gian thi hành

• Là yếu tố quyết định để đánh giá, chọn lựa

• Nhiều phương pháp để đánh giá tính hiệu quả của thuật toán

• Tính tổng quát (generalliness) :

• Áp dụng được cho mọi trường hợp của bài toán

Trang 13

Các khái niệm - Ví dụ (2)

• 3 Trường hợp a khác 0 thì

• 3.1 Tính giá trị D = b2-4ac

• 3.2 Nếu D > 0 thì

• 3.2.1 Phương trình có hai nghiệm phân biệt x1,x2

• 3.2.2 Giá trị của hai nghiệm được tính theo công thức

Trang 15

Các khái niệm - Ví dụ (4)

z Bài toán : Cho hai số nguyên dương a và b Tìm ước số chung lớn nhất của a và b

z Thuật toán Euclid

• 1 Yêu cầu cho biết giá trị của a, b.

• 2 a0 = a

• 3 b0 = b

• 4 i = 0

Trang 16

Các khái niệm - Ví dụ (5)

• 5 Nếu ai khác bi thì thực hiện các thao tác sau, ngược lại qua bước 7

Trang 17

Các phương pháp biểu diễn

z Thuật toán:

• Một phương pháp thể hiện lời giải bài toán

• Phải tuân theo một số quy tắc nhất định

z Có 3 phương pháp biểu diễn thuật toán :

Dùng ngôn ngữ tự nhiên

Dùng lưu đồ-sơ đồ khối (flowchart).

Dùng mã giả (pseudocode).

Trang 18

Ngôn ngữ tự nhiên

z Ngôn ngữ thường ngày:

• Liệt kê các bước của thuật toán, quá trình thực hiện lần lượt (trừ khi có yêu cầu nhảy_

• Không thể hiện rõ cấu trúc của thuật toán

• Dài dòng, có thể gây hiểu lầm hoặc khó hiểu

Không yêu cầu người viết hay đọc nắm quy tắc

• Không có một quy tắc cố định

• Tính dễ đọc:

• viết các bước con lùi vào bên phải

• đánh số bước theo quy tắc phân cấp như 1, 1.1,

Trang 19

Lưu đồ - sơ đồ khối (1)

z Công cụ trực quan diễn đạt thuật toán

• Biểu diễn bằng mô hình – hình vẽ

z Theo dõi được:

• sự phân cấp các trường hợp

• quá trình xử lý của thuật toán

z Được dùng trong những thuật toán

• rắc rối

Trang 20

Lưu đồ - sơ đồ khối (2)

z Phân biệt hai loại thao tác:

Chọn lựa theo một điều kiện nào đó

Xử lý, hành động

Trang 21

Lưu đồ - sơ đồ khối (3)

z Chọn lựa theo một điều kiện nào đó

Decision

• Biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện

Ví dụ: thao tác "nếu a = b thì thực hiện thao

tác B2, ngược lại thực hiện B4" là thao tác

chọn lựa

Trang 22

Lưu đồ - sơ đồ khối (4)

z Xử lý, hành động

Process

• Biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý

Ví dụ: "Chọn một môn học và in ra." là một

thao tác thuộc loại hành động

Trang 23

Lưu đồ - sơ đồ khối (5)

z Quá trình thực hiện các thao tác:

Đường đi – route

• Biểu diễn bằng cung có hướng

• nối giữa 2 thao tác: thực hiện lần lượt

Trang 24

Lưu đồ - sơ đồ khối (6)

z Thao tác chọn lựa: có thể có hai hướng đi

• một hướng ứng với điều kiện thỏa

• một hướng ứng với điều kiện không thỏa

• 2 cung có nhãn

• Đ/Đúng,Y/Yes

• S/Sai,N/No

Trang 25

Lưu đồ - sơ đồ khối (7)

z Ðiểm cuối (terminator)

• Biểu diễn bằng hình ovan

• Điểm khởi đầu

• chỉ có cung đi ra

• bên trong ovan ghi chữ: bắt đầu/start/begin

• Điểm kết thúc

• Chỉ có cung đi vào

• bên trong ovan ghi chữ: kết thúc/end

Trang 26

Phương trình thuật toán giải pt bậc 2 Đường chấm ứng với trường hợp nghiệm kép, ví dụ: a=1,b=2,c=1

Trang 27

Lưu đồ - sơ đồ khối (8)

z Điểm nối (connector)

• Nối các phần khác nhau của

Trang 28

Mã giả (pseudo code) (1)

z Vay mượn các cú pháp của một ngôn ngữ lập

trình

• dùng một phần ngôn ngữ tự nhiên

• bị phụ thuộc vào ngôn ngữ lập trình.

z Mọi ngôn ngữ lập trình đều có những thao tác

Trang 29

Mã giả (2)

Một đoạn mã giả của thuật toán giải pt bậc hai

if Delta > 0 then begin

Ngày đăng: 29/03/2024, 23:14