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

Тема в разделе "PHP", создана пользователем bobrdobr94, 20 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. bobrdobr94

    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>
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    попробуйте описать логику своего исходного кода, тогда поймете.
    и для чего вам перед каждым полем ввода открытая форма, уберите их,
    Код:
    <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>
     
  3. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Нужно вначале выполнить проверку на пустое значение
    if(isempty($var1))
    {
    echo("не задан числитель");
    }else
    {
    ... аналогично для остальных переменных
    }else
    {
    ... вычисление результата
    }
     
Статус темы:
Закрыта.