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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Vang Drnkn
0 / 0 / 0
Регистрация: 12.08.2008
Сообщений: 4
#1

Проверка условия окончания цикла for - C++

12.08.2008, 15:38. Просмотров 2183. Ответов 14
Метки нет (Все метки)

Здраствуйте. Проблема заключается в следующем. Есть следующий цикл:
C++
1
2
3
4
5
6
for( int i=2; !((n%i||d%i)&&!(n%i&&d%i))==0 ; i++){
                       while ((n%i||d%i)==0){
                                n/=i;
                                d/=i;
                        }
}
Допустим, n и d равно 18 и 36. Как я понимаю, проверка условия должна выглядеть так:
18%2=0
36%2=0

!((0||0)&&!(0&&0))==0
!(0&&1)==0
1==0

Получаем противоречие, следовательно, цикл должен выполняться, но этого не происходит. Вот с чем это связано? Спасибо.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8509 / 2176 / 61
Регистрация: 07.03.2007
Сообщений: 10,853
Завершенные тесты: 1
12.08.2008, 15:53     Проверка условия окончания цикла for #2
погоди, сначала выполняются скобки, потом логическое не, т.е.:
(0||0) = 0 => !0 = 1
(0&&0) = 0 => !0 = 1
(1&&1) = 1 => !1 = 0
следовательно, 0 = 0, цикл завершен...

сорри, не досмотрел, мой баг...
Vang Drnkn
0 / 0 / 0
Регистрация: 12.08.2008
Сообщений: 4
12.08.2008, 16:09  [ТС]     Проверка условия окончания цикла for #3
Извини, я скобки еще забыл поставить, там отрицание не от (0||0), а от (0||0)&&!(0&&0).
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 16:11     Проверка условия окончания цикла for #4
WooDooMan, там нету еще одного "не"
.
!((0||0)&&!(0&&0))==0
!((0)&&!(0))==0
!(0&&1)==0
!(0)==0
1==0
так ?
или я что упустил ?

Vang Drnkn а вообще есть такой режим, режим отладки называется - поставь брейкпоинт и посмотри как будут меняться переменные...
сможешь всё сам понять...
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
12.08.2008, 16:19     Проверка условия окончания цикла for #5
Цитата Сообщение от Vang Drnkn Посмотреть сообщение
Получаем противоречие, следовательно, цикл должен выполняться, но этого не происходит. Вот с чем это связано? Спасибо.
цикл выполняется,пока условие истинно! у вас ложно вот он и не выполняется.
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 16:29     Проверка условия окончания цикла for #6
XuTPbIu_MuHTAu
ты про какое из них ?? вроде в for окончание цикла истина
а во втором истина - исполнение цикла

но у него в цикле while (0||0) ==0
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
12.08.2008, 16:33     Проверка условия окончания цикла for #7
Цитата Сообщение от Xentar Посмотреть сообщение
XuTPbIu_MuHTAu
ты про какое из них ?? вроде в for окончание цикла истина
Код
 for ( int i=0;i<10;i++) cout << i;
окончание цикла при i = 10.Не пудрите мне мозги,это не истина
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 16:40     Проверка условия окончания цикла for #8
Добавлено через 2 минуты 12 секунд
.окончание цикла при i = 10.Не пудрите мне мозги,это не истина
извини - туплю
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
12.08.2008, 16:44     Проверка условия окончания цикла for #9
Я вообще не понимаю,что у него там этим условием сказано
!((n%i||d%i)&&!(n%i&&d%i)) == 0.
то,что в скобках,большое и страшное :
(n%i||d%i)&&!(n%i&&d%i) это A&&!A т.е 0
получаем в целом цикл
for(int i=2; 1==0;i++) ...
И с чего ему вообще запускаться?
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 16:48     Проверка условия окончания цикла for #10
И с чего ему вообще запускаться?
я думал что цикл пока условие не тру идет...
как WooDooMan написал ))
/whisp у него написано что он знает С++ ))))))
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
12.08.2008, 16:50     Проверка условия окончания цикла for #11
Это полбеды,самое забавное,что условие в скобках от i не зависит. Либо бесконечный цикл,либо вообще его нет.
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 16:53     Проверка условия окончания цикла for #12
Ну в принципе я тоже так понял что там бесконечный цикл ...
но т.к. там false - то естественно он не выполняется
Lord_Voodoo
Супер-модератор
8509 / 2176 / 61
Регистрация: 07.03.2007
Сообщений: 10,853
Завершенные тесты: 1
12.08.2008, 17:12     Проверка условия окончания цикла for #13
Xentar , ну ладно уже, ошибся, с кем не бывает...
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
12.08.2008, 17:18     Проверка условия окончания цикла for #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
)) все ошибаются ))
я тоже ошибался )))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2008, 18:01     Проверка условия окончания цикла for
Еще ссылки по теме:

C++ Как задать два условия для цикла
Условия цикла for, числа double C++
C++ Значение переменной после окончания цикла
C++ Повторение цикла при наступлении определенного условия
C++ Проверка условия прогрессии

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

Или воспользуйтесь поиском по форуму:
Vang Drnkn
0 / 0 / 0
Регистрация: 12.08.2008
Сообщений: 4
12.08.2008, 18:01  [ТС]     Проверка условия окончания цикла for #15
Спасибо) Получается я сам себя обманул.
Yandex
Объявления
12.08.2008, 18:01     Проверка условия окончания цикла for
Ответ Создать тему
Опции темы

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