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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 484
#1

Законы Моргана - C++

03.03.2010, 19:10. Просмотров 1511. Ответов 4
Метки нет (Все метки)

У Дейтлов есть задачка

Не пойму, как !(условие1 && условие2) может быть эквивалентно (!условие1 || !условие2)? Первое сбудется, если и условие1, и условие2 не заданы. А второе, если не задано либо усл.1, либо усл.2. И со вторым та же история.
0
Миниатюры
Законы Моргана  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2010, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Законы Моргана (C++):

Реализовать законы Кеплера и Ньютона на С++ - C++
Есть идея реализовать законы Кеплера и Ньютона на С++, с визуализацией, для примитивных расчётов траекторий небесных тел. Собственно...

Какую часть занимают законы физики в C++ ? - C++
Я новичок. Мне интересно. Часто ли вам приходится выстраивать формулы законов физики. Т.е. много ли физики в языке C++ ? Да и вообще вот...

Множества, законы Де Моргана - Turbo Pascal
Доброго времени суток, уважаемые специалисты. Просветите тёмный лес. Задание: 1) Ознакомиться с представлением множеств в Turbo Pascal....

Как доказать законы де Моргана, используя свойства и аксиомы? - Информатика
!(x1x2)=!x1+!x2, где ! - знак отрицания. спасибо за помощь

Де-Моргана формулы - Дискретная математика
здрасти! а можно вот такое выражение (x+|y+|a+|b+c)*(|x+y+|a+|b+|c) упростить до |a+|b ? (| - отрицание, + - дизъюнкция, * -конъюнкция)

Доказать закон де Моргана... - Логика и множества
"^"-отрицание. доказать или опровергнуть ^(А\/B)=^A\/^B нашел только что это не соответствует законум де Моргана,как доказать не...

4
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
03.03.2010, 19:23 #2
тренируйте логику.
!(условие1 && условие2) возвращает истину если
не выполнились условия 1 или 2, т.е. не выполнилось либо 1е либо 2е, либо оба.
откуда следует эквивалентность выражений
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
03.03.2010, 19:25 #3
fs444, пусть условие1 и условие2 истинны, т.е. равны true.
Получаем:
!(true && true) = !(true) = false
(!true|| !true) = (false || false) = false

Пусть теперь оба условия ложны, т.е. равны false.
Получаем:
!(false && false) = !(false) = true
(!false || !false) = (true || true) = true

Пусть теперь условие1 истинно, а условие2 ложно.
Получаем:
!(true && false) = !(false) = true
(!true || !false) = (false || true) = true


Как мы видим, во всех трех случаях выражения !(условие1 && условие2) и (!условие1 || !условие2) эквивалентны.

А вообще, как мне кажется, закон Моргана не стоит того, чтобы его знать программисту, мало вероятно что тебе он когда-нибудь понадобиться.
0
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 484
03.03.2010, 19:43  [ТС] #4
тренируйте логику


пусть условие1 и условие2 истинны, т.е. равны true.
Получаем:
!(true && true) = !(true) = false
(!true|| !true) = (false || false) = false
Пусть теперь оба условия ложны, т.е. равны false.
Получаем:
!(false && false) = !(false) = true
(!false || !false) = (true || true) = true
Пусть теперь условие1 истинно, а условие2 ложно.
Получаем:
!(true && false) = !(false) = true
(!true || !false) = (false || true) = true
Ну да, точно

закон Моргана не стоит того, чтобы его знать программисту
Возможно. Наверное, Дейтлы просто решили, что выполнить его полезно для развития определенного образа мышления.
0
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 484
15.03.2010, 23:00  [ТС] #5
С помощью ваших подсказок решил приведенные Дейтлами уравнения так:
!(условие1 && условие2) == (!условие1 || !условие2)
!(условие1 || условие2) == (!условие1 && !условие2)

а) !(x < 5) && !(y >= 7) == !((x < 5) || (y >= 7))
б) !(a == b) || !(g != 5) == !((a == b) && (g != 5))
в) !((x <= 8) && (y > 4)) == (!(x <= 8) || !(y > 4))
г) !((i > 4) || (j <= 6)) == (!(i > 4) && !((j <= 6)))
Далее написано, что надо написать программу, которая показала бы эквивалентность первоначальных и новых выражений. Это, я так понимаю, надо ввести в нее значения х, у и других букв, а потом вывести что то вроде
При х = 3 и у = 5 (x < 5) = true, (y >= 7) = false.
!(x < 5) && !(y >= 7) = !true && !false = false && true = false
!((x < 5) || (y >= 7)) = !(true || false) = !true = false
Да?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2010, 23:00
Привет! Вот еще темы с ответами:

Задача с применением законов Де Моргана - Теория вероятностей
Доброго времени суток. Есть одна решенная задача, но непонятен один момент в её решении. Скрин прилагается. Проблема заключается в...

Пользуясь правилом де Моргана преобразовать выражения: - Логика и множества
Пользуясь правилом де Моргана преобразовать выражение: 1....

Перевести уравнение в базис «И - НЕ » по теореме Де Моргана - Логика и множества
Перевести минимизированное уравнение P = x2*x3+lx1*x3+x1*lx2*lx3 в базис «И - НЕ » пользуясь теоремой Де Моргана и построение...

Законы Кирхгофа - Электротехника
Помогите составить систему уравнений используя законы Кирхгофа. А то лаба горит, хоть убей не могу сделать.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
15.03.2010, 23:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru