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

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

Войти
Регистрация
Восстановить пароль
 
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
#1

Логические выражение - C++

25.05.2014, 10:12. Просмотров 625. Ответов 22
Метки нет (Все метки)

Не могу уловит логику логичесих операторов. А выучит что они делают не могу (не могу запомнит то чего не понимаю).
Пример. Логичесий оператор AND действует как оператор умножение. Но как использовать его в реальных программах?
Пример.
a > b && b > c. Я знаю что это выражение означает что а больше б и б больше с. Но какой в этом смысл, если учитывать что, оператор AND работает аналогично оператору умножение но не с высоким приоритетом? Каким образом определяется что означает (a > b) * (b > c)? Итог будет тру если оба операнда тру. Других вариантов просто нет. В машине тру означает что есть сигнал (или 1). Чтоб операнд оператора AND был тру ( 1) выражение a > b должно получит значение 1. Но каким образом это выражение может получит значение одного сигнала ( один бит или байт с значением 1) что означает тру??? Если посмотреть как работает оператор > то как сравнивается байты чтоб итог получился один.
Оператор AND самый простой не много в нем понимаю. По этому и привел пример с него. Других операторов вообще не могу понять.
Как вы научились работать с логическими выражениями?

Подскажите книгу посвященную логическим выражениям или объясните что, как и почему.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2014, 10:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Логические выражение (C++):

Записать логические выражения, используя условные операторы, операции отношений и логические операции - C++
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка ...

Логические операции (Логические &&, ||) (Побитовые &, |) - C++
Здравствуйте! Имеется вопрос. К примеру, когда пишут вот так : ... if(i>5 && j>5) ... if(i>5 || j>5) ... Тут все понятно, в...

Подставить в заданное выражение знаки +,-,*,/ так, чтобы выражение было истинным - C++
Помогите плз! Надо подставить в заданное выражение знаки +,-,*,/ так, чтобы выражение было истинным: ((((((1 2) 3) 4) 5) 6)=36 ...

Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» — True, «F» — False): <выражение> : - C++
помогите пожалуйста решить задачку на рекурсию Вывести значение логического выражения, заданного в виде строки S. Выражение определяется...

Логические операторы - C++
Верно ли уж так на все 100%, что выполнение логических операций по укороченной схеме заведомо эффективнее, нежели чем безусловное...

Логические операции - C++
Если есть условие: m =(n+2) или k = (n+4), и выполняетcя и первое и второе (n=2, m=4, k=6), то результат истина или ложь?

22
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
25.05.2014, 10:25 #2
Цитата Сообщение от Altair42 Посмотреть сообщение
Подскажите книгу посвященную логическим выражениям или объясните что, как и почему.
Любой учебник по мат логике или раздел матлогики в учебниках по дискретке.

Добавлено через 2 минуты
Хотя для такого вопроса это дикий overkill. Здравый смысл никто не отменял, и на уровень ассемблера для этого спускаться не обязательно.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
25.05.2014, 10:52  [ТС] #3
0x10, Я давно понял что в программирование своя математика не имеющая не чего общего с той которого мы изучали в школе.

О каком здравом смысле вы говорите? Я не могу понят как работают логические операторы. Так как не могу понят их не могу запомнит их действие.

Это как бы запомнит 2+2 = 4 не зная как получается 4.
Очень сложно запомнит то чего не понимаю как работает и откуда получается. Когда учился школе 12 часов без остановки учил стих (лучшее стихотворение о матери хотел запомнит). Через час забыл половину. Десятки раз перечитал теорему Пифагора не мог запомнит но умел доказать его 5-ю разными способами.
0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
25.05.2014, 10:58 #4
Ну если прочитать "if (a > b and b > c) { /* делаем что-то */ }" - "если А больше Б и Б больше Ц тогда делаем что-то", то без спецобразования все ясно. Если не ясно - можно подумать о других профессиях.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
25.05.2014, 11:14  [ТС] #5
0x10, речь не именно об этом выражение. Оператор AND можно использовать в многих комбинациях выражений и это зависит от уровня знаний и воображений программиста. Как и оператор OR и другие.

Понят само выражение одно. Понят почему это именно так работает. Вот что мне нужна. Я просто не смогу использовать данный оператор в других выражениях. Ибо это не всегда выглядит так просто.

А как на счет оператора OR? Возвращает тру если любой из операндов тру. Это поняли. Но почему, каким образом, как использовать?

Добавлено через 4 минуты
Я понимаю что опят делаю из мухи слона но такие вот вопросы мешают мне. Мысли путаются и не знаю что делать. Лучше знать ответы чтоб не мучатся.
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.05.2014, 11:18 #6
Цитата Сообщение от Altair42 Посмотреть сообщение
Возвращает тру если любой из операндов тру. Это поняли
если поняли - молодец. примите это как данность, вы же не спрашиваете почему буква "А" первая в алфавите, а "Я" последняя
0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
25.05.2014, 11:18 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Altair42 Посмотреть сообщение
Но почему, каким образом, как использовать?
Дизъюнкция
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
25.05.2014, 11:39  [ТС] #8
0x10, спасибо.
0
alsav22
25.05.2014, 11:43
  #9

