калькулятор дробей нужна помощь

Статус
В этой теме нельзя размещать новые ответы.

bobrdobr94

Создатель
Регистрация
20 Сен 2009
Сообщения
36
Реакции
0
Привет всем! Я ваще в PHP навечок... Вот решил написать программу калькулятор обычных дробей, но сталкнулся с одной сложностью, а дело вот в чём, если я ввожу значение целой, а значение числителя и знаменателя не ввожу, то программа не работает. вот код)


<html>
<title>Сложение дробей</title>
</head>
<body>
<center><h1><a href="http://test/klck/index.php">Главная</a></center></h1>

<form method="POST" action="pluse.php">
<input type="text" name="var1" value="" size="2" />
<br>
<form method="POST" action="pluse.php">
<input type="text" name="var2" value="" size="2" />
<br>
<form method="POST" action="pluse.php">
<input type="text" name="var3" value="" size="2" />
<br>
<br>

<h1>+</h1>

<br>
<br>
<form method="POST" action="pluse.php">
<input type="text" name="var4" value="" size="2" />
<br>
<form method="POST" action="pluse.php">
<input type="text" name="var5" value="" size="2" />
<br>
<form method="POST" action="pluse.php">
<input type="text" name="var6" value="" size="2" />

<h1>=</h1>

<INPUT type="Submit" value="Решить">
</form>

<?php
$var1 = trim($_POST['var1']); //Целая часть первой дроби
$var2 = trim($_POST['var2']); //Числитель первой дроби
$var3 = trim($_POST['var3']); //Знаменатель первой дроби
$var4 = trim($_POST['var4']); //Целая часть второй дроби
$var5 = trim($_POST['var5']); //Числитель второй дроби
$var6 = trim($_POST['var6']); //Знаменатель второй дроби
?>




<?php
if ($var1 < 0){$var2 = $var2;}else{$var2 = ($var1 * $var3 + $var2);}; //Переводим в неправильную первую дробь


if ($var4 < 0){$var5 = $var5;}else{$var5 = ($var4 * $var6 + $var5);}; //Переводим в неправильную вторую дробь


$var2 = ($var2 * $var6); //Умножаем числитель первой дроби на знаменатель второй


$var5 = ($var5 * $var3); //Умножаем числитель второй дроби на знаменатель первой


$var7 = ($var2 + $var5); //Слаживаем числители первой и второй дробей (числитель новой дроби)


$var8 = ($var3 * $var6); //Умножаем знаменатели первой и второй дробей (знаменатель новой дроби)


$var11 = (integer)($var7 / $var8); //Находим целую не делимую часть новой дроби (целое)


$var12 = ($var7 % $var8); //Находим остаток от деления (числитель новой дроби)


$var10 = gmp_gcd ( "$var12 " , "$var8" ); //Находим НОД


$var12 = ($var12 / gmp_strval ( $var10 )); //Сокращаем числитель новой дроби


$var8 = ($var8 / gmp_strval ( $var10 )); //Сокращаем знаменатель новой дроби

?>




<?php
if ($var11 == 0){echo (" ");}else{echo "$var11 __";}; //Выводим целое
if ($var12 == 0){echo (" ");}else{echo "$var12 __";}; //Выводим числитель
if ($var12 == 0){echo (" ");}else{echo "$var8 __";}; //Выводим знаменатель
?>

</body>
</html>
 
попробуйте описать логику своего исходного кода, тогда поймете.
и для чего вам перед каждым полем ввода открытая форма, уберите их,
Код:
<form method="POST" action="pluse.php">
<input type="text" name="var1" value="" size="2" />
<br>
<input type="text" name="var2" value="" size="2" />
<br>
<input type="text" name="var3" value="" size="2" />
<br>
<br>

<h1>+</h1>

<br>
<br>
<input type="text" name="var4" value="" size="2" />
<br>
<input type="text" name="var5" value="" size="2" />
<br>
<input type="text" name="var6" value="" size="2" />

<h1>=</h1>

<INPUT type="Submit" value="Решить">
</form>
 
Нужно вначале выполнить проверку на пустое значение
if(isempty($var1))
{
echo("не задан числитель");
}else
{
... аналогично для остальных переменных
}else
{
... вычисление результата
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху