Thuật toán lập trình giải quyết bài toán | Biểu diễn thuật toán bằng Sơ đồ khối

Thuật toán là cách giải quyết một bài toán bằng chương trình máy tính. Sơ đồ khối sử dụng các ký hiệu để biểu diễn các khối lệnh trong thuật toán.
Thuật toán lập trình giải quyết bài toán | Biểu diễn thuật toán bằng Sơ đồ khối

Hinh anh Thuat toan lap trinh bang So do khoi 1

1. Thuật toán là gì ?

Thuật toán hay giải thuật có thể hiểu là phương pháp, cách giải quyết một bài toán bằng chương trình máy tính.

2. Tại sao cần dùng thuật toán?

- Thuật toán tìm đường đi ngắn nhất. Thuật toán xuất hiện trong các phần mềm chỉ đường và ứng dụng liên quan tới ngành giao thông vận tải, ví dụ: google map, grab, uber, giao hàng nhanh.. ; trong các hệ thống mạng, viễn thông người ta cũng dùng thuật toán này để định hướng đường truyền và tín hiệu.

- Thuật toán khá nổi tiếng đó là thuật toán tìm kiếm, điển hình như Google. Khi bạn tìm kiếm trên Google sẽ trả ra được kết quả mà bạn yêu cầu tìm kiếm trong vòng 1 vài giây. Điều ấy cho thấy 1 thuật toán cực mạnh và vẫn liên tục cần cải tiến cho đến ngày nay.

- Các thuật toán mã hoá được sử dụng để mã hoá thông tin, được sử dụng nhiều trong việc truyền nhận và lưu trữ giữ liệu, giúp bảo vệ thông tin cá nhân và tổ chức khỏi các cuộc tấn công hay khai thác.

3. Cách biểu diễn thuật toán bằng sử dụng sơ đồ khối

Sơ đồ khối được diễn tả là phương tiện đồ họa trực quan hóa chuỗi nhiệm vụ của một công việc thành hình ảnh đơn giản và dễ hiểu hơn để tất cả mọi người có thể đọc và hiểu được người diễn tả đang muốn thể hiện điều gì.

Trong lập trình, Sơ đồ khối sử dụng các ký hiệu để biểu diễn các khối lệnh trong thuật toán.

Bảng ký hiệu của sơ đồ khối thể hiện như dưới đây:

Hinh anh Thuat toan lap trinh bang So do khoi 2

4. Ví dụ: Sử dụng sơ đồ khối để biểu diễn thuật toán để giải phương trình bậc 2

Trước tiên, chúng ta phải xác định bài toán:

– Các yếu tố đầu vào: Các số thực a, b, c.

– Các yếu tố đầu ra: Các số thực X thoả mãn ax2 + bx + c = 0.

– Ý tưởng:

● Đối với phương trình có hệ số a =0. Lúc này chúng ta quay trở về bài toán giải phương trình bậc 1. Nghiệm x = -c/b.

● Chúng ta phải tính delta: d = b2 – 4ac.

● Lần lượt xét ba trường hợp cho giá trị d:

Nếu d < 0 thì kết luận phương trình vô nghiệm

Nếu d = 0 thì kết luận phương trình có một nghiệm x =-b/2a

Nếu d > 0 thì kết luận phương trình có hai nghiệm phân biệt là:

x = (-b± √ d ) / 2a.

- Vẽ sơ đồ khối như hình dưới đây. Các bạn có thể dùng cách đơn giản nhất là dùng bút và giấy hoặc bạn có thể dùng Microsoft PowerPoint, Paint hoặc các phần mềm soạn thảo khác, cao cấp hơn đó là các phần mềm, công cụ để hỗ trợ để thực hiện thao tác này.

Hinh anh Thuat toan lap trinh bang So do khoi 3

5. Sử dụng ngôn ngữ lập trình để biểu diễn thuật toán giải phương trình bậc 2.

Ví dụ: Sử dụng ngôn ngữ lập trình Java để biểu diễn thuật toán giải phương trình bậc 2


import java.util.Scanner;
//import java.math.*;
import java.io.*;
 
public class PTbac2 {
    private double a;
    private double b;
    private double c;
    public PTbac2(){
         
    }
        // Phương thức tạo lập
    public PTbac2(double a, double b, double c){
        this.a=a;
        this.b=b;
        this.c=c;
    }
        // Phương thức nhập dữ liệu
    public double nhapDouble() {
        double so;
        Scanner scan = new Scanner(System.in);
        try {
        so = Double.parseDouble(scan.nextLine());
        }
        catch (Exception e) {           // Nếu nhập vào lỗi
            System.out.println("Nhap lai!");
            so=nhapDouble();  // Đệ quy hàm nhập
        }
        return so;     // Trả về giá trị nhập
    }
    void nhapPT() {
        System.out.println("Moi ban nhap he so phuong trinh can giai: ");
        System.out.println("a: ");a=nhapDouble();
        System.out.println("b: ");b=nhapDouble();
        System.out.println("c: ");c=nhapDouble();
    }
    void giaiPt() {
        if(a==0) {
            if(b!=0) {
                double x;
                                x= -c/b;
                x=Math.round(x*100.0)/100.0;    // làm tròn số thập phân
                System.out.println("Nghiem phuong trinh: "+x);
            }
            else if(b==0) {
                System.out.println("Phuong trinh khong hop le!");
                return;
            }
             
        }
        else {
            double delta= b*b -4*a*c;
            if(delta<0) {
//              System.out.println("Phuong trinh  " +a+ "x^2 +" + b+"x + "+c+"  vo nghiem");
                System.out.println("Phuong trinh vo nghiem!");
            }
            else if(delta ==0) {
                double x;
                x=(-b)/(2*a);
                System.out.println("Phuong trinh co nghiem kep: ");
                System.out.println("x= "+Math.round(x*100.0)/100.0);
            }
            else {
                double x1;
                double x2;
                x1=(-b +Math.sqrt(delta))/(2*a);
                x2=(-b -Math.sqrt(delta))/(2*a);
                System.out.println("Phuong trinh co 2 nghiem phan biet: ");
                System.out.println("x1: "+ Math.ceil(x1*100.0)/100.0);
                System.out.println("x2: "+ Math.round(x2*100.0)/100.0);
            }
        }
    }
    public static void main(String[] args) {
        PTbac2 _ptb2 = new PTbac2();
        _ptb2.nhapPT();
        _ptb2.giaiPt();
    }
}

6. Kết luận:

Trên đây là phần trình bày về thuật toán giải quyết bài toán về lập trình, cách vẽ Sơ đồ khối và ví dụ ứng dụng sơ đồ khối để giải phương trình bậc 2. Hy vọng rằng, Sơ đồ khối sẽ được các bạn thực hiện thành công để giúp ích cho công việc của các bạn./.

Post a Comment