<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Giải p.trình bậc 2 & 1</title>
</head>
<body>
<h2>[PHP] Chương trình giải phương trình bậc 2 và bậc 1 dạng ax<sup>2</sup> + bx + c = 0</h2>
Kết quả đạt đc:<br>
Hệ số b và hệ số c ko đc để trống<br>
Nếu để trống hệ số a hoặc hệ số a = 0, thì hệ số b phải khác 0, thỏa mãn sẽ thực hiện giải phương trình bậc 1<br>
Phương trình bậc 1: nếu hệ số b = 1 thì ko hiển thị số 1<br>
Phương trình bậc 2: nếu hệ số a = 1 thì ko hiển thị số 1<br><br>
<form method="post">
<label>Hệ số a: </label><input type="text" name="hsa"><br><br>
<label>Hệ số b: </label><input type="text" name="hsb"><br><br>
<label>Hệ số c: </label><input type="text" name="hsc"><br><br>
<input type="submit" value="Giải Phương trình"><br><br>
</form>
<?php
class PTB1{
protected $b,$c;
function __construct($hsb,$hsc){
$this->b = $hsb;
$this->c = $hsc;
}
function hienthiPT(){
if($this->b == 0)
echo "Hệ số b phải khác 0";
else{
if($this->b == 1)
echo "P.tr: x + ".$this->c." = 0";
else echo "P.tr: ".$this->b."x + ".$this->c." = 0";
}
}
function giaiPT(){
if($this->b == 0)
echo "";
else{
$x = -$this->c/$this->b;
echo "<br>P.tr trên có nghiệm là: x = ".$x;
}
}
}
class PTB2 extends PTB1{
protected $a;
function __construct($hsa,$hsb,$hsc){
$this->a = $hsa;
parent::__construct($hsb,$hsc);
}
function hienthiPT(){
if($this->a == 1)
echo "P.tr: x<sup>2</sup> + ".$this->b."x + ".$this->c." = 0<br>";
else echo "P.tr: ".$this->a."x<sup>2</sup> + ".$this->b."x + ".$this->c." = 0<br>";
}
function giaiPT(){
$delta = $this->b*$this->b - 4*$this->a*$this->c;
if($delta<0)
echo "P.tr vô nghiệm";
elseif($delta==0){
$xx = (-$this->b + sqrt($delta))/2*$this->a;
echo "P.tr có nghiệm kép x1 = x2 = ".$xx;
}
elseif($delta>0){
$x1 = (-$this->b + sqrt($delta))/2*$this->a;
$x2 = (-$this->b - sqrt($delta))/2*$this->a;
echo "P.tr có 2 nghiệm phân biệt là:<br>x1 = ".$x1."<br>x2 = ".$x2;
}
}
}
if(isset($_POST["hsa"],$_POST["hsb"],$_POST["hsc"]) && ($_POST["hsb"] == "" || $_POST["hsc"] == ""))
echo "Ko đc để trống hệ số b và hệ số c";
else{
if(isset($_POST["hsb"],$_POST["hsc"]) && ($_POST["hsa"]=="" || $_POST["hsa"]=="0")){
$ptb1 = new PTB1($_POST["hsb"],$_POST["hsc"]);
$ptb1->hienthiPT();
$ptb1->giaiPT();
}
elseif(isset($_POST["hsa"],$_POST["hsb"],$_POST["hsc"])){
$ptb2 = new PTB2($_POST["hsa"],$_POST["hsb"],$_POST["hsc"]);
$ptb2->hienthiPT();
$ptb2->giaiPT();
}
}
?>
</body>
</html>