Tạo bởi Trần Văn Điêp|
Hướng dẫn vẽ flowchart phương trình bậc 2
Lập Trình C
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:
Trong đó:
-
a, b, c là các số thực
-
a ≠ 0
Để giải phương trình, ta tính delta (Δ):
Kết quả:
-
Δ < 0 → Phương trình vô nghiệm
-
Δ = 0 → Phương trình có nghiệm kép
-
Δ > 0 → Phương trình có 2 nghiệm phân biệt
2. Flowchart giải phương trình bậc 2
Các bước vẽ flowchart:
-
Start
-
Nhập a, b, c
-
Kiểm tra a = 0 ?
-
Nếu đúng → Không phải phương trình bậc 2 → End
-
-
Tính Δ = b² - 4ac
-
Δ < 0 ?
-
Có → In vô nghiệm
-
-
Δ = 0 ?
-
Có → Tính x = -b / (2a)
-
-
Ngược lại
-
Tính x1, x2
-
-
In kết quả
-
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.
