bobrdobr94
Создатель
- Регистрация
- 20 Сен 2009
- Сообщения
- 36
- Реакции
- 0
- Автор темы
- #1
Привет всем! Я ваще в 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>
<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>