Не по теме:

Цитата Сообщение от Altair42 Посмотреть сообщение
Мысли путаются и не знаю что делать.
Вы хотите, чтабы они и у нас запутались? Озадачиваете такими фразами:
Цитата Сообщение от Altair42 Посмотреть сообщение
Это как бы запомнит 2+2 = 4 не зная как получается 4.
Вот я задумался: а дейтсвительно, как? Теперь тоже буду мучиться.

0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
25.05.2014, 11:52  [ТС] #10
Цитата Сообщение от Jupiter Посмотреть сообщение
если поняли - молодец. примите это как данность, вы же не спрашиваете почему буква "А" первая в алфавите, а "Я" последняя
Вообще то спрашивал
В независимости от ситуации я всегда задаюсь вопросом -почему? На которого чаше всего не находится прямого ответа. Понимание сути помогает мне запомнит. Чтоб запомнит Дискриминант мне пришлось самому вычислит его.

Добавлено через 7 минут
alsav22, 2 + 2 это не дословно. Просто пример. И я не хочу чтоб мысли путались. Такие вопросы как - почему? не зависит от меня. Вы говорите с человеком у которого максимальная оценка по литературе, истории, биологии тройка ( там надо было запомнит). Анатомия -раздел генетики, нервной системы, физика, химия, алгебра пятерка (надо было думать и понять).
0
alsav22
25.05.2014, 11:58
  #11

Не по теме:

Цитата Сообщение от Altair42 Посмотреть сообщение
Вы говорите с человеком у которого максимальная оценка по литературе, истории, биологии тройка ( там надо было запомнит). Анатомия -раздел генетики, физика, химия, алгебра пятерка (надо было думать и понять).
Скромность украшает...Вы у меня, в "чёрном списке", значитесь: "..., дела не иметь."

0
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,069
25.05.2014, 12:07 #12
Не знаю как это коротко называется, поэтому опишу как выглядит со стороны.

Есть задача: скипятить воду. Есть чайник, есть кран. Налей, да поставь.
Вместо этого человек сначала изучает полный курс физики, чтобы досконально понять что есть кипение. Затем погружается в курс электроники. Чайник-то от электричества работает, как им пользоваться, не зная соответствующей теории. Потом осознает, что вода к нему не по воздуху попала, а через трубы - изучает инженерные аспекты строительства трубопроводов.

Проходит 10 лет. Прочитано много литературы, усвоено - минимум, полезного - еще меньше.
Одна проблема - воду не скипятил.
1
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 344
25.05.2014, 13:12  [ТС] #13
0x10, как вы собираетесь кипятит воду не зная как зажечь огонь? как открыт кран?

Добавлено через 7 минут
И причем тут вода и кран? Я не мог запомнит что оператор OR возвращает тру если один из операндов тру. Пока не прочел страничку которую вы мне дали.
Я знаю как работает оператор AND только потому что это аналог простого умножение. Там все просто умножит 1 на 1 или 1 на 0.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.05.2014, 13:22 #14

Не по теме:

Цитата Сообщение от Altair42 Посмотреть сообщение
0x10, как вы собираетесь кипятит воду не зная как зажечь огонь? как открыт кран?
Теперь и 0x10 будет мучиться...



Добавлено через 1 минуту
Цитата Сообщение от Altair42 Посмотреть сообщение
Там все просто умножит 1 на 1 или 1 на 0.
А почему, если умножить 1 на 1 получается 1, а если 1 на 0, то получается 0? Не задумывались?
0
0x10
25.05.2014, 13:22     Логические выражение
  #15

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Теперь и 0x10 будет мучиться...
Блин, теперь я не имею права поворачивать кран, пока не прочитаю весь курс механики...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2014, 13:22
Привет! Вот еще темы с ответами:

Логические операции - C++
Привет всем, можете объяснить, как в матлабе получается 1(True). x=2; y=3; x&amp;y ans = 1;

Логические сдвиги - C++
Вводим число 'k', где k=2n. Должно вывести 'n'. Решить при помощи логических сдвигов.

Логические выражения - C++
double ko; do { cout &lt;&lt; &quot;Для однослойной обмотки обмоточный коэффицент равен 0.96, для двуслойной обмотки 0.92:&quot;; cin &gt;&gt;...

Логические выражения - C++
Выражение if((13/13)) - Результатом будет 1. Это выражение считается правдой, так как ответ отличается от нуля. Если же if(!(13/13)) -...


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

Или воспользуйтесь поиском по форуму:
15
25.05.2014, 13:22
Ответ Создать тему
Опции темы

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