Thuật 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 ấy, từ Input của bài toán, ta nhận được Output cần tìm.
Vậy có mấy cách để mô tả thuật toán ? hãy cùng Top10vietnam.net tìm hiểu các cách mô tả thuật toán trong bài viết dưới đây.
Thuật toán và có mấy cách để mô tả thuật toán ?
Khái niệm bài toán
Bài toán là một việc nào đó mà con người muốn máy tính thực hiện.
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: Thông tin cần tìm, thông tin lấy ra từ máy tính
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
Khái niệm thuật 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 (tính dừng)
- Các thao tác được tiến hành theo một trình tự xác định (tính xác định)
- Sau khi thực hiện xong dãy các thao tác đó ta nhận được Output của bài toán (tính đúng đắn)
cách mô tả thuật toán
Có 2 cách để mô tả thuật toán
Cách 1. Dùng phương pháp liệt kê: Nêu ra tuần tự các thao tác cần tiến hành
Ví dụ: Cho bài toán Tìm nghiệm của phương trình bậc 2: ax2 + bx + c = 0 (a0)
- 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 ax2 + bx + c = 0 (a0)
- Thuật toán:
Bước 1: Nhập a, b, c (a0)
Bước 2: Tính Δ = b2 4ac
Bước 3: Nếu Δ>0 thì phương trình có 2 nghiệm là: (x{1}={-b+{2a}) ; (x{2}={-b-{2a}) rồi kết thúc
Bước 4: Nếu Δ = 0 thì phương trình có nghiệm kép (x{1,2}={-b}{2b}) 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 2. Dùng sơ đồ khối
Một số ví dụ về thuật toán Tin học 10
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ố 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 giải quyết
- N>=4: Tìm ước i đầu tiên > 1 của N
- Nếu i < N thì N không là số nguyên tố (vì N có ít nhất 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 báo N không là số nguyên tố, kết thúc;
- Bước 3: Nếu N<4 thì thông báo 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ị)
- Bước 7: Nếu i = N thì thông báo N là số nguyên tố, ngược lại thì thông báo N không là số nguyên tố, kết thúc;
b) Sơ đồ khối
Lưu ý: Nếu N >= 4 và không có ước trong 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
Output: Dãy A được sắp xếp thành dãy không giảm.
2. Ý 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. (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 tiến hành 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
a) Cách liệt kê
– Bước 1: Nhập N, các số hạng a1, a2, an;
– 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ạibước 3;
– Bước 7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;
– Bước 8: Quay lại bước 5;
b) Sơ đồ khối
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ố nguyên k (khóa)
- Ví dụ : Dãy A gồm các 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 báo 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 hiện 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 một số 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, các 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 báo 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 báo 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
Hi vọng qua bài viết, Top10vietnam.net đã giúp bạn đọc trả lời được câu hỏi có mấy cách để mô tả thuật toán và củng cố kiến thức thông qua một vài ví dụ. Chúc các bạn hoàn thành tốt bài làm của mình.