Tạo bởi Trần Văn Điêp|
Lập Trình C

Hướng dẫn vẽ flowchart phương trình bậc 2

Hướng dẫn vẽ flowchart phương trình bậc 2

1. Phương trình bậc 2 là gì?

Phương trình bậc hai có dạng:

ax2+bx+c=0ax^2 + bx + c = 0

Trong đó:

  • a, b, c là các số thực

  • a ≠ 0

Để giải phương trình, ta tính delta (Δ):

Δ=b24acΔ = b^2 - 4ac

Kết quả:

  • Δ < 0 → Phương trình vô nghiệm

  • Δ = 0 → Phương trình có nghiệm kép

    x=b2ax = -\frac{b}{2a}
  • Δ > 0 → Phương trình có 2 nghiệm phân biệt

x1=b+Δ2ax_1 = \frac{-b + \sqrt{Δ}}{2a} x2=bΔ2ax_2 = \frac{-b - \sqrt{Δ}}{2a}

2. Flowchart giải phương trình bậc 2

Các bước vẽ flowchart:

  1. Start

  2. Nhập a, b, c

  3. Kiểm tra a = 0 ?

    • Nếu đúng → Không phải phương trình bậc 2 → End

  4. Tính Δ = b² - 4ac

  5. Δ < 0 ?

    • Có → In vô nghiệm

  6. Δ = 0 ?

    • Có → Tính x = -b / (2a)

  7. Ngược lại

    • Tính x1, x2

  8. In kết quả

  9. End

Flow logic:

Start
|
Nhập a,b,c
|
a == 0 ?
| \
Yes No
| |
Không phải PT bậc 2
|
Tính Δ
|
Δ < 0 ?
| \
Yes No
| |
Vô nghiệm Δ = 0 ?
| \
Yes No
| |
x = -b/2a x1,x2
\ /
In kết quả
|
End

3. Code C

#include <stdio.h>
#include <math.h>

int main() {
float a, b, c, delta, x1, x2;

printf("Nhap a b c: ");
scanf("%f %f %f", &a, &b, &c);

if(a == 0){
printf("Khong phai phuong trinh bac 2");
return 0;
}

delta = b*b - 4*a*c;

if(delta < 0){
printf("Phuong trinh vo nghiem");
}
else if(delta == 0){
printf("Nghiem kep x = %f", -b/(2*a));
}
else{
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("x1 = %f\nx2 = %f", x1, x2);
}

return 0;
}

4. Code Java

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

double a,b,c,delta,x1,x2;

System.out.print("Nhap a b c: ");
a = sc.nextDouble();
b = sc.nextDouble();
c = sc.nextDouble();

if(a == 0){
System.out.println("Khong phai PT bac 2");
return;
}

delta = b*b - 4*a*c;

if(delta < 0){
System.out.println("Vo nghiem");
}
else if(delta == 0){
System.out.println("Nghiem kep x = " + (-b/(2*a)));
}
else{
x1 = (-b + Math.sqrt(delta))/(2*a);
x2 = (-b - Math.sqrt(delta))/(2*a);

System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
}
}
}

5. Code C#

using System;

class Program
{
static void Main()
{
double a, b, c, delta, x1, x2;

Console.Write("Nhap a b c: ");
a = double.Parse(Console.ReadLine());
b = double.Parse(Console.ReadLine());
c = double.Parse(Console.ReadLine());

if(a == 0){
Console.WriteLine("Khong phai PT bac 2");
return;
}

delta = b*b - 4*a*c;

if(delta < 0){
Console.WriteLine("Vo nghiem");
}
else if(delta == 0){
Console.WriteLine("Nghiem kep x = " + (-b/(2*a)));
}
else{
x1 = (-b + Math.Sqrt(delta))/(2*a);
x2 = (-b - Math.Sqrt(delta))/(2*a);

Console.WriteLine("x1 = " + x1);
Console.WriteLine("x2 = " + x2);
}
}
}

6. Code PHP

<?php

$a = 1;
$b = -3;
$c = 2;

if($a == 0){
echo "Khong phai PT bac 2";
return;
}

$delta = $b*$b - 4*$a*$c;

if($delta < 0){
echo "Vo nghiem";
}
elseif($delta == 0){
echo "Nghiem kep x = ".(-$b/(2*$a));
}
else{
$x1 = (-$b + sqrt($delta))/(2*$a);
$x2 = (-$b - sqrt($delta))/(2*$a);

echo "x1 = $x1 <br>";
echo "x2 = $x2";
}

?>

7. Code Python

import math

a = float(input("Nhap a: "))
b = float(input("Nhap b: "))
c = float(input("Nhap c: "))

if a == 0:
print("Khong phai phuong trinh bac 2")
else:
delta = b*b - 4*a*c

if delta < 0:
print("Vo nghiem")
elif delta == 0:
x = -b/(2*a)
print("Nghiem kep x =", x)
else:
x1 = (-b + math.sqrt(delta))/(2*a)
x2 = (-b - math.sqrt(delta))/(2*a)

print("x1 =", x1)
print("x2 =", x2)

Tóm lại:
Flowchart giúp mô tả logic giải phương trình bậc 2 một cách trực quan, sau đó có thể dễ dàng chuyển sang nhiều ngôn ngữ lập trình như C, Java, C#, PHP, Python.

Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó