Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
1

Разъяснение работы цикла while()

10.04.2012, 18:18. Показов 880. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день. Я начинающий программист, да и к тому же учусь на Java. А тут попался код, на С++, но в нем есть некоторые моенты, которые я не могу понять. Поясните пожалуйста.
Код
nt n;
	vector < vector<int> > g (n, vector<int> (n));
	... чтение графа в матрицу смежности ...

	vector<int> deg (n);
	for (int i=0; i<n; ++i)
		for (int j=0; j<n; ++j)
			deg[i] += g[i][j];

	int first = 0;
	while (!deg[first])  ++first;

еще в коде есть такая запись: if (g[i][j])
Объясните пожалуйста как работает в данном случае while(!deg[first]) и if(g[i][j]), ведь это не булевские выражения

Всем заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 18:18
Ответы с готовыми решениями:

Алгоритм работы цикла FOR ?
Правильно ли я понимаю, как работает этот цикл. Постоянно путаюсь. 1. Присваиваются значение в...

объясните принцип работы цикла : ?
объясните принцип работы цикла : ?

Не могу разобраться в принципе работы цикла
1. как в данном случае работает цикл for без третьего условия? for(i=0; s ; ) { for(;s&amp;&amp;s=='...

Проверьте правильность работы цикла вычисления суммы
Ввод N и x с клавиатуры #include &lt;iostream&gt; using namespace std; int main() {...

10
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.04.2012, 18:23 2
Цитата Сообщение от artem611 Посмотреть сообщение
if (g[i][j])
C++
1
if (g[i][j] != 0)
Цитата Сообщение от artem611 Посмотреть сообщение
while (!deg[first])
C++
1
while (deg[first] == 0)
1
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2012, 18:24 3
В С вообще не было bool, вместо этого использовался int.
C
1
if (a) { //...
Истинно если а != 0, и ложно, если а == 0
В с++ есть bool, но работает он аналогичным образом.
C++
1
2
bool a = 123; //a == 1
bool b = 0; //b == 0
Поэтому
C++
1
!deg[first]
равносильно (!deg[first]) != 0, или, иначе, deg[first] == 0
1
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
10.04.2012, 18:38  [ТС] 4
Спасибо большое. Буду разбираться дальше.

P.S. как оперативно мне ответили. Приятно удивлен)

А, вот еще один момент:
Код
if (deg[i] & 1)
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2012, 18:42 5
Цитата Сообщение от artem611 Посмотреть сообщение
if (deg[i] & 1)
По смыслу равносильно
C++
1
if ( deg[i] % 2 != 0)
Но более эффективно
0
8 / 8 / 5
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:44 6
Цитата Сообщение от artem611 Посмотреть сообщение
А, вот еще один момент:
Код
if (deg[i] & 1)
конъюнкция
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.04.2012, 18:50 7
IPtv, это не совсем конъюнкция, это битовая операция. Смысл конечно тот же, но все же.
0
8 / 8 / 5
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:54 8
Цитата Сообщение от fasked Посмотреть сообщение
IPtv, это не совсем конъюнкция, это битовая операция. Смысл конечно тот же, но все же.
ну дык. товарищу с явой подробности явно не упали, а рисовать таблицу истинности руками влом, а написать "побитовое и" не очень информативно
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.04.2012, 18:56 9
Цитата Сообщение от IPtv Посмотреть сообщение
ну дык. товарищу с явой подробности явно не упали, а рисовать таблицу истинности руками влом, а написать "побитовое и" не очень информативно
Ну дык
Побитовое И
0
8 / 8 / 5
Регистрация: 10.04.2012
Сообщений: 34
10.04.2012, 18:57 10
Цитата Сообщение от fasked Посмотреть сообщение
это всё гугл, скотина
0
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 15
10.04.2012, 20:30  [ТС] 11
Спасибо ребята. С последним вопросом сам разобрался уже, но все равно спасибо
P.S. тему можно закрывать. Всем еще раз спасибо)
0
10.04.2012, 20:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2012, 20:30
Помогаю со студенческими работами здесь

Каково значение переменной после работы цикла
Где то когда то читал, что значение переменной цикла после его окончания неопределено. Но...

Как жестко задать частоту работы цикла
пишу программу в ней основная работа будет выполнятся в цикле while (условие) { блок...

Как записать результаты работы цикла в переменную?
Доброго времени суток, я новичок в программировании, мне нужно записать результат данного цикла в...

Запомнить самую длинную строку и выдать её после окончания работы цикла ввода
2. На вход символьного фильтра подаются строки. Фильтр запоминает самую длинную строку и выдает её...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru