|
|
|
| <html><head><title>Математика</title></head><body>
<form action="./index.php" method="post">
Дискриминант<table><tr><td style="width:50px;">
A</td><input style="width:50px;" name='a' type='text' value=""><td style="width:50px;">
B</td><input style="width:50px;" name='b' type='text' value=""><td style="width:50px;">
C</td><input style="width:50px;" name='c' type='text' value="">=0</tR></table>
<input type="submit" value="Решить">
</form>
</body>
</html>
-------------------------
<?PHP
@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', false );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
//----------------------------------------------------------------------------
/////////////////Diskriminant
echo "<br />";
$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$bb = $b*$b;
$bb2 = -$b;
$ac4 = 4 * $a * $c;
$b4 = $bb - $ac4;
$d = sqrt($b4);
$x1 = -$b+$d/2*$a;
$x2 = -$b-$d/2*$a;
$a2 = $a*2;
$d2 = number_format( $d, 2);
$x1 = number_format( $x1, 2);
$x2 = number_format( $x2, 2);
$bbd2 = $bb2 + $d2;
$bbd1 = $bb2 - $d2;
$a2a = $a * 2;
echo $_POST["a"].$_POST["b"].$_POST["c"]."=0<br />";
echo "D=".$bb.$ac4."=".$b42."<br />";
if ($d<0){
echo "O Нет решения";
}else{
if($d==0){
echo "Один корень<br />";
echo "x=".$bb2."/".$a2;
}else{
echo "X<sub>1</sub>=".$bb2."+".$d2."/2*".$a."<br />";
echo "X<sub>1</sub>=".$bbd2."/".$a2a."<br />";
echo "X<sub>1</sub>=".$x1."<br />";
echo "X<sub>2</sub>=".$bb2."-".$d2."/2*".$a."<br />";
echo "X<sub>2</sub>=".$bbd1."/".$a2a."<br />";
echo "X<sub>2</sub>=".$x2."<br>";
echo "Ответ:";
}
}
?>
Проблема:
1) При решеним косяки то есть вмесо - показывает + и тому подобное но решение правильное решает правильно Но это ничего вы со вторым пунктом подскажите :)
2) В конце как можно сделать чтобы оставшееся дробное число округлилось
пример:
2
--
10
в
1
--
5
-------
Подскажите как это сделать код написан мной php учу 1 месяц постоянна дядя гугл и тетя яша помогали но не в этот раз
ЗА недочеты не пинать мне всего 14 лет и на форуме пишу первый раз может что то упустил в описании | |
|
|
|
|
|
|
|
для: rafonets
(23.03.2011 в 07:39)
| | Честно говоря мало что понял, но для округления дробных чисел используйте
round()
ceil()
floor()
В зависимости от ситуации и требований к округлению | |
|
|
|
|
|
|
|
для: Tamplier
(23.03.2011 в 10:48)
| | Спасибо но это не то | |
|
|
|
|
|
|
|
для: rafonets
(23.03.2011 в 12:52)
| | Тогда нужно больше подробностей по фразе
>2) В конце как можно сделать чтобы оставшееся дробное число округлилось
Вам нужно отбросить дробную часть, округлить до определенной цифры после запятой или сделать что-то другое? Приведите пример результата, который выводится сейчас и того, что хотите получить? | |
|
|
|
|
|
|
|
для: cheops
(23.03.2011 в 13:09)
| | Сдается, товарищ не округлять хочет, а сокращать натуральные дроби... | |
|
|
|
|
|
|
|
для: DJ Paltus
(23.03.2011 в 14:23)
| | Верно | |
|
|
|
|
|
|
|
для: rafonets
(23.03.2011 в 14:44)
| | Тогда возможно вам пригодится оператор %, который возвращает остаток от деления? | |
|
|
|
|
|
|
|
для: cheops
(23.03.2011 в 14:49)
| | можете пример показать я не совсем понял | |
|
|
|
|
|
|
|
для: rafonets
(23.03.2011 в 15:29)
| | Если не сложно, опишите подробнее задачу, которая не получается: что вводите, что выводится и что хотелось бы получить? | |
|
|
|
|
|
|
|
для: cheops
(23.03.2011 в 16:26)
| | echo "X<sub>2</sub>=".$bb2."+".$d2."/2*".$a."<br />";
echo "X<sub>2</sub>=".$bb2."-".$d2."/2*".$a."<br />";
$bb2-$d2 / 2*$a
$bb2+$d2 / 2*$a
после $bb2+$d2 или $bb2-$d2 и 2*$a
получиться что то вроде $bb2d2 / $a2 надо чтобы потом это сократилось
пример
2/10=1/5 | |
|
|
|
|
|
|
|
для: rafonets
(23.03.2011 в 17:04)
| | Вообще по уму нужно бы поискать алгоритм поиска общих делителей. А практически нужно сохранить цифры 2 и 10 в отдельные переменные и проверить их на общие делители, ну или для начала хотя бы не делится ли одно число на другое.
<?php
$fst = 2;
$snd = 10;
if(!($snd % $fst))
{
$snd /= $fst;
$fst /= $fst;
}
echo $fst." / ".$snd;
?>
|
| |
|
|
|