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

Bài 4. Bài toán và thuật toán

65 720 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

Định dạng
Số trang 65
Dung lượng 5,96 MB

Nội dung

Khái niệm bài toán Trong TIN HỌC Trong TOÁN HỌC Yêu cầu 1 và 4 được xem là bài toán Tất cả các yêu cầu trên đều được xem là bài toán nào được xem như là một bài toán?... Các yếu tố cầ

Trang 1

Tiết 10

Chương I Một số khái niệm cơ bản

của tin học

Trang 2

Xét các yêu cầu sau :

1. Giải phương trình bậc hai ax2+bx+c=0

3. Quản lý các cán bộ trong một cơ quan.

4. Tìm ước chung lớn nhất của hai số nguyên

dương a và b.

5. Xếp loại học tập các học sinh trong lớp.

1 Khái niệm bài

toán

Trong TIN HỌC Trong TOÁN HỌC

Yêu cầu 1 và 4 được

xem là bài toán

Tất cả các yêu cầu trên

đều được xem là bài toán

nào được xem như là một bài toán?

Trang 3

Khái niệm bài toán trong

Tin học?

Trong phạm vi tin học, Bài toán là

việc nào đó ta muốn máy tính thực hiện.

Trang 4

TIN HỌC

Đưa vào máy thông tin gì

Cần lấy ra thông tin gì

TOÁN HỌC?

Các yếu tố cần quan tâm

khi giải một bài toán

 Trong Tin học, để phát biểu một bài toán, ta cần

trình bày rõ Input và Output của bài toán đó.

Trang 5

CÁC VÍ DỤ

Trang 6

VD3 : Tìm ước chung lớn nhất của hai

Trang 7

Nêu một bài toán và

chỉ rõ Input, Output

của bài toán đó?

Xem thêm các ví dụ trong SGK/32

Trang 8

TÓM LẠI

Một bài toán được cấu tạo bởi 2 thành phần cơ

bản :

Input (Các thông tin đã có)

Output (Các thông tin cần tìm từ Input)

Trang 9

2 Thuật toán

Hướng dẫn các thao tác cho máy

thực hiện để tìm ra lời giải

Bài toán

Giải bài toán

Thuật toán

Trang 10

Input THUẬT TOÁN Output

(Thao tác 1Thao tác 2 Thao tác n)

Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm.

BÀI TOÁN

Thuật toán để giải một bài toán là :

Một dãy hữu hạn các thao tác.

Các thao tác được sắp xếp theo một trình tự xác định.

Sau khi thực hiện dãy thao tác đó, từ Input ta tìm được Output của bài toán.

a Thuật toán là gì ?

Trang 11

• Bước 3 : Gán cho x giá trị -b/a, rồi qua bước 4.

• Bước 4 : Đưa ra kết quả

x và kết thúc.

Tìm nghiệm phương trình bậc nhất tổng quát

ax + b = 0 ()

Trang 12

: Thể hiện các thao tác so sánh

DÙNG SƠ ĐỒ KHỐI

Trong sơ đồ khối, người ta dùng một số biểu

tượng thể hiện các thao tác như :

: Thể hiện các phép toán

: Quy định trình tự thực hiện các

thao tác : Thể hiện các thao tác nhập, xuất

dữ liệu

Trang 13

x = -b/a

Sai

Đú ng

Đưa ra x và kết thúc

• Bước 1 : Nhập a, b.

• Bước 2 : Nếu a = 0 thì

quay lại bước 1, ngược

lại thì qua bước 3.

Trang 14

Sau một thao tác thì hoặc kết thúc hoặc

có đúng một thao tác để thực hiện tiếp theo.

Thuật toán phải kết thúc sau một số hữu hạn bước.

Thuật toán kết thúc phải nhận được output

TÍnh đúng đắn

Tính chất

Trang 15

Tiết 11, 12

Chương I Một số khái niệm cơ bản

của tin học

Trang 16

NỘI DUNG BÀI HỌC

1.Khái niệm bài toán

2.Khái niệm thuật toán

a VD 1 : Kiểm tra tính nguyên tố của một số nguyên

dương

3.Một số ví dụ về thuật toán

Trang 17

KIỂM TRA TÍNH NGUYÊN TỐ CỦA 1

Trang 18

XÁC ĐỊNH BÀI TOÁN

Nhắc lại :

*INPUT và OUTPUT là gì?

+ Input: là các thông tin đã có (giả thiết)

+ Output: là các thông tin cần tìm dựa vào

các thông tin có từ Input (kết luận)

Trang 19

XÁC ĐỊNH BÀI TOÁN

BÀI TOÁN :

Kiểm tra tính nguyên tố của một số nguyên

dương N.

+ Input: ? Nhập số nguyên dương N.

+ Output: ? “N là một số nguyên tố” hoặc “ N

không phải là một số nguyên tố”.

Trang 20

XÁC ĐỊNH BÀI TOÁN

Nhắc về số nguyên tố:

Một số là số nguyên tố nếu nó khác nhau

Trang 21

Quay lại bài toán :

Input : Nhập số nguyên dương N.

Output : “N là số nguyên tố” hoặc “N không là số nguyên tố.”

Nội dung bài toán :

Trang 23

Ý TƯỞNG

thì sao ? Thông thường:

Người ta xét xem N có ước từ 2 đến [ ] hay không ? (xét lần lượt từ trái sang phải )

Nếu có thì N không là số nguyên

tố và ngược lại.

N

Trang 24

Ý TƯỞNG

TÓM LẠI Ý TƯỞNG CỦA BÀI TOÁN

TÓM LẠI Ý TƯỞNG CỦA BÀI TOÁN

Nhập số nguyên dương N nếu :

N = 1 thì N không là số nguyên tố.

N thuộc khoảng 1< N <4 thì N là số nguyên tố.

N ≥ 4 và N không có ước trong đoạn từ 2 đến

phần nguyên căn bậc hai của N ( ký hiệu là

[ ] ) thì N là số nguyên tố N

Trang 25

Bước 5: Nếu i> [ V N ] thì

thông báo N là nguyên tố

rồi kết thúc.

Bước 6: Nếu N chia hết

cho i thì thông báo N

không nguyên tố rồi kết

N < 4 ?

i >[ ] ?

N chia hết

cho i ?

Thông báo N là số

nguyên tố rồi kết thúc

Thông báo N không

là số nguyên

tố rồi kết thúc

Đúng Sai

N

Trang 26

Đúng Sai

Đúng Sai

a

b c

d e

f g

Trang 27

NỘI DUNG BÀI HỌC

1.Khái niệm bài toán

2.Khái niệm thuật toán.

3.Một số ví dụ về thuật toán.

b Ví dụ 2 : Bài toán sắp xếp: Sắp xếp bằng tráo đổi

(Exchange Sort)

Trang 28

Mô tả bài toán

Cho dãy A gồm N số nguyên a1,a2,

…,aN Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm

Ví dụ: Dãy A gồm các phần tử 5, 6, 8, 2, 4,

7 ta sẽ sắp lại thành 2, 4, 5, 6, 7, 8.

Trang 30

Thuật toán sắp xếp bằng tráo đổi (Exchange Sort):

Trang 31

Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong

dãy, nếu số trước lớn hơn số sau ta đổi chỗ chúng cho nhau Việc đó được lặp lại cho đến khi không

có đổi chỗ nào xảy ra nữa

Trang 32

NHẬN XÉT

Sau mỗi lần đổi chỗ, giá trị lớn nhất sẽ

chuyển dần về cuối

Sau mỗi lượt có ít nhất một số hạng xếp

đúng và không tham gia vào quá trình đổi

chỗ nữa

Trang 33

LIỆT KÊ:

 Bước 1: Nhập N, các số hạng a1, a2, a3,…,aN ( N>0)

 Bước 2: M  N;

 Bước 3: Nếu M < 2 thì đưa ra dãy A đã

được sắp xếp rồi kết thúc;  Bước 4: M  M – 1, i  0;

 Bước 5: i  i + 1;

 Bước 6: Nếu i > M thì quay lại bước 3;

 Bước 7: Nếu ai> ai+1 thì đổi chỗ ai

và a  Bước 8: quay lại bước 5.i+1;

Trang 34

M giảm dần sau mỗi

lượt Sau mỗi lượt

Trang 35

Nội dung bài học

Khái niệm bài toán

Khái niệm thuật toán Một số ví dụ về thuật toán

a. Ví dụ 1: Kiểm tra tính nguyên tố của một

Trang 36

Kiểm tra bài cũ

N = 27

N = 1 ? Nhập N

N < 4 ?

i >[ ] ?

N chia hết

cho i ?

Thông báo N là số

nguyên tố rồi kết thúc

Thông báo N

không

là số nguyên

tố rồi kết thúc

Đúng

Sai

N

Phân tích tính dừng của thuật toán?

Trang 37

Tiết 13

Chương I Một số khái niệm cơ bản

của tin học

Trang 38

5 >< 6 < > 8 > < 2 > < 4 > 7

THÀNH CÔNG!

Sắp xếp bằng tráo đổi

Hãy tìm vị trí của phần tử

có giá trị là 7

Tìm thấy phần tử có giá

trị là 7 ở vị trí thứ 5

Trang 39

Ví dụ:

TÌM 1 QUYỂN SÁCH TRONG 50 QUYỂN???

Trang 40

Ví dụ:

THÌ SAO

Trang 41

Một số công việc tìm kiếm

Tìm một quyển sách trên kệ

sách;

Tìm 1 từ trong cuốn từ điển;

Tìm 1 học sinh trong danh

sách lớp nào đó;

Trang 42

Bài toán tìm kiếm

TÌM KIẾM NHỊ PHÂN

TÌM KIẾM

TUẦN TỰ

C Ó 2 THUẬT TOÁN

Trang 43

Nội dung bài học

Khái niệm bài toán

Khái niệm thuật toán Một số ví dụ về thuật toán

a. Ví dụ 1: Kiểm tra tính nguyên tố của một

Trang 44

Mô tả bài toán:

Với i = 5 thì a5 = 9 9

Trang 45

Xác định bài toán:

Dãy A gồm N số nguyên khác nhau: a1,a2, ,aN và số nguyên k;

Chỉ số i sao cho ai =k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.

Trang 46

Ý TƯỞNG Tìm kiếm tuần tự được

có số hạng nào có giá trị bằng k, kết thúc

B6: Quay lại bước 3.

Thuật toán tìm kiếm tuần

tự

Trang 47

B6: Quay lại bước 3

Thuật toán tìm kiếm tuần

Trang 48

Minh họa thuật toán với N = 5, k= 6SƠ ĐỒ KHỐI

Trang 50

Tiết 14

Chương I Một số khái niệm cơ bản

của tin học

Trang 51

Nội dung bài học

Trang 53

Xác định bài toán:

Hai số nguyên dương

A và B;

Ước chung lớn nhất của A và B.

Trang 54

B2: Nếu A=B thì lấy giá trị

chung này làm ƯCLN rồi

chuyển đến bước 5;

B3: Nếu A>B thì AA - B,

ngược lại B B - A

B4: Quay lại bước 2;

B5: Đưa ra kết quả ƯCLN

Trang 55

Minh họa thuật toán với A =54, B=90

Trang 57

Minh họa thuật toán với A=20, B=30

Trang 58

Tiết 15

Chương I Một số khái niệm cơ bản

của tin học

Trang 59

Thuật toán tìm kiếm nhị phân (Binary

Search)

Trang 60

Xác định bài toán:

Dãy A gồm N số nguyên a1,a2, ,aN khác nhau

và số nguyên k;

Chỉ số i sao cho ai =k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.

Trang 61

Nếu a Giua > k thì xét dãy

mới a 1 , a Giua-1;

Nếu a Giua < k thì xét dãy

mới a Giua+1 ,…, a N;

B1: Nhập N, các số hạng a 1 , , a N

và khoá k;

B2: Dau ← 1, Cuoi ← N;

B3: Giua ← [ (Dau + Cuoi)/2];

B4 : Nếu a Giua = k thì thông báo

chỉ số Giua, rồi kết thúc;

B5: Nếu a Giua > k thì đặt Cuoi

=Giua +1, rồi chuyển đến B 7;

B6: Dau ← Giua +1;

B7: Nếu Dau > Cuoi thì thông báo

dãy A không có số cần tìm, rồi kết thúc;

B8: Quay lại B 3;

Thuật toán tìm kiếm nhị

Trang 62

Thuật toán tìm kiếm nhị

B3: Giua ← [ (Dau + Cuoi)/2];

B4 : Nếu a Giua = k thì thông báo

chỉ số Giua, rồi kết thúc;

B5: Nếu a Giua > k thì đặt Cuoi

=Giua -1, rồi chuyển đến B

7;

B6: Dau ← Giua +1;

B7: Nếu Dau > Cuoi thì thông

báo dãy A không có số cần

Trang 63

Minh họa thuật toán

Ngày đăng: 21/09/2017, 10:16

TỪ KHÓA LIÊN QUAN

w