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

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

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

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

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

C++
1
2
3
4
5
bool IsEven(int val)
 {
 bool valIsEven = val%2 ? false : true;
 return valIsEven;
 }
Люди не могу понять словесно как функия выполняется... ну вот что за тип такой bool ? тип где применяется истина и лож? и как она тут применяется? функция определения четное число или нет это понимаю... делам на 2 с определением остатка... если нету значит четное... не могу понять что за знак вопроса после стоит? что он означает? и дальше строчку false:true...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните словесно плиз одну функцию небольшую (C++):

Объясните, зачем класс мог бы предусматривать для элемента данных set-функцию и get-функцию - C++
Объясните, зачем класс мог бы предусматривать для элемента данных set-функцию и get-функцию.

Объясните пожалуйста одну строку в коде - C++
Объясните пожалуйста . #include <iostream> #include <cstring> using namespace std; void mystrcat(char *s1,char *s2,int...

Блок-схема (просто словесно) - C++
Вот к этому коду нужна блок схема помогите плиз хоть словесным алгоритмом (ну типа начало --> в ромбике ф-ция 1 и тд.) задача ...

Объясните функцию? - C++
Нужно объяснить и написать вызов функции. Функция связана со строками, но что делает не пойму. int F(char *p){ int n; if...

Объясните функцию strtok - C++
расскажите алгоритм void prv(char*a) char* cr = 0; cr = strtok((a)?a:0," "); if(!cr) return; prv(0); cout << cr <<...

Объясните данный алгоритм/функцию - C++
http://rabus.ru/mc/methodOfCoord.html#prim_1 Собственно каким образом это должно происходить? Как вообще и на основании чего это...

12
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
21.10.2011, 14:41 #2
Цитата Сообщение от lexflax Посмотреть сообщение
тип где применяется истина и лож
да
Цитата Сообщение от lexflax Посмотреть сообщение
функция определения четное число
да
Цитата Сообщение от lexflax Посмотреть сообщение
делам на 2 с определением остатка... если нету значит четное...
да
Цитата Сообщение от lexflax Посмотреть сообщение
не могу понять что за знак вопроса после стоит? что он означает? и дальше строчку false:true...
гугли по запросу "тернарный оператор"
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
21.10.2011, 14:42 #3
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
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
21.10.2011, 15:18  [ТС] #4
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
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
21.10.2011, 15:48 #5
Можно было бы так написать:
C++
1
2
3
4
5
int IsEven(int val)
 {
 int valIsEven = val%2 ? 0 : 1;
 return valIsEven;
 }
Было бы тоже самое. Вместо единицы можно любое число, отличное от нуля.
0
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
21.10.2011, 15:49  [ТС] #6
Цитата Сообщение от lexflax Посмотреть сообщение
вот потом тут вызывается та функция для каждого значения отдельно, а б и с это целые числа... вот уточнить хотел из той функции если четное возвращается истина , и что с ней дальше можно делать? тут после вызова идет оператор вывода, тоесть автоматические если вернулась истина он вывелся и сказал что четное, а можно было и поставить какой то ввод чтоб автоматически был если вернулась единица? тоесть истинна?
ну это ясно ну а вообще по сути вопроса? если вернутеся отличное от нуля значение то можно что с ним уже делать?
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
21.10.2011, 15:52 #7
Цитата Сообщение от lexflax Посмотреть сообщение
если вернутеся отличное от нуля значение то можно что с ним уже делать
Не очень понимаю вопрос.
0
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
21.10.2011, 15:57  [ТС] #8
Цитата Сообщение от lexflax Посмотреть сообщение
if ( IsEven(a) ) cout << "\n а = " << a << " - четное";
if ( IsEven(b) ) cout << "\n b = " << b << " - четное";
if ( IsEven(c) ) cout << "\n c = " << c << " - четное";
break;
вот вызов той функции к трем переменным введных с клавиатуры, выполнилась функция вернулось отличное от нуля значение тоесть истинна и после этого пошел вывод сообщения что оно четное, оно ведь пошло автоматически... тоесть если бы вернулось 0 , тоесть лож то оно не вывелось? а можно было туда поставить не вывод , а допустим ввод или вообще любое другое выражение чтоб автоматически производилось если бы возвращалась истинна
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
21.10.2011, 15:59 #9
lexflax, да, можно написать любой код, который захотите, который выполнится, если возвратится истина.
1
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
21.10.2011, 16:00  [ТС] #10
спасибо это и хотел узнать)
0
silent_1991
21.10.2011, 20:20
  #11

Не по теме:

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

0
dima__
0 / 0 / 0
Регистрация: 29.03.2014
Сообщений: 20
29.03.2014, 21:02 #12
Подскажете, пожалст, почему val%2? false : true; для чётных true, а для нечётных false? что именно подвергается проверке на истинность? ведь 4%2==0, а "0" это ж false, 3%2==1, а "1" это должен быть true?
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.03.2014, 21:23 #13
dima__, тернарный оператор работает следующим образом: если первый операнд соответствует значению true, то вычисляется и возвращается второй операнд, в противном случае вычисляется и возвращается третий операнд. Таким образом, 4 % 2 == 0 == false, следовательно, будет вычислен и возвращён третий операнд, т.е. в данном случае true. 3 % 2 == 1 == true, следовательно, результатом всего выражения будет false (второй операнд тернарного оператора). Фактически, это выражение эквивалентно следующему: !(val % 2).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 21:23
Привет! Вот еще темы с ответами:

Объясните функцию отрисовки графики - C++
Объясните пожалуйста,что происходить в части кода void drawT? #include &lt;windows.h&gt; #include &lt;gl/glut.h&gt; void reshape(int w,...

Объясните, как передать данные в функцию - C++
правильно ли я вызвал функцию? И почему когда запускаю программу она ничего не показывает(может это связано с тем что данных так таковых...

Объясните функцию классы в С++ и укажите мою ошибку. - C++
Изучаю классы в языке C++, написав несколько строк кода для вывода числа. не могу понять и исправить ошибку, вот код: #include&lt;iostream&gt; ...

Можно ли объявить два указателя на одну функцию? - C++
есть функция Send(uint type, char*data); но иногда второй аргумент const char*. можно ли сделать так чтобы на одну функцию Send указывали...


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

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

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