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

Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọc

30 21 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 đề Giải quyết bài toán bằng máy tính
Tác giả Nguyễn Bá Ngọc
Trường học Trường Đại Học
Chuyên ngành Tin học đại cương
Thể loại Bài giảng
Định dạng
Số trang 30
Dung lượng 262 KB

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

Nội dung

Nối tiếp phần 1 bộ bài giảng Tin học đại cương mời các bạn cùng tìm hiểu phần 2 (Chương 1) với các nội dung chính như: Giải quyết bài toán bằng máy tính: Khái niệm về bài toán; quá trình giải quyết bài toán bằng máy tính; các phương pháp giải quyết bài toán bằng máy tính; phân loại bài toán;...

Trang 1

IT1110 Tin học đại cương

Phần II Giải quyết bài toán

Nguyễn Bá Ngọc

Trang 2

Ôn tập nội dung phần I

Trang 3

Nội dung phần II

 Chương 1: Giải quyết bài toán bằng máy tính

 Khái niệm về bài toán

 Quá trình giải quyết bài toán bằng máy tính

 Các phương pháp giải quyết bài toán bằng máy tính

 Phân loại bài toán

 Chương 2: Thuật toán

 Định nghĩa thuật toán

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

 Một số thuật toán thông dụng

 Thuật toán đệ quy

 Thuật giải heuristic

Trang 4

Nội dung phần II

 Chương 1: Giải quyết bài toán bằng máy tính

 Khái niệm về bài toán

 Quá trình giải quyết bài toán bằng máy tính

 Các phương pháp giải quyết bài toán bằng máy tính

 Phân loại bài toán

 Định nghĩa thuật toán

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

 Một số thuật toán thông dụng

 Thuật toán đệ quy

 Thuật giải heuristic

Trang 5

1.1 Khái niệm về vấn đề và bài toán

 Vấn đề rộng hơn bài toán?

 Pitago chia vấn đề ra:

 Theorema là vấn đề cần được khẳng định sai

đúng- Problema là vấn đề cần tìm giải pháp để đạt được một mục tiêu xác định từ những điều kiện ban

Trang 6

1.2 Các bước giải quyết bài toán

bằng máy tính

thuật giải

Trang 7

1.3 Các phương pháp giải quyết vấn

đề bằng máy tính

 Giải quyết vấn đề theo hướng xác định trực

tiếp lời giải

 xác định trực tiếp lời giải qua thủ tục tính toán

hoặc thủ tục bao gồm một số hữu hạn các thao tác

Trang 8

1.4 Phân loại bài toán

Trang 9

Nội dung phần II

 Khái niệm về bài toán

 Quá trình giải quyết bài toán bằng máy tính

 Các phương pháp giải quyết bài toán bằng máy tính

 Phân loại bài toán

 Chương 2: Thuật toán

 Định nghĩa thuật toán

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

 Một số thuật toán thông dụng

 Thuật toán đệ quy

 Thuật giải heuristic

Trang 10

2.1 Định nghĩa thuật toán

và tin học.

thị rõ ràng và có thể thi hành được để hướng dẫn thực hiện một hành động

nhằm đạt được mục tiêu đề ra.

phương pháp để giải quyết một vấn

đề.

Trang 11

Ví dụ 1: Thuật toán tìm phần tử lớn nhất của một dãy hữu hạn các số

 3 Lặp lại bước 2 nếu còn số nguyên trong dãy

chưa được xét

 4 Dừng nếu không còn số nguyên nào trong dãy chưa được xét Giá trị lớn nhất tạm thời lúc này chính là giá trị lớn nhất trong dãy số

Trang 12

Ví dụ 2: Thuật toán giải phương trình bậc hai: ax2 + bx + c = 0 (a ≠ 0)

Trang 13

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

 Nhập (input): có các giá trị nhập từ một tập hợp nhất định

 Xuất (output): từ mỗi giá trị của tập hợp nhập, tạo

ra giá trị xuất thuộc một tập hợp nhất định

 Tính tổng quát (generaliness): áp dụng được cho tất cả các bài toán có dạng như mong muốn

Trang 14

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

 Ngôn ngữ tự nhiên

 Ngôn ngữ lưu đồ (sơ đồ khối)

 Ngôn ngữ tựa ngôn ngữ lập trình (mã giả)

 Ngôn ngữ lập trình

Trang 15

Ngôn ngữ lưu đồ

có ghi chữ bên trong, gồm có nút đầu và nút cuối:

Trang 16

Ngôn ngữ lưu đồ (2)

cần kiểm tra, thường có 1 cung đi vào và 2 cung đi

ra (tương ứng với 2 trường hợp đúng/sai)

a<b SaiĐúng

 Cung: là đường nối từ nút này đến nút khác của lưu đồ

Trang 17

Ví dụ: lưu đồ biểu diễn thuật toán

Xuất: phương trình

có 2 nghiệm x1, x2

Xuất: phương trình

có nghiệm kép x

Xuấtphương trình vô nghiệm

Xuất: : Không

phải

phương trình

bậc 2

Trang 19

Mã giả (2)

 Các cấu trúc thường gặp:

 Cấu trúc chọn:

 if (điều kiện) then (hành động) end if

 if (điều kiện) then (hành động 1) else (hành động 2)

end if

 Cấu trúc lặp

 while (điều kiện) do (hành động) end while

 repeat (hành động) until (điều kiện)

 for (biến)=(giá trị đầu) to (giá trị cuối) do (hành động) end for

 for (biến)=(giá trị cuối) downto (giá trị đầu) do (hành động) end for

 Cấu trúc nhảy

 goto nhãn x;

Trang 20

Ví dụ: thuật toán giải phương trình

 else if delta = 0 then x12  -b/(2*a), Xuất: nghiệm kép x12

 else Xuất: phương trình vô nghiệm

Trang 21

2.3 Một số thuật toán thông

dụng

Trang 22

Tìm phần tử lớn nhất trong một dãy hữu hạn số

Nhập: dãy số a[1], a[2], a[3],… a[n]

Xuất: max là giá trị lớn nhất trong dãy số đã cho

Trang 23

2.4 Thuật toán đệ quy

 Có một số trường hợp, cách giải có thể vi phạm các tính chất của thuật toán nhưng lại khá đơn giản và được chấp nhận.

 Bài toán có thể được phân tích và đưa tới việc giải một bài toán cùng loại nhưng cấp độ thấp hơn.

Trang 24

Thuật toán đệ quy (2)

Trang 25

Thuật toán đệ quy (3)

của dãy số Fibonacci:

Trang 26

Thuật toán đệ quy (4)

 Có 1 trường hợp cơ sở/trường hợp dừng

 Có phần đệ quy bên trong thuật toán (nó gọi đến chính nó)

 Có sự biến đổi tiến tới trường hợp cơ sở.

Trang 27

trong một dãy số hữu hạn

Trang 28

2.5 Thuật giải heuristic

chưa chắc đã tốt nhất)

giải thuật tối ưu

nhiên, gần gũi với suy nghĩ và hành

động của con người.

Trang 29

Thuật giải heuristic (2)

của từng bước trong quá trình tìm kiếm lời giải

 Nguyên lý thứ tự: thực hiện hành động theo thứ

tự hợp lý của không gian khảo sát nhằm nhanh chóng đạt được một lời giải tốt

Ngày đăng: 08/05/2021, 11:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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