Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 10
1

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

23.11.2014, 00:06. Показов 4842. Ответов 7
Метки нет (Все метки)

Записать логическое выражение, которое является истинным, когда число N чётное делится на 7, но не делится на 11 и 13 без остатка.
Правильно но ли я понял условие?
Пишу в С++ Builder, формы.

C++
1
2
3
4
5
6
bool p=false;
        int n=StrToInt(Edit1->Text);
 
        if (n%2==0 && n%7==0 && n%13!=0 && n%11!=0) p=true;
        if (p) ShowMessage("Истина");
                else ShowMessage("Ложь");
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2014, 00:06
Ответы с готовыми решениями:

Логическое выражение
Здравствуйте. Запишите логическое выражение, которое принимает значение "истина" тогда и только...

Написать логическое выражение
как написать формулы на с++ формула во вложении Когда же, наконец, Вы запомните П.5.18.Правил ...

Вычислить логическое выражение
Помогите написать программу!!!

Составное логическое выражение
Здравствуйте, у меня возник вопрос насчёт оператора if. Мне нужно задать 2 условия для проверки,...

7
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 3
23.11.2014, 00:13 2
arhorn3, вроде да вот такой же код на паскале
Pascal
1
((n mod 7)=0 and (n mod 11)<>0) and ((n mod 13)<>0)
0
С чаем беда...
Эксперт CЭксперт С++
9263 / 4762 / 1289
Регистрация: 18.10.2014
Сообщений: 10,842
23.11.2014, 00:34 3
Цитата Сообщение от arhorn3 Посмотреть сообщение
Правильно но ли я понял условие?
Логическое выражение составлено правильно. Можно было просто прямо присвоить результат выражения в 'p', а не выстраивать if-ы

C++
1
p = n % 2 == 0 && n % 7 == 0 && n % 13 != 0 && n % 11 != 0;
0
Модератор
Эксперт по электронике
8514 / 6329 / 857
Регистрация: 14.02.2011
Сообщений: 21,985
23.11.2014, 00:42 4
Цитата Сообщение от arhorn3 Посмотреть сообщение
if (n%2==0 && n%7==0 && n%13!=0 && n%11!=0) p=true;
тавтология
гораздо проще( и понятней)
C
1
2
3
4
if (n%2==0 && n%7==0 && n%13!=0 && n%11!=0)
      ShowMessage("Истина");
 else
        ShowMessage("Ложь");
Добавлено через 4 минуты
Цитата Сообщение от arhorn3 Посмотреть сообщение
когда число N чётное делится на 7,
это значит делится на 14

можно упростить
C
1
2
3
4
if (n%14==0 && n%13!=0 && n%11!=0)
       ShowMessage("Истина");
else 
       ShowMessage("Ложь");
далее
ложью в Си является 0 истиной не 0
следовательно выражение можно записать так
C
1
2
3
4
if (!(n%14) && n%13 && n%11 )
       ShowMessage("Истина");
else 
       ShowMessage("Ложь");
0
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 10
23.11.2014, 03:00  [ТС] 5
А как проверить, что было введено именно целое число? Вроде бы остаток от деления только на целые работает.
0
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
23.11.2014, 03:11 6
arhorn3,
C++
1
2
3
int i;
    std::cin >> i;
    std::cout << i;
Введите НЕ целое число и посмотрите на вывод, дробная часть отбросится.

Ну и ещё для бонусного понимания:
C++
1
2
    double ff = 123.455f;
    std::cout << std::boolalpha << (double(int(ff)) == ff) << std::endl;
0
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 10
23.11.2014, 12:14  [ТС] 7
Введите НЕ целое число и посмотрите на вывод, дробная часть отбросится.
Мне наоборот нужно проверить что введено именно целое, и если нет, то вывести ошибку.
Иначе могут ввести например 14,06, дробная часть отбросится и на выходе мы получим Истину
0
1378 / 405 / 144
Регистрация: 22.10.2014
Сообщений: 872
23.11.2014, 14:51 8
arhorn3,
C++
1
(double(int(ff)) == ff)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2014, 14:51

Записать логическое выражение
Записать логическое выражение, которое принимает значение TRUE, если точка с заданными координатами...

Неправильно вычисляется логическое выражение
В этом отрывке программы у меня программа не замечает условие,почему? То есть она выводит не для...

Логическое выражение в операторе присваивания
int a=num&lt;0?-num:num; int b=den&lt;0?-den:den; Не могу понять как в данном случае работает...

Логическое выражение в условном операторе
На поле (k, l) расположен слон. Угрожает ли он полю (m, n)?


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

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

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