Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.12.2013, 08:53   #1
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
Восклицание очень срочно!

Форумчане-программисты, помогите! Программа калькулятор. Прокомментируйте мне, что означают элементы кода... PHP я более менее понимаю, только недавно начали проходить, а тут перед экзаменом озадачили, комиссия, спросит ещё что, а я не в курсе... Кто чем может, пожалуйста!

Код:
<?php
function addition($x,$y){
    $result = $x+$y;
    return $result;
}
function subtraction($x,$y){
    $result = $x-$y;
    return $result;
}
function multiplication($x,$y){
    $result = $x*$y;
    return $result;
}
function division($x,$y){
    $result = $x/$y;
    return $result;
}
$answer = 0;
    if(isset($_POST['submit'])){
        $operator = $_POST['operator'];
        $first_num = $_POST['first_num'];
        $second_num = $_POST['second_num'];
        
        if(!filter_var($first_num, FILTER_VALIDATE_FLOAT) && !filter_var($second_num, FILTER_VALIDATE_FLOAT)){ 
            die("<script>alert('Вводите только цифры!')</script>"); 
        }
        if($operator == 'add'){
            $answer = addition($first_num,$second_num);
        }elseif($operator == 'sub'){
            $answer = subtraction($first_num,$second_num);
        }elseif($operator == 'mul'){
            $answer = multiplication($first_num,$second_num);
        }elseif($operator == 'div'){
            if($second_num == 0){
                die("<script>alert('На ноль делить нельзя!')</script>");
            }
            $answer = division($first_num,$second_num);
        }
    }
?>

<html>
    <head>
        <title>Калькулятор</title>
    </head>
    <body>
    <form action='' method='POST'>
    Введите числа:
<br />
    <input type='text' name='first_num' value="<?=$first_num;?>">
<br />
    <select name='operator'>
        <option value='add'>+
        <option value='sub'>-
        <option value='mul'>*
        <option value='div'>/
    </select>
<br />
    <input type='text' name='second_num' value="<?=$second_num;?>">
<br />
    <input type='submit' name='submit' value='Вычислить'>
    <br />
    Ответ:
    <?='<b>'.$answer.'</b>';?>
    </form>
    </body>
</html>
В частности, мне непонятно:
Код:
    if(isset($_POST['submit'])){
        $operator = $_POST['operator'];
        $first_num = $_POST['first_num'];
        $second_num = $_POST['second_num'];
Код:
        if(!filter_var($first_num, FILTER_VALIDATE_FLOAT) && !filter_var($second_num, FILTER_VALIDATE_FLOAT))
Код:
if($operator == 'add'){
            $answer = addition($first_num,$second_num);
        }elseif($operator == 'sub'){
            $answer = subtraction($first_num,$second_num);
        }elseif($operator == 'mul'){
            $answer = multiplication($first_num,$second_num);
        }elseif($operator == 'div'){
            if($second_num == 0){
                die("<script>alert('На ноль делить нельзя!')</script>");
            }
            $answer = division($first_num,$second_num);
И что означает, например, такая строчка( "<?=$second_num;?>" ) вопрос и равно(?=). Заранее спасибо!!!
Это вам не это
25-й кадр вне форума
Старый 26.12.2013, 09:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
Описываем функции, принимающие два параметра для арифметических действий
Сложения
function addition($x,$y){
    $result = $x+$y;
    return $result;
}

Вычитания
function subtraction($x,$y){
    $result = $x-$y;
    return $result;
}

Умножения
function multiplication($x,$y){
    $result = $x*$y;
    return $result;
}

Деления
function division($x,$y){
    $result = $x/$y;
    return $result;
}

Это переменка результата
$answer = 0;

Если нажата кнопка субмита
    if(isset($_POST['submit'])){
Получим код операции и два операнда
        $operator = $_POST['operator'];
        $first_num = $_POST['first_num'];
        $second_num = $_POST['second_num'];

Проверим введены ли операнды верно, и представляют ли из себя вещ. числа        
        if(!filter_var($first_num, FILTER_VALIDATE_FLOAT) && !filter_var($second_num, FILTER_VALIDATE_FLOAT)){ 
Если нет "дай. Дай ин винтер"
            die("<script>alert('Вводите только цифры!')</script>"); 
        }

Если код операции add то вычислим сумму
        if($operator == 'add'){
            $answer = addition($first_num,$second_num);
        }elseif($operator == 'sub'){ Иначе разницу
            $answer = subtraction($first_num,$second_num);
        }elseif($operator == 'mul'){ и так далее
            $answer = multiplication($first_num,$second_num);
        }elseif($operator == 'div'){
            if($second_num == 0){
                die("<script>alert('На ноль делить нельзя!')</script>");
            }
            $answer = division($first_num,$second_num);
        }
    }
Цитата:
что означает, например, такая строчка( "<?=$second_num;?>" )
В HTML подставится значение из этой переменки.
I'm learning to live...
Stilet вне форума
Старый 26.12.2013, 10:02   #3
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Огромное С-П-А-С-И-Б-О-!-!-!
Это вам не это
25-й кадр вне форума
Старый 26.12.2013, 10:25   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста )
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень срочно критически мало времени Пожалуйста, очень надеюсь на вашу помощь. Задачки на Паскале VADOS2009-1 Помощь студентам 0 03.06.2009 00:00
Нужна помощь в Паскале. Очень-очень срочно. !!! Помощь студентам 2 09.02.2007 15:12