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

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

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

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

23.11.2014, 00:06. Просмотров 597. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 00:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Логическое выражение (C++):

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

Записать логическое выражение - C++
Записать логическое выражение, которое принимает значение TRUE, если точка с заданными координатами x и y попадает в заштрихованную...

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

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

Логическое выражение в условном операторе - C++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8: первое – номер вертикали, второе – номер...

Объясните пожалуйста логическое выражение - C++
#include<iostream> #include<conio.h> #include<cstring> using namespace std; int main(){ int nober=0;// количество слов bool...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fullgean
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
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3826 / 2084 / 532
Регистрация: 18.10.2014
Сообщений: 3,699
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
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
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
arhorn3
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 10
23.11.2014, 03:00  [ТС] #5
А как проверить, что было введено именно целое число? Вроде бы остаток от деления только на целые работает.
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
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
arhorn3
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 10
23.11.2014, 12:14  [ТС] #7
Введите НЕ целое число и посмотрите на вывод, дробная часть отбросится.
Мне наоборот нужно проверить что введено именно целое, и если нет, то вывести ошибку.
Иначе могут ввести например 14,06, дробная часть отбросится и на выходе мы получим Истину
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 14:51 #8
arhorn3,
C++
1
(double(int(ff)) == ff)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2014, 14:51
Привет! Вот еще темы с ответами:

Неправильно вычисляется логическое выражение - C++
В этом отрывке программы у меня программа не замечает условие,почему? То есть она выводит не для 1-3,100,200,300,700,1000,1426,а выводит...

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

Логическое выражение в виде дерева - C++
Подскажите, , как представить логическое выражение b=--n&amp;&amp;b==a в виде дерева? ( просто схематические ) Добавлено через 5 часов 54...

Нужно написать логическое выражение в printf - C++
Помогите написать логическое выражение в printf, так чтобы она на экран выводила в строку, допустим, только 10 элементов массива, я вот...


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

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

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