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

цикл do - while - C++

Восстановить пароль Регистрация
 
DanielDefo
5 / 5 / 0
Регистрация: 13.09.2009
Сообщений: 225
21.04.2011, 20:45     цикл do - while #1
Ребят, помогите исправить программу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream.h>
#include<math.h>
void main()
{
int i;
double x,y,f1,f2,a11,a12,a21,a22,d;
cout<<"Vvedite nachalnoe priblizhenie x: ";
cin>>x;
cout<<"Vvedite nachalnoe priblizhenie y: ";
cin>>y;
 
for( i=1;i<=10;i++)
{
f1=pow(y,3)-pow(x,2)-1;
f2=y*pow(x,3)-x-4;
a11=pow(x,3);
a12=3*pow(y,2);
a21=1-3*pow(x,2)*y;
a22=2*x;
d=2-2*pow(x,4)-9*pow(x,2)*pow(y,3);
x=x-(a11*f1+a12*f2)/d;
y=y-(a21*f1+a22*f2)/d;
cout<<"\nNomer iteracii: "<<i<<"\tx = "<<x<<"\ty= "<<y;}
}
Программа решает систему нелинейных уравнений методом ньютона.
Условие в картинке.

ПРограмма то работает, но вот только учитель сказал сделать цикл с do - while.
НУжно х1=1, у1=у сделать и дальше чтоб вчисляло и была проверка на условие.
ЧТоб проверяло условие, если |x1-x|<e и |y1-y|<e то "закончить процесс".

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 20:45     цикл do - while
Посмотрите здесь:

цикл for... C++
Цикл for C++
цикл While C++
Цикл с параметром и цикл с условием C++
цикл do - while C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
while(i)k++
48 / 48 / 5
Регистрация: 13.08.2010
Сообщений: 160
21.04.2011, 21:03     цикл do - while #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream.h>
#include<math.h>
void main()
{
float e = 2.71828183;//для нее константа должна быть, погугли
int i, х1=1, у1=у;
double x,y,f1,f2,a11,a12,a21,a22,d;
cout<<"Vvedite nachalnoe priblizhenie x: ";
cin>>x;
cout<<"Vvedite nachalnoe priblizhenie y: ";
cin>>y;
 
do
{
f1=pow(y,3)-pow(x,2)-1;
f2=y*pow(x,3)-x-4;
a11=pow(x,3);
a12=3*pow(y,2);
a21=1-3*pow(x,2)*y;
a22=2*x;
d=2-2*pow(x,4)-9*pow(x,2)*pow(y,3);
x=x-(a11*f1+a12*f2)/d;
y=y-(a21*f1+a22*f2)/d;
cout<<"\nNomer iteracii: "<<i<<"\tx = "<<x<<"\ty= "<<y;
}while(!(abs(x1-x) < e && abs(y1-y) < e))
}
DanielDefo
5 / 5 / 0
Регистрация: 13.09.2009
Сообщений: 225
21.04.2011, 21:15  [ТС]     цикл do - while #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream.h>
#include<math.h>
void main()
{
float e = 2.71828183;
int i, x1=x, y1=y;
double x,y,f1,f2,a11,a12,a21,a22,d;
cout<<"Vvedite nachalnoe priblizhenie x: ";
cin>>x;
cout<<"Vvedite nachalnoe priblizhenie y: ";
cin>>y;
do
{
f1=pow(y,3)-pow(x,2)-1;
f2=y*pow(x,3)-x-4;
a11=pow(x,3);
a12=3*pow(y,2);
a21=1-3*pow(x,2)*y;
a22=2*x;
d=2-2*pow(x,4)-9*pow(x,2)*pow(y,3);
x=x-(a11*f1+a12*f2)/d;
y=y-(a21*f1+a22*f2)/d;
cout<<"\nNomer iteracii: "<<i<<"\tx = "<<x<<"\ty= "<<y;
}
while(!(abs(x1-x) < e && abs(y1-y) < e))
}
}
Ошибки выдает в 6,7 и 26 строках.

И в твоем коде почему в 6 строке х1=1, а не х ?
while(i)k++
48 / 48 / 5
Регистрация: 13.08.2010
Сообщений: 160
21.04.2011, 21:31     цикл do - while #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
да извени ступил чото, компилятора по рукой нет просто
 
#include<iostream.h>
#include<math.h>
void main()
{
float e = 2.71828183;//для нее константа должна быть, погугли
int i, х1, у1;
double x,y,f1,f2,a11,a12,a21,a22,d;
cout<<"Vvedite nachalnoe priblizhenie x: ";
cin>>x;
cout<<"Vvedite nachalnoe priblizhenie y: ";
cin>>y;
 
do
{
f1=pow(y,3)-pow(x,2)-1;
f2=y*pow(x,3)-x-4;
a11=pow(x,3);
a12=3*pow(y,2);
a21=1-3*pow(x,2)*y;
a22=2*x;
d=2-2*pow(x,4)-9*pow(x,2)*pow(y,3);
x=x-(a11*f1+a12*f2)/d;
y=y-(a21*f1+a22*f2)/d;
cout<<"\nNomer iteracii: "<<i<<"\tx = "<<x<<"\ty= "<<y;
х1 = x;
у1 = y;
}while(!(abs(x1-x) < e && abs(y1-y) < e));
}
должно компилится, если не работает то напиши ошибки компиляции
DanielDefo
5 / 5 / 0
Регистрация: 13.09.2009
Сообщений: 225
21.04.2011, 21:37  [ТС]     цикл do - while #5
Немножко подправил и работает. Спасибо.
Yandex
Объявления
21.04.2011, 21:37     цикл do - while
Ответ Создать тему
Опции темы

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