Написав квадратный калькулятор уравнения в PHP, я думал, что у меня будет большая часть моих проблем с математикой. Не так, хотя, поскольку я получаю очень странный вывод. Предполагается, что программа должна $_GET
значения x , x и другие числа из формы, вычислить значения x, а затем отобразить их. когда я сначала загружаю страницу, программа выводит -10
(хотя я ничего не вписал в форму), а затем ничего не делает, если я ввожу значения. Например, если я введу 1, 11 and 18
в текстовые поля, которые должны выводить x = -9 and -2
, программа выдает -22
. Что я делаю не так?PHP квадратичное уравнение калькулятор странный вывод
Вот мой код (<body>
раздел моего HTML-документа):
<body>
<h1>Quadratic equation calculator</h1>
<p>Type the values of your equation into the calculator to get the answer.</p>
<?php
$xsqrd;
$x;
$num;
$ans1 = null;
$ans2 = null;
$errdivzero = "The calculation could not be completed as it attempts to divide by zero.";
$errsqrtmin1 = "The calculation could not be completed as it attempts to find the square root of a negative number.";
$errnoent = "Please enter some values into the form.";
?>
<form name = "values" action = "calc.php" method = "get">
<input type = "text" name = "x2"><p>x<sup>2</sup></p>
<input type = "text" name = "x"><p>x</p>
<input type = "text" name = "num">
<input type = "submit">
</form>
<?php
if ((!empty($_GET['x2'])) && (!empty($_GET['x'])) && (!empty($_GET['num']))) {
$xsqrd = $_GET['x2'];
$x = $_GET['x'];
$num = $_GET['num'];
$ans1 = (-$x) + (sqrt(pow($x, 2) - (4 * $xsqrd * $num)))/(2 * $xsqrd);
$ans2 = (-$x) - (sqrt(pow($x, 2) - (4 * $xsqrd * $num)))/(2 * $xsqrd);
}
?>
<p>
<?php
if(($ans1==null) or ($ans2==null))
{
print $errnoent;
}
else
{
print "x = " + $ans1 + "," + $ans2;
}
?>
</p>
</body>
, что было не так с математикой немного? Кроме того, спасибо, потому что он работает! – imulsion
, но зачем использовать 'echo', а не' print'? – imulsion
Я отредактировал свой комментарий и добавил бит математики. о 'echo' vs' print', я предпочитаю 'echo' для простого вывода (и большинство людей) –