Показать полную графическую версию : [решено] c++ помогите разобраться с циклами
Cherterok
13-12-2010, 23:49
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
double x,f,y;
int xk;
do
{
int xn=-2;
int xh=-0.2;
f=x;
cout<<"f=:"<<f<<"\n";
xk=xn+xh;
}
while(xk=-20);
system("pause");
}
if (x<0)
{
y=cos(x);
}
}
Вобщем задача такова, чтобы при условии х меньше 0, программа выполнялась столькото раз от -2 до -20 с шагом 0,2 а патом останавливалась. чтото я не то сделал оно не останавливаеться и не считает. что и куда? кто знает?
do
{
int xn=-2;
int xh=-0.2;
f=x;
cout<<"f=:"<<f<<"\n";
xk=xn+xh;
}
while(xk=-20); »
Внимательнее с телом цикла. Сначала инициализация переменных, а затем их циклическое изменение.
У тебя же при каждой итерации происходит присвоение переменным начальных значений.
Вынеси отмеченный кусок вперед цикла.
Cherterok
14-12-2010, 08:25
Вобщето отмеченый кусок это и есть цикл. зачем его переносить ? он итак в начале программы
Cherterok, тогда ответь мне на вопрос.
Данный кусок принадлежит телу цикла или нет?
И из этого проистекает другой вопрос. Как часто выполняются эти две строчки?
int xh=-0.2; »У вас значение хранится в переменной целого типа, а какой тип нужно использовать для чисел с плавающей запятой?
lxa85, Цикл do\while подразумевает выполнение условия хотя бы один раз.
Чем инициализирована переменная х?
f = x; »
В этом куске у вас происходит инициализация переменной вместо условия сравнения. Более того, число с плавающей запятой проверять нужно на соответствие больше\меньше, а не на равенство.
while(xk = -20); »
Это вообще не понятно, лишние скобки и почему вне блока main? Какое значение у х если он у вас не инициализирован ?
if (x<0)
{
y=cos(x);
}
} »
Cherterok
14-12-2010, 23:14
вобщем кто може написать код программы? обьясняю поставленую задачу преподом. при условии что х<0 , выполнить у=cos(x)
выполнять до тех пор пока х будитобрабатываться в цикле от -2 до -20 с шагом 0,2. как реализовать?
популярная какая-то тема у студентов - пасовать перед простейшими задачами, без попыток их решить :(
Cherterok, у тебя же все написано, что ты задергался? Исправляешь все ошибки на которые тебе указали и идешь сдавать.
В след. раз когда будешь спрашивать подобным образом (с ошибками, без заглавных букв и с пропущенными точками) буду отвечать так же.
Где ответы на заданные тебе вопросы? :
lxa85 - Данный кусок принадлежит телу цикла или нет?
lxa85 - Как часто выполняются эти две строчки?
Drongo - У вас значение хранится в переменной целого типа, а какой тип нужно использовать для чисел с плавающей запятой?
Drongo - Чем инициализирована переменная х?
Drongo - Это вообще не понятно, лишние скобки и почему вне блока main? Какое значение у х если он у вас не инициализирован?
Как первокурсник, чесслово ( Уши попрятал, и знать не знаю, ведать не ведаю.
Cherterok
15-12-2010, 23:12
популярная какая-то тема у студентов - пасовать перед простейшими задачами, без попыток их решить :(
Cherterok, у тебя же все написано, что ты задергался? Исправляешь все ошибки на которые тебе указали и идешь сдавать.
В след. раз когда будешь спрашивать подобным образом (с ошибками, без заглавных букв и с пропущенными точками) буду отвечать так же.
Где ответы на заданные тебе вопросы? :
lxa85 - Данный кусок принадлежит телу цикла или нет?
lxa85 - Как часто выполняются эти две строчки?
Drongo - У вас значение хранится в переменной целого типа, а какой тип нужно использовать для чисел с плавающей запятой?
Drongo - Чем инициализирована переменная х?
Drongo - Это вообще не понятно, лишние скобки и почему вне блока main? Какое значение у х если он у вас не инициализирован? »
кто пасует?? нам не обьясняют. дали книжку галимую и задание и сиди думай.
мною было написано то что я смог сделать. цыкл это и есть условие выполнения
какие 2 строчки?
ну про инт забыли. флоат надо поставить. сути не меняет покаместь
пеерменную икс вводил ф=х в том плане чтобы оно цыкл делало. я толком не понял с цыклами
значение у икса вводиться в начале программы. сути тоже не меняет. скообок лишних нету. это у меня условие идет.
Cherterok, никому не объясняют. Всем дают «не те» книги (или вообще не дают никаких), и «не те» задания. И всем, в своё время, приходилось сидеть и думать.
Только вот что странно: почему-то одни, как минимум, пишут на форуме по правилам орфографии и грамматики русского языка, а другие не пытаются делать даже этого.
значение у икса вводиться в начале программы. »Так вводите его, в коде этого запроса и считывания нету.
скообок лишних нету »А вы посчитайте их, я насчитал 7 скобок, как правило, их должно быть парное число
это у меня условие идет. »У меня не идёт.
[hr]
Cherterok, Давай ещё раз по порядку, не спеша, словами, по пунктам:
1. Считываем что и запоминаем куда?
2. Цикл: что обрабатывается в цикле?
3. Где будет условие if в цикле do\while или вне его?программа выполнялась столькото раз от -2 до -20 с шагом 0,2 а патом останавливалась »Вот вам эта часть, а вот с иксом, к сожалению не понимаю что_куда_откуда_зачем
#include <iostream>
using namespace std;
int main()
{
double start = -2.0, // Начальное, стартовое значение
end = -20.0, // Конечное, предельное значение
steep = 0.2; // Шаг
while(start > end){ // Цикл
cout<<" Num = "<<start<<endl; // Проверяем вывод...
start -= steep; // Шагаем
}
system("pause");
return 0;
}
Cherterok, "сиди думай" - это правильно, это полезно.
Так где ответы то? По пунктам?
какие 2 строчки? »
см пост 2 (http://forum.oszone.net/post-1565250-2.html)
Покамест для неизменности сути используй все же float.
Делай правильно, плохо само получится. (с)
Остальные вопросы по коду ниже.
пеерменную икс вводил ф=х в том плане чтобы оно цыкл делало. я толком не понял с цыклами
значение у икса вводиться в начале программы. сути тоже не меняет. скообок лишних нету. это у меня условие идет. »
Вот эту мысль по русски распиши (с использованием строк кода), а то тебя не понятно.
void main()
{
double x,f,y;
int xk;
do
{
int xn=-2; // <------- ВОТ ЭТИ ДВЕ СТРОЧКИ
int xh=-0.2; // <------- ВОТ ЭТИ ДВЕ СТРОЧКИ
f=x; // ?? f=x просто присваивает переменной f некое неопределенное значение x. Т.к. x не инициализирована.
cout<<"f=:"<<f<<"\n";
xk=xn+xh;
} //do
while(xk=-20);
system("pause");
} //main
if (x<0)
{
y=cos(x);
} // if
} // ????
»
Cherterok
16-12-2010, 22:50
Код:
#include <iostream>
using namespace std;
int main()
{
double start = -2.0, // Начальное, стартовое значение
end = -20.0, // Конечное, предельное значение
steep = 0.2; // Шаг
while(start > end){ // Цикл
cout<<" Num = "<<start<<endl; // Проверяем вывод...
start -= steep; // Шагаем
}
system("pause");
return 0;
} »
спасибо)) переработав его подсебя вроде бы получилось то что должно было быть. препод просто сам не знает что должно быть :)
препод просто сам не знает что должно быть »Я не могу. :laugh:
переработав его подсебя вроде бы получилось то что должно было быть. »А как должно быть? Ну не будьте же таким жадным, покажите нам полную версию программы. :)
Cherterok
18-12-2010, 10:57
Цитата Cherterok:
переработав его подсебя вроде бы получилось то что должно было быть. »
А как должно быть? Ну не будьте же таким жадным, покажите нам полную версию программы. »
это военная тайна цру. :read:
это военная тайна цру »А на мой взгляд это глупо с вашей стороны. При таком подходе и отношении, больше вам никто не поможет. :search: Зачем? Если конечного варианта мы всё равно не увидим. ...В общем, не плюй в колодец из которого пьёшь. На сим всё. Дальнейшее продолжение дискусии не по теме будет пресечено.
Cherterok
19-12-2010, 13:48
#include <iostream>
#include <math.h>
using namespace std;
int main()
{ double x = -2.0,
end = -20.0,
steep = 0.2;
x=pow(x,3)-1+pow(sin(x),2);
while(x > end){
cout<<" Num = "<<x<<endl;
x -= steep; }
cout<<x<< "\n";
system("pause");}
Cherterok, Вот и отлично. :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.