За последние 24 часа нас посетили 16434 программиста и 1587 роботов. Сейчас ищут 1297 программистов ...

Программа работает не так как нужно

Тема в разделе "PHP для новичков", создана пользователем Denis1112, 29 окт 2024.

  1. Denis1112

    Denis1112 Новичок

    С нами с:
    29 окт 2024
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, я новичок в программировании. Сделал небольшую программу, однако она работает не так как мне нужно. По задумке, от большего должно отниматься меньшее, но почему у меня работает все наоборот?
    php.jpg php2.jpg Я подозреваю, что это из за оператора or в 13 строчке, если это так , то как тогда мне стоит отредактировать программу, чтобы выполнялось два этих условия
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    425
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день, Денис!
    Очень тяжело прочесть код по скриншоту.
    В редакторе сообщений, наверху есть символы, первый из них предназначен для ввода кодов.
    Покажите, пожалуйста, Ваш код используя эту опцию.
     
  3. Denis1112

    Denis1112 Новичок

    С нами с:
    29 окт 2024
    Сообщения:
    3
    Симпатии:
    0
    Вопрос решился , но если интересно , то у меня было так

    PHP:
    1. $firstNumber = 41;
    2. $secondNumber = 71;
    3. echo $firstNumber = . "<br>" . $secondNumber;
    4. if (($firstNumber % 2 == 0) and ($secondNumber % 2 == 0) and ($firstNumber > $secondNumber)) {
    5.    echo "<br>" . $firstNumber / $secondNumber;
    6. } elseif (($firstNumber % 2 == 0) and ($secondNumber % 2 == 0) and ($firstNumber < $secondNumber)) {
    7. echo "<br>" . $secondNumber / $firstNumber;
    8. } elseif (($firstNumber > $secondNumber) and ($firstNumber % 2 != 0) or ($secondNumber % 2 !=0))
    9. { echo "<br>" . $firstNumber - $secondNumber;
    10. } elseif ((($firstNumber < $secondNumber) and ($firstNumber % 2 !=0)) or ($secondNumber % 2 != 0))
    11. { echo "<br>" . $secondNumber - $firstNumber;
    12. }
    13.  
    14. //Правильный вариант
    15. $firstNumber = 41;
    16. $secondNumber = 71;
    17. echo $firstNumber . "<br>" . $secondNumber;
    18. if ($firstNumber % 2 == 0 && $secondNumber % 2 == 0) {
    19.     echo '<br>', max($firstNumber, $secondNumber) / min($firstNumber, $secondNumber);
    20. } elseif (($firstNumber % 2 != 0) or ($secondNumber % 2 != 0)) {
    21.     echo "<br>" , max($firstNumber, $secondNumber) - min($firstNumber, $secondNumber);
    22. }
     
  4. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    425
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Мне было интересно. Спасибо!
    Может быть и Вам будет интересно.
    Судя по Вашему правильному кода постановка задачи была такая:
    Нужно выполнить арифметические операции над двумя числами.
    Если оба числа четные, то нужно разделить большое чило на меньше.
    Если одно из чисел не четное то, нужно вычесть из большого числа мньшее.
    Для того в чтобы протестировать Ваше решение его я дополнил генератором случайных чисел,
    PHP:
    1. $i=0;
    2. while ($i < 100){
    3.       $firstNumber = rand(1,1000);
    4.       $secondNumber = rand(1,1000);
    5.     echo "$firstNumber<br>$secondNumber<br>";
    6.     echo $firstNumber % 2," ",$secondNumber % 2,"<br>";
    7.     if ($firstNumber % 2 == 0 && $secondNumber % 2 == 0)
    8.         echo "Division: ", max($firstNumber, $secondNumber) / min($firstNumber, $secondNumber);
    9.     elseif ($firstNumber % 2 != 0 or $secondNumber % 2 != 0)
    10.         echo "Subtraction:" , max($firstNumber, $secondNumber) - min($firstNumber, $secondNumber);
    11.     echo "<hr>";
    12. $i++;
    13. };
    Это моё решнние
    PHP:
    1. $i=0;
    2. while ($i < 100){
    3.       $numbers[0] = rand(1,1000);
    4.       $numbers[1] = rand(1,1000);
    5.       sort($numbers);
    6.     echo "{$numbers[1]}<br>{$numbers[0]}<br>";
    7.     echo $numbers[1] % 2," ",$numbers[0] % 2,"<br>";
    8.     if ($numbers[0] % 2 == 0 && $numbers[1] % 2 == 0)
    9.         echo "Division: ", $numbers[1] / $numbers[0];
    10.     else
    11.         echo "Subtraction: ", $numbers[1] - $numbers[0];
    12.     $i++;
    13.     echo "<hr>";
    14. };
    15. /*
    16. 816
    17. 387
    18. 0 1
    19. Subtraction: 429
    20.  
    21. 272
    22. 147
    23. 0 1
    24. Subtraction: 125
    25.  
    26. 703
    27. 67
    28. 1 1
    29. Subtraction: 636
    30.  
    31. 271
    32. 258
    33. 1 0
    34. Subtraction: 13
    35.  
    36. 570
    37. 270
    38. 0 0
    39. Division: 2.1111111111111
    40. */
    Удачи!
     
    #4 Vladimir Kheifets, 30 окт 2024
    Последнее редактирование: 30 окт 2024
  5. Denis1112

    Denis1112 Новичок

    С нами с:
    29 окт 2024
    Сообщения:
    3
    Симпатии:
    0
    Ого, как раз сейчас циклы прохожу, спасибо за решение!
    буду разбираться