Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631

Объясните словесно плиз одну функцию небольшую

21.10.2011, 14:37. Показов 1924. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
bool IsEven(int val)
 {
 bool valIsEven = val%2 ? false : true;
 return valIsEven;
 }
Люди не могу понять словесно как функия выполняется... ну вот что за тип такой bool ? тип где применяется истина и лож? и как она тут применяется? функция определения четное число или нет это понимаю... делам на 2 с определением остатка... если нету значит четное... не могу понять что за знак вопроса после стоит? что он означает? и дальше строчку false:true...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2011, 14:37
Ответы с готовыми решениями:

Объясните пожалуйста одну функцию
Здравствуйте! Помогите пожалуйста!!! Нужно объяснить: Почему у этой функции sum(i, n, h, mas, k); когда я меняю k,...

Объясните плиз
Объясните плиз эти строки SetLength(LMsg, AData.Size); AData.ReadBuffer(LMsg, Length(LMsg));

Оцените еще одну небольшую сборку.
Вот решил собрать комп. боле менее подобрал но сам та не спец может что то и нето подобрал. Вобще посмотрите и оцените если нетрудно)) ...

12
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
21.10.2011, 14:41
Цитата Сообщение от lexflax Посмотреть сообщение
тип где применяется истина и лож
да
Цитата Сообщение от lexflax Посмотреть сообщение
функция определения четное число
да
Цитата Сообщение от lexflax Посмотреть сообщение
делам на 2 с определением остатка... если нету значит четное...
да
Цитата Сообщение от lexflax Посмотреть сообщение
не могу понять что за знак вопроса после стоит? что он означает? и дальше строчку false:true...
гугли по запросу "тернарный оператор"
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
21.10.2011, 14:42
bool имеет два значение: true (истина) и false (ложь). При конвертировании из других типов в bool ложь при нуле, истина при остальных значениях.
этот код
C++
1
bool valIsEven = val%2 ? false : true;
аналогичен
C++
1
2
3
bool valIsEven;
if(val%2) valIsEven = false;
else valIsEven = true;
хотя можно было проще написать:
C++
1
2
3
4
bool IsEven(int val)
{
return !(val%2);
}
1
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
21.10.2011, 15:18  [ТС]
C++
1
2
3
4
if ( IsEven(a) ) cout << "\n а = " << a << " - четное";
 if ( IsEven(b) ) cout << "\n b = " << b << " - четное";
 if ( IsEven(c) ) cout << "\n c = " << c << " - четное";
 break;
вот потом тут вызывается та функция для каждого значения отдельно, а б и с это целые числа... вот уточнить хотел из той функции если четное возвращается истина , и что с ней дальше можно делать? тут после вызова идет оператор вывода, тоесть автоматические если вернулась истина он вывелся и сказал что четное, а можно было и поставить какой то ввод чтоб автоматически был если вернулась единица? тоесть истинна?
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
21.10.2011, 15:48
Можно было бы так написать:
C++
1
2
3
4
5
int IsEven(int val)
 {
 int valIsEven = val%2 ? 0 : 1;
 return valIsEven;
 }
Было бы тоже самое. Вместо единицы можно любое число, отличное от нуля.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
21.10.2011, 15:49  [ТС]
Цитата Сообщение от lexflax Посмотреть сообщение
вот потом тут вызывается та функция для каждого значения отдельно, а б и с это целые числа... вот уточнить хотел из той функции если четное возвращается истина , и что с ней дальше можно делать? тут после вызова идет оператор вывода, тоесть автоматические если вернулась истина он вывелся и сказал что четное, а можно было и поставить какой то ввод чтоб автоматически был если вернулась единица? тоесть истинна?
ну это ясно ну а вообще по сути вопроса? если вернутеся отличное от нуля значение то можно что с ним уже делать?
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
21.10.2011, 15:52
Цитата Сообщение от lexflax Посмотреть сообщение
если вернутеся отличное от нуля значение то можно что с ним уже делать
Не очень понимаю вопрос.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
21.10.2011, 15:57  [ТС]
Цитата Сообщение от lexflax Посмотреть сообщение
if ( IsEven(a) ) cout << "\n а = " << a << " - четное";
if ( IsEven(b) ) cout << "\n b = " << b << " - четное";
if ( IsEven(c) ) cout << "\n c = " << c << " - четное";
break;
вот вызов той функции к трем переменным введных с клавиатуры, выполнилась функция вернулось отличное от нуля значение тоесть истинна и после этого пошел вывод сообщения что оно четное, оно ведь пошло автоматически... тоесть если бы вернулось 0 , тоесть лож то оно не вывелось? а можно было туда поставить не вывод , а допустим ввод или вообще любое другое выражение чтоб автоматически производилось если бы возвращалась истинна
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
21.10.2011, 15:59
lexflax, да, можно написать любой код, который захотите, который выполнится, если возвратится истина.
1
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
21.10.2011, 16:00  [ТС]
спасибо это и хотел узнать)
0
21.10.2011, 20:20

Не по теме:

Nameless One, поражаюсь твоей проницательности... Я лично пока не понял ни слова из того, что написал в этой теме ТС...

0
0 / 0 / 0
Регистрация: 29.03.2014
Сообщений: 20
29.03.2014, 21:02
Подскажете, пожалст, почему val%2? false : true; для чётных true, а для нечётных false? что именно подвергается проверке на истинность? ведь 4%2==0, а "0" это ж false, 3%2==1, а "1" это должен быть true?
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
29.03.2014, 21:23
dima__, тернарный оператор работает следующим образом: если первый операнд соответствует значению true, то вычисляется и возвращается второй операнд, в противном случае вычисляется и возвращается третий операнд. Таким образом, 4 % 2 == 0 == false, следовательно, будет вычислен и возвращён третий операнд, т.е. в данном случае true. 3 % 2 == 1 == true, следовательно, результатом всего выражения будет false (второй операнд тернарного оператора). Фактически, это выражение эквивалентно следующему: !(val % 2).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2014, 21:23
Помогаю со студенческими работами здесь

Модераторы, администраторы - объясните, плиз
А что было в теме &quot;установлю 1С:8.0, настрою под Ваше предприятие&quot; и почему она закрыта? не я открывал эту тему, но все же хотелось бы...

Портировать одну небольшую консольную програмку из linux в Windows
Здравствуйте. Возникла необходимость портировать одну небольшую консольную програмку из linux в windows(программа из Android ota tools,...

Не могу написать одну небольшую программку (знаю как звучит)
Помогите написать программу. Смысл программы в следующем. Это окно с 2-мя кнопками. &quot;Exit&quot; и &quot;Run&quot;. При...

Уважаемые гуру! Объясните плиз как это работает?
Собственно говоря есть вот такая схема, как я понимаю из разряда стабилизаторов . На входе меняется ток от 3мА в минимуме до 12 мА в макс....

Посчитать небольшую функцию)
Вот эта ф-ция, жду вашей помощи)


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru