Tin học đại cươngttdungit.files.wordpress.com/2018/08/chuong-3-vb.pdf · 2018. 8. 29. ·...

Preview:

Citation preview

TIN HỌC ĐẠI CƯƠNGChương 3: THUẬT TOÁN

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

2ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

3ttdung@utc2.edu.vn

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

Thuật toán là một tập hữu hạn các bước, các phép toán cơ bản

được sắp xếp theo một trình tự nhất định để từ thông tin đầu vào của

bài toán sau một tập hữu hạn các bước đó sẽ đạt được kết quả ở

đầu ra như mong muốn.

Input Algorithm Output

4ttdung@utc2.edu.vn

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

Thông thường, thuật toán dùng để giải một lớp các bài toán cụ thế.

Gồm 2 thành phần chính:

• Input : Thông tin bài toán đã cho

• Output : Thông tin cần tìm hoặc trả lời câu hỏi cần thiết

Ví dụ:

S = a *b

5ttdung@utc2.edu.vn

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

Ví dụ : Giải phương trình bậc nhất P(x): ax + b = 0, (a, b là các số

thực)

• Input : a, b

• Output : Kết quả P(x)

o Mô tả thuật toán:

Nếu a = 0

Nếu b = 0 thì P(x) có nghiệm bất kì

Nếu b <> 0 thì P(x) vô nghiệm

Nếu a <> 0

P(x) có duy nhất một nghiệm x = -b/a6ttdung@utc2.edu.vn

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

Ví dụ 2 : Kiểm tra một số nguyên X có chia hết cho 5 không ?

• Input : X

• Output : Kết quả kiểm tra Result

o Mô tả thuật toán:

o Bước 1: Tìm số dư r của phép chia x cho 5

o Bước 2: Kiểm tra Nếu r = 0 thì result = True

Nếu r <> 0 thì result = False

7ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

8ttdung@utc2.edu.vn

2. Tính chất của thuật toán

Tính dừng

Tính xác định

Tính đúng

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

Tính hiệu quả

Tính tổng quát

9ttdung@utc2.edu.vn

2. Tính chất của thuật toán

■ Tính dừng : Thuật toán phải bao đảm được kết thúc sau một số

hữu hạn bước.

■ Tính dừng là tính dễ bị vi phạm, thường là do sai sót khi trình bày

thuật toán dẫn đến “Lặp vô tận”.

10ttdung@utc2.edu.vn

2. Tính chất của thuật toán

Thuật toán phải có tính xác định: các bước trong thuật toán phải

được xác định rõ ràng, có thể thực thi được, không gây mập mờ,

nhập nhằng, tùy chọn.

Thuật toán phải có Tính đúng đắn: để đảm bảo kết quả tính toán

hay các thao tác mà máy tính thực hiện được là chính xác.

Trong một kỳ thi kiểm tra không phải tất cả các học sinh điều đưa

ra được lời giải “đúng”.

Khi thiết kế thuật toán cần kiểm nghiệm và chỉnh sửa nhiều lần để

có được một thuật toán đúng.11ttdung@utc2.edu.vn

2. Tính chất của thuật toán

o Ðầu vào và đầu ra (input/output): Mọi thuật toán đều có đại

lượng vào và ra.

o Tính hiệu quả: Một bài toán có thể có nhiều thuật toán khác nhau

để giải, một thuật toán tốt thì nó phải hiệu quả, tính hiệu quả của

thuật toán được đánh giá dựa trên một số tiêu chuẩn như khối

lượng tính toán, không gian và thời gian khi thuật toán được thi

hành.

o Tính tổng quát: Thuật toán có tính tổng quát là thuật toán phải áp

dụng được cho mọi trường hợp của bài toán chứ không phải chỉ

áp dụng được cho một số trường hợp riêng lẻ nào đó.

12ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

13ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Sơ đồ khốiLiệt kê

Mã giả

14ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Phương pháp liệt kê

o Tại mỗi bước sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải

làm.

o Các bước được đánh số thứ tự, bước có số thứ tự nhỏ hơn được

thực hiện trước.

o Ưu điểm: Dễ hiểu, dễ thực hiện.

o Khuyết điểm: Phụ thuộc cách trình bày của người thiết kế, khó áp dụng

cho những thuật toán có tính phức tạp.

15ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Ví dụ : Giải phương trình bậc nhất P(x): ax +b = 0:■ Input: a,b

■ Output: Kết quả giải phương trình.

■ Bước 1: Nhập vào 2 số thực a, b

■ Bước 2: Kiểm tra nếu a = 0 thực hiện:

■ Bước 2.1: Nếu b = 0 thì phương trình vô số nghiệm

■ Bước 2.2: Nếu b <> 0 thì phương trình vô nghiệm

■ Bước 3: Khi a <> 0 phương trình có nghiệm x=-b/a

■ Bước 4: Kết thúc thuật toán

16ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Phương pháp sơ đồ khối

o Sử dụng các hình khối để biểu diễn các lệnh hay thao tác.

o Sử dụng mũi tên để biểu diễn thứ tự thực hiện.

o Ưu điểm: Diễn đạt khoa học, có tính nhất quán, dễ hiểu và dễ kiểm tra.

o Khuyết điểm: Phải vẽ nhiều hình, cồng kềnh, không phù hợp với các

thuật toán phức tạp.

17ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Hình Ý nghĩa

Bắt đầu thuật toán

Kết thúc thuật toán

Nhập dữ liệu

Xuất dữ liệu

Begin

End

Input

Output

18ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toánHình Ý nghĩa

Câu lệnh rẽ nhánh

- Nếu đúng thì thực hiện nhánh Đ

- Nếu sai thì thực hiện nhánh S

Biểu diễn thực hiện công việc A

Biểu diễn việc gọi chương trình con A

Hướng của thuật toán

End

Biểu thức

Đ

S

A

A

19ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

20ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

21ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Phương pháp mã giả

o Dựa trên các ngôn ngữ bậc cao (Pascal, C...)

o Sử dụng ngôn ngữ tự nhiên con người

o Ưu điểm: Tương tự ngôn ngôn ngữ lập trình và ngôn ngữ tự nhiên,

chuyển từ thuật toán sang chương trình dễ dàng.

o Khuyết điểm: Viết như cách biểu diễn liệt kê, khó bao quát với những

bài toán nhiều chương trình. Phải làm quen với những ngôn ngữ mới.

22ttdung@utc2.edu.vn

3. Các cách biểu diễn của thuật toán

Ví dụ: Tính tổng n số tự nhiên đầu tiên

Nhập n

■ i:=0

■ s:=0

■ REPEAT

s=s+i;

i=i+1;

■ UNTIL (i>n)

■ Xuất s

23ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

24ttdung@utc2.edu.vn

3. Các cấu trúc cơ bản của thuật toán

Rẽ nhánhTuần tự

Lặp

25ttdung@utc2.edu.vn

4. Các cấu trúc cơ bản của thuật toán

Cấu trúc tuần tự:

• Gồm nhiều bước, sắp xếp theo trình tự nhất định, chương trình

được thực hiện theo các bước đã tạo sẵn.

• Trong biểu diễn thuật toán bằng phương pháp liệt kê từng bước

cấu trúc tuần tự được thể hiện ở việc mô tả cụ thể bước thứ i thực

hiện: Bước 1, Bước 2, Bước 2.1, …..

• Khi dùng sơ đồ khối ta sử dụng để biểu diễn thứ tự

thực hiện của thuật toán.

26ttdung@utc2.edu.vn

4. Các cấu trúc cơ bản của thuật toán

Cấu trúc rẽ nhánh:

o Là cấu trúc kiểm tra một điều kiện, khi điều kiện đúng chương trình

sẽ thực hiện theo nhánh đúng, khi điều kiện sai chương trình sẽ

thực hiện theo nhánh sai.

27ttdung@utc2.edu.vn

4. Các cấu trúc cơ bản của thuật toán

Cấu trúc lặp:

o Là cấu trúc lặp đi lặp lại một hành động nhiều lần:

o Số lần lặp xác định trước.

o Số lần lặp không xác định trước.

28ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

29ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

■ Tính chu vi và diện tích hình tròn

■ Cho 3 số a,b,c. In ra màn hình 3 số sau khi đã cộng thêm 1

■ Nhập n. Nếu n>0, in ra màn hình n sau khi bình phương

■ Tính tổng dãy số p = 1+2+3+...+n

■ Tính tích dãy số p = 1x2x3x...xn

■ Tìm n min thỏa mãn S = 1 + ½ + 1/3 + ... + 1/n >= 3

30ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

Kiểm tra xem N có phải là 1 số nguyên tố không ?

Ý tưởng :

- Nếu N=1 -> N không là số nguyên tố

- Nếu 1<N>4 -> N là số nguyên tố

- Nếu N >= 4 : Tìm ước i > 1 của N

+ Nếu i <N -> N không phải số nguyên tố ( vì N có ít nhất 3 ước

N, i, 1)

+ Nếu i=N -> N là số nguyên tố

31ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng dãy số

o Tính tích dãy số

o Tìm kiếm một số có trong dãy hay không

o Đếm số lượng phần tử thỏa mãn điều kiện

o Tìm giá trị max, min

o Sắp xếp tăng, giảm dãy số

32ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Hãy tính tổng ra dãy số trên

o Ý tưởng:

- Sử dụng một biến để tính tổng các phần tử. Ban đầu biến này bằng 0.

- Duyệt từng phần tử và cộng phần tử vào biến tổng.

33ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

34ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Hãy tính tích ra dãy số trên

o Ý tưởng: tương tự như thuật toán tính tổng

- Sử dụng một biến để tính tích các phần tử. Ban đầu biến này bằng 1

(nếu biến ban đầu bằng 0 thí tích sẽ bằng 0 sai).

- Duyệt từng phần tử và nhân phần tử vào biến tích.

35ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Kiểm tra số X có nằm trên

dãy trên hay không ?

o Ý tưởng:

■ Sử dụng một biến để đánh đánh dấu xem có tìm thấy phần tử X hay

không. Ban đầu biến đánh dấu có giá trị là FALSE.

■ Duyệt từng phần tử, nếu phần tử thứ i có giá trị bằng X thì gán biến

đánh dấu là TRUE.

36ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

37ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Đếm xem trong dãy có bao

nhiêu phần tử thỏa mãn điều kiện nào đó.

o Ý tưởng:

■ Sử dụng một biến đếm số lượng phần tử

■ Duyệt từng phần tử.

■ Kiểm tra phần tử đó có thỏa điều kiện hay không, nếu thỏa điều kiện

thì tăng biến đếm lên 1.

38ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

39ttdung@utc2.edu.vn

4. Một số thuật toán cơ bảnĐếm số chẵn

40ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Tìm phần tử Max – Min

trong dãy số.

o Ý tưởng:

■ Sử dụng một biến lưu giá trị max (min), ban đầu max = a1

■ Duyệt từng phần tử.

■ Kiểm tra phần tử đó có lớn hơn biến giá trị max (nhỏ hơn giá trị min)

nếu thỏa điều kiện biến max bằng phần tử đó.

41ttdung@utc2.edu.vn

4. Một số thuật toán cơ bảnTìm max

42ttdung@utc2.edu.vn

4. Một số thuật toán cơ bản

o Tính tổng: Cho dãy n phần tử a1,a2,a3....an Sắp xếp dãy số tăng giảm

o Ý tưởng:

- Duyệt từng phần tử:

- Phần tử đang duyệt được gọi là phần tử hiện tại

- Thực hiện một vòng lặp con, duyệt các phần tử còn lại. Nếu giá trị

của phần tử được duyệt trong vòng lặp con bé hơn phần tử hiện tại

thực hiện việc đổi chỗ 2 phần tử.

43ttdung@utc2.edu.vn

4. Một số thuật toán cơ bảnTăng dần

44ttdung@utc2.edu.vn

Nội dung

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

2. Tính chất của thuật toán

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

4. Cấu trúc cơ bản của thuật toán

5. Một số thuật toán cơ bản

6. Bài tập

45ttdung@utc2.edu.vn

5. Bài tập1. Vẽ sơ đồ khối biểu diễn thuật toán tính trung bình cộng dãy

số a1,a2,a3,….,an

2. Vẽ sơ đồ thuật toán kiểm tra xem số N có phải là số nguyên tố hay

không?

3. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , sắp

xếp và in ra màn hình dãy số tăng dần.

4. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , in

ra màn hình dãy số theo chiều ngược lại.

5. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an ,

xuất ra màn hình 3 số âm lớn nhất trong dãy.

6. Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , tìm

và in ra màn hình số xuất hiện nhiều lần nhất trong dãy trên.46ttdung@utc2.edu.vn

Recommended