Войти

Показать полную графическую версию : [решено] помогите с выходом из бесконечного цикла


Cherterok
20-12-2010, 22:14
ну как бы необходимо чтобы программа считала считала и в момент когда х лежит в ределе от 3 до 7 (любое число) выходить из цыкла. вот чтото незапускаеться цикл вобще. в чом беда??

#include <iostream>
#include <math.h>
using namespace std;

int main()
{

double x, // Начальное, стартовое значение
end = 1000; // Конечное, предельное значение
//steep = 1; // Шаг
cin>>x;


while(x > end){ // Цикл
cout<<" Num = "<<x<<endl; // Проверяем вывод...
x=x++; // Шагаем
if (x>=3, x<=7)
break;

}
cout<<x<< "\n";
system("pause");

}
препод как всегда не знает))) шо я делаю не так?? даже если написть в цикле
x +=step всеравно не то.

lxa85
20-12-2010, 22:40
Cherterok, ты с условиями и параметрами цикла ничего не перепутал? При x > 1000 он в пределы [3..7] не попадет.
А при меньшем вообще в цикл не попадет!
"Ломание" цикла break'ом не есть хорошо. Использую булевскую переменную.

Cherterok
21-12-2010, 16:15
Cherterok, ты с условиями и параметрами цикла ничего не перепутал? При x > 1000 он в пределы [3..7] не попадет.
А при меньшем вообще в цикл не попадет!
"Ломание" цикла break'ом не есть хорошо. Использую булевскую переменную. »
я чото не понял. while(x > end) сдесь что делает программа??
и бриком пользоваться это по заданию. лаба у нас такая. я вобще как бы не в курсе всех примочек. пока только начинаю

lxa85
21-12-2010, 16:20
while(x > end)что здесь делает программа? »
Это я у тебя хочу спросить. При каких условиях будет выполняться цикл?

Drongo
21-12-2010, 19:46
Должно быть не такif (x>=3, x<=7) »А вот такif (x >= 3 || x <= 7) К тому же условие бессмыслено при инкременте х потому что инкремент операция последовательного приращения числа на единицу, когда х будет равен 4 условие по любому выполнится, т.е. не вижу необходимости в проверке его на х <= 7, ну а всё остальное сказал lxa85

Cherterok
21-12-2010, 23:37
Цитата Cherterok:
while(x > end)что здесь делает программа? »
Это я у тебя хочу спросить. При каких условиях будет выполняться цикл? »

цыкл выполняться пока х не достиг 3. но если вписать в начале программы ввод Х то хз. вобщем я не знаю. ну хатябы надо чтобы щитало от 1 до 3.
А вот так
Код:
if (x >= 3 || x <= 7) »
а разница?? оно и так работает. в палочках не вижу смысла. или это чтото значит?

lxa85
21-12-2010, 23:52
Cherterok, книги по С++ для новичков тебе в помощь(в прикрепленной теме посмотри). Не хватало еще простейшую теорию по 105 раз расписывать.

Drongo
22-12-2010, 00:57
оно и так работает »Сразу видно что вы даже не удосужились проверить свой код на любом сишном компиляторе.

Cherterok
22-12-2010, 14:23
Цитата Cherterok:
оно и так работает »
Сразу видно что вы даже не удосужились проверить свой код на любом сишном компиляторе. »
визуал с++ 2010 разве не подходит?? я в нем работаю как бы. просто мне препод вобще вместо запятой сказал что надо and писать) ну я ему показал что запятая рулит. так что мне с циклом сделатЬ???

Drongo
22-12-2010, 18:59
так что мне с циклом сделатЬ??? »Ещё раз, медленно и не спеша, по строкам: одна строка - одна операция. Что должна делать программа?

1. Итак, мы считали число cin >> x;
2. Дальше?
...
...
...
8. Дальше?
9. Финиш...

Jonik-Mnimonik
22-12-2010, 21:47
Для того что зайти в цикл, необходимо ввести x больше 1000, но тогда точно из цикла ты уже не выйдешь, так как значение x всегда будет больше 7

Мне кажется тебе просто знак необходимо поменять на другой в условии While
и вместо if (x>=3, x<=7) написать не if (x >= 3 || x <= 7), а if (x >= 3 && x <= 7)

lxa85
22-12-2010, 22:53
Логическое "И" как пишется ? && ?
Называется преподы собрались в кружёк, расклады на пальцах прикидывают :laugh:

Cherterok
22-12-2010, 23:16
#include <iostream>
#include <math.h>
using namespace std;

int main()
{ double x,
end = 1000,
steep = 1;
cout<<"Vvedite X"<<"\n";
cin>>x;
while(x < end){
cout<<" Znachenie = "<<x<<endl;
if (x>=3 && x<=7)
break;
x +=steep; }
cout<<x<< "\n";
system("pause");}

вот сделал:) спасибо за && )) помогло вроде бы

Логическое "И" как пишется ? && ?
Называется преподы собрались в кружёк, расклады на пальцах прикидывают »
нужно написать модерам что ты часто флудиш... ни одной умной речи не увидел

Delirium
23-12-2010, 06:42
нужно написать модерам что ты часто флудиш... ни одной умной речи не увидел »
Cherterok, писать не надо, мы блим и блюдим днем и ночью. А вот насчет неумных речей от lxa85 я бы засомневался. Не может преподаватель со стажем быть глупее вас и не знать той элементарной теории, которую вы не желаете изучать.

Drongo
23-12-2010, 11:42
Jonik-Mnimonik, lxa85, Delirium, Блин, ребята, вот это я лопухнулся. Ведь в уме понимал что and логическое И, а впендюрил ИЛИ :not-me: :gigi:
Логическое "И" как пишется ? && ? »Логическое И - &&
Логическое ИЛИ - ||

нужно написать модерам что ты часто флудиш... ни одной умной речи не увидел »Ок, спасибо за сигнал, обязательно примем меры. lxa85, готовься к публичному расстрелу на рассвете. :biggrin:

Cherterok
23-12-2010, 18:46
Цитата Cherterok:
нужно написать модерам что ты часто флудиш... ни одной умной речи не увидел »
Cherterok, писать не надо, мы блим и блюдим днем и ночью. А вот насчет неумных речей от lxa85 я бы засомневался. Не может преподаватель со стажем быть глупее вас и не знать той элементарной теории, которую вы не желаете изучать. »
ну лично от него я ничего неувидел нужного:))) другие ито больше помогли даже с тем же И




© OSzone.net 2001-2012