Квадратни уравнения

Nazi_93

Registered
Здравейте,реших да споделя един скрипт,който решава квадратни уравнения,показва как се разлагат,изчислява се върха на параболата и се казва каква е тя (вдлъбната/изпъкнала).Ако въведете символ,различен от число излиза грешка.Скоро ще има демо.Дано съм ви помогнал.
Ето и скрипта:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="style.css">
<title>Квадратни уравнения BY NAZI_93 </title>
</head>
<body>
	<form action="index.php" method="post">

		<table>
			<tr>
				<td>a:<input type="text" name="a"></td>
			</tr>
			<tr>
				<td>b:<input type="text" name="b"></td>
			</tr>
			<tr>
				<td>c:<input type="text" name="c"></td>
			</tr>
		</table>
		<input type="submit" name="submit" value="Calculate">
	
	</form>
<?php
	if (isset($_POST['submit'])){
		$a=$_POST['a'];
		$b=$_POST['b'];
		$c=$_POST['c'];
		$error="Моля въвеждайте само числа!";
		$error2="Уравнението няма реални корени!";
			if (is_numeric($a)){
				if (is_numeric($b)){
					if (is_numeric($c)){
					$d=($b*$b)-(4*$a*$c);
						if ($d>0){
							$x1=(-$b+sqrt($d))/(2*$a);
							$x2=(-$b-sqrt($d))/(2*$a);
							$xx1=round($x1,3);
							$xx2=round($x2,3);
							echo "D: ".$d."<br/>";
							echo "X<sub>1</sub>: ".$xx1."<br/>";
							echo "X<sub>2</sub>: ".$xx2;
							if ($x1>0 && $x2>0){
							$raz="<br/>Разлагане: ".$a."(x".(-$xx1).").(x".(-$xx2).")";
							echo $raz;
							}
							else if ($x1<0 && $x2<0){
							$raz="<br/>Разлагане: ".$a."(x+".substr($xx1,1).").(x+".substr($xx2,1).")";
							echo $raz;
							}
							else if ($x1>0 && $x2<0){
							$raz="<br/>Разлагане: ".$a."(x".(-$xx1).").(x+".substr($xx2,1).")";
							echo $raz;
							
							}
							else if ($x1<0 && $x2>0){
							$raz="<br/>Разлагане: ".$a."(x+".substr($xx1,1).").(x".(-$xx2).")";
							echo $raz;
							}
								$top=-$b/(2*$a);
								echo "<br>Върхът на параболата е: ".round($top,3);
									if ($a>0){
									echo "<br>Параболата е изпъкнала!";
									}
									else{echo "<br>Параболата е вдлъбната!";}
						}
						else {echo "D: ".$d."<br/>".$error2;}
					}
					else {echo $error;}
				}
				else {echo $error;}
			}
			else {echo $error;}
	}

?>

</body>
</html>
 
е те се сметят даже на ум при ниски стойности на a,b и c , полезно би било да сe направи за квадратни неравенства :)
 
Знам,че се смятат селсно и на ум и с формулите на Виет,но има и хора които не знаят дори как изглежда 1 квадратно уравнение,пък камоли да го решат.Затова съм го направил.Ако имам време днес ще направя и за квадратни неравенства.
 

Back
Горе