Viết Thuật Toán Giải Phương Trình Bậc Nhất - Toploigiai

Đề bài: Hãy viết thuật toán giải phương trình bậc nhất: ax + b = 0 và đề xuất các test tiêu biểu.

Lời giải:

Thuật toán giải phương trình ax + b = 0

- Bằng liệt kê tuần tự

Bước 1: Nhập hai số thực a, b

Bước 2. Nếu a = 0

Bước 2.1. Nếu b ≠0 thì thông báo phương trình vô định, rồi kết thúc;

Bước 2.2. Nếu b = 0 thì gán x

Bước 3:  x

Bước 4. Đưa ra nghiệm x, rồi kết thúc.

- Sơ đồ khối:

[CHUẨN NHẤT] Viết thuật toán giải phương trình bậc nhất

Đề xuất các test tiêu chuẩn

Để xét tất cả các trường hợp có thể xảy ra, ta sử dụng ba bộ test như sau:

i) a = 0, b = 1 (kiểm tra trường hợp phương trình vô định);

ii) a = 0,b = 0 (kiểm tra trường hợp nghiệm x=0);

iii) a = 3, b = 6 (kiểm tra trường hợp nghiêm , y = -b/a).

- 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 1 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 ra Output cần tìm

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

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

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

+ Input: Số nguyên dương N.

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

- Ý tưởng: Ta nhớ lại định nghĩa: Một số nguyên dương N là số nguyên tố nếu nó có đúng 2 ước số khác nhau là 1 và chính nó. Do đó ta có:

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

+ Nếu 1 < N < 4 thì N là số nguyên tố.

+ Nếu N ≥ 4 và không có ước số 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ố.

- Thuật toán:

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

+ B2: Nếu N = 1 thì thông báo N không là số nguyên tố rồi kết thúc.

+ B3: Nếu N < 4 thì thông báo N là số nguyên tố rồi kết thúc.

+ B4: i ← 2

+ B5: Nếu N>[√N (*) thì thông báo N là số nguyên tố rồi kết thúc.

+ B6: Nếu N chia hết cho i thì thông báo N là số không nguyên tố rồi kết thúc.

+ B7: i ← i + 1 rồi quay lại bước 5.

Ví dụ 2: Bài toán sắp xếp

Cho dãy A gồm N số nguyên a1, a2, a3, …,aN. Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (tức là số hạng trước không lớn hơn số hạng sau)

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

+ Input: Dãy A gồm N số nguyên

+ Output: Dãy A được sắp xếp thành dãy không giảm.

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

- Ý tưởng: Với 2 số liền kề, nếu số trước lớn hơn số sau ta đổi chổ cho nhau. Việc đó lặp lai, khi không còn sự đổi chổ nào nữa.

- Thuật toán

Cách liệt kê:

+ B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;

+ B2: M ← N;

+ B3: Nếu M<2 thì in dãy đã sắp xếp rồi kết thúc;

+ B4. M ← M – 1; i ← 0;

+ B5: i ←i + 1;

+ B6: Nếu i > M thì quay lại bước 3;

+ B7. Nếu ai > ai+1 thì tráo đổi cho nhau;

+ B8: Quay lại bước 5; 

[CHUẨN NHẤT] Viết thuật toán giải phương trình bậc nhất (ảnh 3)

Ví dụ 3: Bài toán tìm kiếm

Cho dãy A gồm N số nguyên khác nhau: a1…aN. và một số nguyên k. Cần biết có hay không chỉ số i mà ai=k. Nếu có hãy cho biết chỉ số đó.

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

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

+ Input: dãy A gồm N số nguyên khác nhau: a1…aN và số nguyên k.

+ Output: chỉ số i mà ai=k hoặc thông báo không có số hạng nào của dãy A có giá trị là k.

- Ý tưởng: lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá cho đến khi hoặc gặp một số hạng bằng khoá hoặc dãy đã được xét hết và không có giá trị nào bằng khoá. Trong trường hợp thứ 2 dãy A không có số hạng nào bằng khoá...

- Thuật toán

Liệt kê:

+ B1: Nhập vào N, các số hạng a1, . . . ,aN và khóa k;

+ B2: i←1;

+ B3: Nếu ai=k thì thông báo chỉ số i rồi kết thúc;

+ B4. i ←i+1;

+ B5: 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;

+ B6: Quay lại bước 3;

[CHUẨN NHẤT] Viết thuật toán giải phương trình bậc nhất (ảnh 4)

Dãy A có N = 7 khóa k = 10

Tìm chỉ số i để ai = k.

i

1

2

3

4

5

6

7

ai

7

12

4

6

11

10

8

Ghi chú: k = 10 → i = 6

Trong thuật toán trên, i là biến chỉ số và nhận giá trị nguyên lần lượt từ 1 đến N + 1

Từ khóa » Sơ đồ Khối Phương Trình Bậc Nhất