Problem z podstawowymi operacjami logicznymi
Ostatnio zmodyfikowano 2017-10-15 20:46
programistamator Temat założony przez niniejszego użytkownika |
Problem z podstawowymi operacjami logicznymi » 2017-10-15 20:32:20 Dzień dobry, chciałem poeksperymentować z operacjami logicznymi tak jak jest w kursie napisane i zmieniłem program, który jest w kursie na taki: wynik = false && false || !true && true || !( !true && true ); i teraz wynik wyświetla mi 1, kiedy na mój rozum zgodnie z kolejnością wykonuję działania tak:
wynik = false && false || !true && true || !( false && true ); wynik = false && false || !true && true || !false; wynik = false && false || !true && true || true; wynik = false && false || false && true || true; wynik = false && false && true || true; wynik = false && false && true; wynik = false && true; wynik = false; Czyli powinien być zero. Co robię nie tak? |
|
matmati |
» 2017-10-15 20:36:07 chodzi o to, że w wynik = false && false || !true && true || !( false && true ); && oznacza znak oraz czyli oba warunki muszą być spełnione a || oznacza lub. wykrzyknik oznacza , ze coś jest odwrotne. tak więc jeśli jedna z tych (||) rzeczy jest prawdziwa wtedy wynik będzie 1 a jeśli nie ( co tutaj jest nie możliwe) wynik będzie równy 0. |
|
Luq |
» 2017-10-15 20:44:52 Operator && ma wyższy priorytet od ||, więc ten zapis jest równoważny z ( false && false ) ||( !true && true ) || !( false && true ) |
|
matmati |
» 2017-10-15 20:46:34 tak więc jeśli choć jedna z tych opcji jest prawdziwa wtedy wynik będzie 1 np jeśli będą 2 razy false lub true |
|
mateczek |
» 2017-10-15 20:46:36 nie jesteś pewny priorytetów stosuj nawiasy #include <iostream> int main() { bool b = false && false || true; std::cout << b << std::endl; b = false &&( false || true ); std::cout << b << std::endl; }
|
|
« 1 » |