За последние 24 часа нас посетили 36357 программистов и 7883 робота. Сейчас ищут 1779 программистов ...

Сделать калькулятор c помощью function.

Тема в разделе "PHP для новичков", создана пользователем Viki, 25 авг 2023.

  1. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    Как сделать калькулятор?

    3 входящих параметра:
    1. Первое число
    2. Второе число
    3. Действие (плюс, минус, умножить, поделить).

    По примеру: function calc($num1,$num2,$action)

    помогите пж решить эту задачу.
     
  2. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3. function calculate ($a, $b, $action) {
    4.     if ($action = '+') {
    5.         $c = $a + $b;
    6.     } else {
    7.         $c = $a - $b;
    8.     }
    9.     return $c;
    10. }
    11.  
    12. $a = 5;
    13. $b = 10;
    14. $action = '+';
    15.  
    16. echo calculate($a, $b, $action);
    17.  
    18. ?>
    чего тут не хватает?
     
    #2 Viki, 25 авг 2023
    Последнее редактирование модератором: 26 авг 2023
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Умножения и деления, как минимум
     
  4. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    не смогла) добавить умножения и деления :(
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    а как ты написала всё остальное ?
    --- Добавлено ---
    Только через диван
     
  6. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Изучите конструкцию SWITCH...CASE
    https://phpize.online/s/IW
     
  7. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    --- Добавлено ---

    Изучите конструкцию SWITCH...CASE - просто на уроке я их еще не проходила. но изучу. Данный свой код написала, как я поняла.
     
  8. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Напиши на каждое действие отдельный IF или ELSEIF если знаешь
     
  9. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0

    function calculate ($a, $b, $action) {
    if ($action == '+') {
    $c = ($a + $b);
    }
    elseif ($a - $b) {
    }
    elseif ($a * $b) {
    }
    elseif ($a / $b) {
    }

    return $c;
    }

    $a = 5;
    $b = 10;
    $action = '+';

    echo calculate($a, $b, $action);


    Примерно так пробовала. код не работает. Не понимаю как еще написать. Я еще до конца не изучила if else elsif. поэтому немного сложно. Php 2 недели как только начала изучать. но так много нюансов при написании кода.
     
  10. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Уже лучше! Сейчас ещё раз посмотрите в документации на синтаксис команды ELSEIF и исправьте ошибки
     
  11. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    Хорошо. как исправлю отправлю, проверьте пжаа.
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    Это устарело. Используй match
     
  13. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0

    надеюсь в след уроках пройду. Спасибо вам за совет!
     
  14. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Пишите мне в тг https://t.me/phpize_online
     
  15. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    Хорошо.
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
  17. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0

    не поняла) какой ответ?
     
  18. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0
    function calculate ($a, $b, $action) {
    if ($action == '+') {
    $c = ($a + $b);
    } else {
    $c = ($a - $b);
    }
    if ($action == '*') {
    $c = ($a * $b);
    } else {
    $c = ($a / $b);
    }

    return $c;
    }

    $a = 5;
    $b = 10;
    $action = '/';

    echo calculate($a, $b, $action);

    я написала вот таким образом. код работает. я проверила. Единственное не получается написать через elsif. Можете подсказать или хотяб показать одну пример.
     
  19. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Код (Text):
    1. if ($action == '+')
    2. {
    3.     $a += $b;
    4. }
    5. else if ($action == '-')
    6. {
    7.     $a -= $b;
    8. }
    9. else if ($action == '*')
    10. {
    11.     $a *= $b;
    12. }
    13. else if ($action == '/' && $b != 0)
    14. {
    15.     $a /= $b;
    16. }
    17.  
    18. echo $a;
     
  20. Viki

    Viki Новичок

    С нами с:
    25 авг 2023
    Сообщения:
    14
    Симпатии:
    0

    спасибо вам
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    Это рофл такой ? использовать проверку значения в switch, чтобы снова потом проверить значение в if
     
  22. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    согласен, спасибо за наводку)
    PHP:
    1. <?php
    2.  
    3. $a = 10;
    4. $b = 3;
    5. $r = '*';
    6.  
    7. function calc($a, $b, $r)
    8. {
    9.     switch ($r){
    10.         case '+':
    11.             $a += $b;
    12.         break;
    13.    
    14.         case '-':
    15.             $a -= $b;
    16.         break;
    17.    
    18.         case '*':
    19.             $a *= $b;
    20.         break;
    21.    
    22.         case '/':
    23.             if ($b != 0)
    24.                 $a /= $b;
    25.             else
    26.                 exit ('Делить на 0 нельзя');
    27.         break;
    28.     }
    29.    
    30.     echo $a;
    31. }
    32.  
    33. echo calc($a, $b, $r);
     
  23. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    @_ne_scaju_, теперь замени switch на match и в нем еще добавь default. Ибо я $r = '%'; захочу набрать, а он мне 10 выведет
     
  24. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    почитал про match, так он работает только в 8-й версии, а что если у тебя ниже версия, а вот default можно добавить, нюансы знаешь)
    PHP:
    1. case '+':
    2. case '/':
    3. default:
    4. echo 'что-то ввели не то!';