Networks Business Online Việt Nam & International VH2

#1 Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán – Món Miền Trung

Đăng ngày 04 July, 2022 bởi admin

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

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

a, Khái niệm

– Bài toán là một việc nào đó mà con người muốn máy tính triển khai
– Các yếu tố của một bài toán :

+ Input: Thông tin đã biết, thông tin đưa vào máy tính

+ Output : tin tức cần tìm, thông tin lấy ra từ máy tính

b. Ví dụ

+ Tìm USCLN của 2 số nguyên dương
+ Tìm số lớn nhất trong 3 số nguyên dương a, b, c
+ Tìm nghiệm của phương trình bậc nhất : ax + b = 0 ( a ≠ 0 )
+ …

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

a. Khái niệm

Thuật toán để giải một bài toán là :
+ Một dãy hữu hạn những thao tác ( tính dừng )
+ Các thao tác được thực thi theo một trình tự xác lập ( tính xác lập )
+ Sau khi thực thi xong dãy những thao tác đó ta nhận được Output của bài toán ( tính đúng đắn )

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

Có 2 cách để trình diễn thuật toán :
– Cách dùng giải pháp liệt kê : Nêu ra tuần tự những thao tác cần thực thi
+ Ví dụ : Cho bài toán Tìm nghiệm của phương trình bậc 2 : ax2 + bx + c = 0 ( a ≠ 0 ) ?
+ Xác định bài toán
Input : Các số thực a, b, c
Output : Các số thực x thỏa mãn nhu cầu ax2 + bx + c = 0 ( a ≠ 0 )
+ Thuật toán :
Bước 1 : Nhập a, b, c ( a ≠ 0 )
Bước 2 : Tính Δ = b2 – 4 ac
Bước 3 : Nếu Δ > 0 thì phương trình có 2 nghiệm là
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 1)
Bước 4 : Nếu Δ = 0 thì phương trình có nghiệm kép
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 2)
rồi kết thúc thuật toán. Nếu không chuyển sang bước tiếp theo
Bước 5 : Kết luận phương trình vô nghiệm rồi kết thúc
– Cách dùng sơ đồ khối
+ Hình thoi : biểu lộ thao tác so sánh ;
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 3)
+ Hình chữ nhật : bộc lộ những phép tính toán ;
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 4)
+ Hình ô van : biểu lộ thao tác nhập, xuất dữ liệu ;
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 5)
+ Các mũi tên : qui định trình tự triển khai những thao tác .
Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 6)

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

Bài toán 1: Kiểm tra tính nguyên tố

1. Xác định bài toán
– Input : N là một số ít nguyên dương
– Output :
+ N là số nguyên tố hoặc
+ N không là số nguyên tố
– Định nghĩa : “ Một số nguyên dương N là số nguyên tố nếu nó chỉ có đúng hai ước là 1 và N ”
– Tính chất :
+ Nếu N = 1 thì N không là số nguyên tố
+ Nếu 1 < N < 4 thì N là số nguyên tố 2. Ý tưởng – N < 4 : Xem như bài toán đã được xử lý – N ≥ 4 : Tìm ước i tiên phong > 1 của N
+ Nếu i < N thì N không là số nguyên tố ( vì N có tối thiểu 3 ước 1, i, N ) + Nếu i = N thì N là số nguyên tố 3. Xây dựng thuật toán a ) Cách liệt kê Bước 1 : Nhập số nguyên dương N Bước 2 : Nếu N = 1 thì thông tin “ N không là số nguyên tố ”, kết thúc ; Bước 3 : Nếu N < 4 thì thông tin “ N là số nguyên tố ”, kết thúc ; Bước 4 : i ← 2 ; Bước 5 : Nếu i là ước của N thì đến bước 7 Bước 6 : i ← i + 1 rồi quay lại bước 5 ; ( tăng i lên 1 đơn vị chức năng ) Bước 7 : Nếu i = N thì thông tin “ N là số nguyên tố ”, ngược lại thì thông tin “ N không là số nguyên tố ”, kết thúc ; b ) Sơ đồ khối

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 7)

Hình 1. Sơ đồ khối thuật toán kiểm tra tính nguyên tố của một số nguyên dương N​

Lưu ý : Nếu N ≥ 4 và không có ước trong khoanh vùng phạm vi từ 2 đến phần nguyên căn bậc 2 của N thì N là số nguyên tố

Bài toán 2: Sắp xếp bằng cách tráo đổi

1. Xác định bài toán
– Input : Dãy A gồm N số nguyên a1, a2, …, an
Ví dụ : Dãy A gồm những số nguyên : 2 4 8 7 1 5
– Output : Dãy A được sắp xếp thành dãy không giảm
Dãy A sau khi sắp xếp : 1 2 4 5 7 8
2. Ý tưởng

– Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước > số sau ta đổi chỗ chúng cho nhau. (Các số lớn sẽ được đẩy dần về vị trí xác định cuối dãy)

– Việc này lặp lại nhiều lượt, mỗi lượt triển khai nhiều lần so sánh cho đến khi không có sự đổi chỗ nào xảy ra nữa
3. Xây dựng thuật toán
– Bước 1. Nhập N, những số hạng a1, a2, …, an ;
– Bước 2. Đầu tiên gọi M là số số hạng cần so sánh, vậy M sẽ chứa giá trị của N :
– Bước 3. Nếu số số hạng cần so sánh < 2 thì dãy đã được sắp xếp. Kết thúc ; – Bước 4. M chứa giá trị mới là số phép so sánh cần triển khai trong lượt :. Gọi i là số thứ tự của mỗi lần so sánh, tiên phong i 0 ; – Bước 5. Để triển khai lần so sánh mới, i tăng lên 1 ( lần so sánh thứ i ) – Bước 6. Nếu lần so sánh thứ i > số phép so sánh M : đã hoàn tất M số phép so sánh của lượt này. Lặp lại bước 3, mở màn lượt kế ( với số số hạng cần so sánh mới chính là M đã giảm 1 ở bước 4 ) ;
– Bước 7. So sánh 2 thành phần ở lần thứ i là ai và ai + 1. Nếu ai > ai + 1 thì tráo đổi 2 thành phần này ;
– Bước 8. Quay lại bước 5
a ) Đối chiếu, hình thành những bước liệt kê

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 8)
b ) Sơ đồ khối

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 9)

Hình 2. Sơ đồ khối thuật toán sắp xếp bằng cách tráo đổi​

Bài toán 3: Tìm kiếm tuần tự

1. Xác định bài toán
– Input : Dãy A gồm N số nguyên khác nhau a1, a2, …, an và một số ít nguyên k ( khóa )
Ví dụ : Dãy A gồm những số nguyên : 5 7 1 4 2 9 8 11 25 51. Và k = 2 ( k = 6 )
– Output : Vị trí i mà ai = k hoặc thông tin không tìm thấy k trong dãy. Vị trí của 2 trong dãy là 5 ( không tìm thấy 6 )
2. Ý tưởng
Tìm kiếm tuần tự được thực thi một cách tự nhiên : Lần lượt đi từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khóa cho đến khi gặp 1 số ít hạng bằng khóa hoặc dãy đã được xét hết mà không tìm thấy giá trị của khóa trên dãy .
3. Xây dựng thuật toán
a ) Cách liệt kê
Bước 1 : Nhập N, những số hạng a1, a2, …, aN và giá trị khoá k ;
Bước 2 : i ← 1 ;
Bước 3 : Nếu ai = k thì thông tin chỉ số i, rồi kết thúc ;
Bước 4 : i ← i + 1
Bước 5 : Nếu i > N thì thông tin dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc ;
Bước 6 : Quay lại bước 3 ;

b) Sơ đồ khối
 

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 10)

Hình 3. Sơ đồ khối thuật toán tìm kiếm tuần tự​

Bài toán 4: Tìm kiếm nhị phân

1. Xác định bài toán
– Input : Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, …, an và một số ít nguyên k .
Ví dụ : Dãy A gồm những số nguyên : 2 4 5 6 9 21 22 30 31 33. Và k = 21 ( k = 25 )
– Output : Vị trí i mà ai = k hoặc thông tin không tìm thấy k trong dãy. Vị trí của 21 trong dãy là 6 ( không tìm thấy 25 )
2. Ý tưởng
– Sử dụng đặc thù dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh vùng tìm kiếm bằng cách so sánh k với số hạng ở giữa khoanh vùng phạm vi tìm kiếm ( agiữa ), khi đó chỉ xảy ra một trong ba trường hợp :
+ Nếu agiữa = k thì tìm được chỉ số, kết thúc ;
+ Nếu agiữa > k thì việc tìm kiếm thu hẹp chỉ xét từ ađầu ( khoanh vùng phạm vi ) → agiữa – 1 ;
+ Nếu agiữa < k việc tìm kiếm thu hẹp chỉ xét từ agiữa + 1 → acuối ( khoanh vùng phạm vi ) . – Quá trình trên được lặp lại cho đến khi tìm thấy khóa k trên dãy A hoặc khoanh vùng phạm vi tìm kiếm bằng rỗng . 3. Xây dựng thuật toán

a) Cách liệt kê

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 11)
b ) Sơ đồ khối

Lý thuyết Tin học 10: Bài 4. Bài toán và thuật toán - Chi tiết, hay nhất (ảnh 12)

Hình 4. Sơ đồ khối thuật toán tìm kiếm tuần tự​

Source: https://vh2.com.vn
Category: Tin Học