AYUDAEn bucle do while. No cambia la variable y por lo tanto el bucle no se cierra.leerabajodecodigo
Publicado por Luis Angel PV (1 intervención) el 06/12/2019 06:38:46
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
int main(){
double R1, R2, R3, R4, teta2, teta3=0, teta4=0, F1, F2=0, F1T3=0, F1T4=0, F2T3=0, F2T4=0, F1N=0, F2N=0, DT3=0, DT4=0, DT3G=0, DT4G=0, TETA3=0, TETA4=0;
cout<<"ECUACIONES DE CIERRE (NEWTON RAPHSON)"<<endl;cout<<"\n";
cout<<"R1: "; cin>>R1;
cout<<"R2: "; cin>>R2;
cout<<"R3: "; cin>>R3;
cout<<"R4: "; cin>>R4;
cout<<"02: "; cin>>teta2;
cout<<"Proponer 03: "; cin>>teta3;
cout<<"Proponer 04: "; cin>>teta4;
F1 = 0;
do{
F1 = ((R1) + ((R4) * cos(teta4 * 3.14159 / 180)) - ((R2) * cos(teta2 * 3.14159 /180)) - ((R3) * cos(teta3 * 3.14159 / 180)));
F2 = (((R4) * sin(teta4 * 3.14159 / 180)) - ((R2) * sin(teta2 * 3.14159 / 180)) - ((R3) * sin(teta3 * 3.14159 / 180)));
F1T3 = ((R3) * sin(teta3 * 3.14159 / 180));
F1T4 = ((-1 * R4) * sin(teta4 * 3.14159 / 180));
F2T3 = ((-1 * R3) * cos(teta3 * 3.14159 / 180));
F2T4 = ((R4) * cos(teta4 * 3.14159 / 180));
F1N = F1 * -1;
F2N = F2 * -1;
DT3 = ( (F1N * F2T4) - (F1T4 * F2N)) / ( (F1T3 * F2T4) - (F1T4 * F2T3));
DT4 = ( (F1T3 * F2N) - (F1N * F2T3) / (F1T3 * F2T4) - (F1T4 * F2T3));
DT3G = (DT3 * 57.296) + teta3;
DT4G = (DT4 * 57.296) + teta4;
DT3G = teta3;
DT4G = teta4;
TETA3 = teta3;
TETA4 = teta4;
cout<<"03: "<<TETA3<<endl;
cout<<"04: "<<TETA4<<endl;
cout<<"F1: "<<F1<<endl;
cout<<"F2: "<<F2<<endl;
}while(F1<=0.0001);
system("pause");
return 0;
}
Ok, se supone que el programa pide al usuario un valor de angulo y el programa debe hacer formulas en las cuales el valor inicial de ese angulo cambiaria hasta que la formula y el ciclo hagan que se llegue al valor correcto y se cumpla la condicion. El problema es que el bucle no termina porque el valor del angulo no lo cambia sigue siendo el mismo que el usuario mete al principio, cuando en realidad al ejecutarse el bucle el valor de ese angulo deberia ir cambiando.
El angulo esta definido como "teta3" y "teta4" esos angulos los da el usuario y el bucle deberia cambiarlos pero no lo hace.
Valora esta pregunta


0