Форум программистов, компьютерный форум CyberForum.ru

Конъюнкция и дизъюнкция - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 5.00
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
10.10.2013, 19:34     Конъюнкция и дизъюнкция #1
Есть такой участок кода:

C++
1
2
3
4
5
6
7
8
while ((value[0] != 0) || (value[1] != 0))
    {
        for (int i = 0; i < 2; i++)
        {
            cout << "Введите число №" << i+1 << " : ";
            cin >> value[i];
        }
    }
По идее, если одно из двух значений будет равно 0, то цикл должен прекратится. Но он прекращается только когда оба значения равны нулю! А если поставлю && вместо ||, то тогда работает правильно! Как это объяснить?
|| это логическое ИЛИ, а && - логическое И, я же правильно говорю?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 19:34     Конъюнкция и дизъюнкция
Посмотрите здесь:

Конъюнкция двух условий. Delphi
Поразрядная конъюнкция битов на Assemblere Assembler
Найти число булевых функций от n переменных таких, что в их СДНФ любая элементарная конъюнкция содержит хотя бы 2 отрицания
конъюнкция и импликация
C++ Дополнительно перегрузить логическую операторную функцию для операции | (побитовая дизъюнкция), определяющую параллельность двух отрезков
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 19:38     Конъюнкция и дизъюнкция #2
C++
1
while ((value[0] != 0) && (value[1] != 0))
Делать пока value[0] не равняется нулю и пока value[1] не равняется нулю. Если одно из этих значений будет равняться нулю, тогда условие будет ложно и цикл прекратиться.
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
10.10.2013, 19:40  [ТС]     Конъюнкция и дизъюнкция #3
Цитата Сообщение от castaway Посмотреть сообщение
C++
1
while ((value[0] != 0) && (value[1] != 0))
Делать пока value[0] не равняется нулю и пока value[1] не равняется нулю. Если одно из этих значений будет равняться нулю, тогда условие будет ложно и цикл прекратиться.
Все, понял почему. Нужно учить таблицы истинности.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 19:43     Конъюнкция и дизъюнкция #4
Просто нужно вдуматься в смысл написанного. Если ты знаешь для чего нужны круглые скобки и что такое логическое И и логическое ИЛИ, то никакие таблицы читать не надо.
Yandex
Объявления
10.10.2013, 19:43     Конъюнкция и дизъюнкция
Ответ Создать тему
Опции темы

Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru