PROGRAMA DE JACOBBI #include #includeiostream.h

Anuncio
PROGRAMA DE JACOBBI
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include <iomanip.h>
int main()
{int i,j;
inicio:
cout<<"\tBIENVENIDO AL PROGRAMA EN EL QUE SE EMPLEA EL METODO DE JACOBBI"<<endl;
cout<<"RECUERDA QUE TUS ECUACIONES QUEDAN DE LA SIGUENTE
FORMA\n\t\taX+bY+cZ=d\n*************NOTA SI EN a,b,c y d SON NEGATIVOS NO OLVIDES
PONER EL SIGNO -\n\t\tADEMAS SI NO TIENES UN VALOR EN a,b,c y d solo ingresa 0."<<endl;
inicioa:
float a1=0,b1=0,c1=0,d1=0;
cout<<"POR FAVOR INGRESA a EN LA PRIMERA ECUACION"<<endl;
cin>>a1;
cout<<"POR FAVOR INGRESA b EN LA PRIMERA ECUACION"<<endl;
cin>>b1;
cout<<"POR FAVOR INGRESA c EN LA PRIMERA ECUACION"<<endl;
cin>>c1;
cout<<"POR FAVOR INGRESA d EN LA PRIMERA ECUACION"<<endl;
cin>>d1;
cout<<"TU ECUACION QUEDA DE LA SIGUIENTE
FORMA\n"<<a1<<"X"<<"+"<<"("<<b1<<")"<<"Y+"<<"("<<c1<<")"<<"Z="<<d1<<endl;
char opcion;
cout<<"SI QUIERES CAMBIAR LOS VALORES PRESIONA S, O N SI QUIERES CONTINUAR"<<endl;
opcionin1:
cin>>opcion;
if(opcion=='s' || opcion=='S'){system("cls");goto inicioa;}
if(opcion=='n' || opcion=='N'){system("cls");goto iniciob;}
else{system("cls");cout<<"OPCION INVALIDA, PRESIONA S SI QUIERES CAMBIAR LOS VALORES O N
SI QUIERES CONTINUAR"<<endl;goto opcionin1;}
iniciob:
system("cls");
float a2=0,b2=0,c2=0,d2=0;
cout<<"POR FAVOR INGRESA a EN LA SEGUNDA ECUACION"<<endl;
cin>>a2;
cout<<"POR FAVOR INGRESA b EN LA SEGUNDA ECUACION"<<endl;
cin>>b2;
cout<<"POR FAVOR INGRESA c EN LA SEGUNDA ECUACION"<<endl;
cin>>c2;
cout<<"POR FAVOR INGRESA d EN LA SEGUNDA ECUACION"<<endl;
cin>>d2;
cout<<"TU ECUACION QUEDA DE LA SIGUIENTE
FORMA\n"<<a2<<"X"<<"+"<<"("<<b2<<")"<<"Y+"<<"("<<c2<<")"<<"Z="<<d2<<endl;
cout<<"SI QUIERES CAMBIAR LOS VALORES PRESIONA S, O N SI QUIERES CONTINUAR"<<endl;
opcionin2:
cin>>opcion;
if(opcion=='s' || opcion=='S'){system("cls");goto iniciob;}
if(opcion=='n' || opcion=='N'){system("cls");goto inicioc;}
else{system("cls");cout<<"OPCION INVALIDA, PRESIONA S SI QUIERES CAMBIAR LOS VALORES O N
SI QUIERES CONTINUAR"<<endl;goto opcionin2;}
inicioc:
system("cls");
float a3=0,b3=0,c3=0,d3=0;
cout<<"POR FAVOR INGRESA a EN LA TERCERA ECUACION"<<endl;
cin>>a3;
cout<<"POR FAVOR INGRESA b EN LA TERCERA ECUACION"<<endl;
cin>>b3;
cout<<"POR FAVOR INGRESA c EN LA TERCERA ECUACION"<<endl;
cin>>c3;
cout<<"POR FAVOR INGRESA d EN LA TERCERA ECUACION"<<endl;
cin>>d3;
cout<<"TU ECUACION QUEDA DE LA SIGUIENTE
FORMA\n"<<a3<<"X"<<"+"<<"("<<b3<<")"<<"Y+"<<"("<<c3<<")"<<"Z="<<d3<<endl;
cout<<"SI QUIERES CAMBIAR LOS VALORES PRESIONA S, O N SI QUIERES CONTINUAR"<<endl;
opcionin3:
cin>>opcion;
if(opcion=='s' || opcion=='S'){system("cls");goto inicioc;}
if(opcion=='n' || opcion=='N'){system("cls");goto iniciod;}
else{system("cls");cout<<"OPCION INVALIDA, PRESIONA S SI QUIERES CAMBIAR LOS VALORES O N
SI QUIERES CONTINUAR"<<endl;goto opcionin3;}
iniciod:
cout<<"\n\tESTAS SON TUS TRES ECUACIONES"<<endl;
cout<<"\n\t"<<a1<<"X"<<"+"<<"("<<b1<<")"<<"Y+"<<"("<<c1<<")"<<"Z="<<d1<<endl;
cout<<"\n\t"<<a2<<"X"<<"+"<<"("<<b2<<")"<<"Y+"<<"("<<c2<<")"<<"Z="<<d2<<endl;
cout<<"\n\t"<<a3<<"X"<<"+"<<"("<<b3<<")"<<"Y+"<<"("<<c3<<")"<<"Z="<<d3<<endl;
float dom1,dom2,dom3,ref1,ref2,ref3;
dom1=pow(sqrt(b1),2)+pow(sqrt(c1),2);
dom2=pow(sqrt(a2),2)+pow(sqrt(c2),2);
dom3=pow(sqrt(b3),2)+pow(sqrt(a3),2);
ref1=pow(sqrt(a1),2);
ref2=pow(sqrt(b2),2);
ref3=pow(sqrt(c3),2);
if(dom1>ref1||dom2>ref2||dom2>ref2){cout<<"LOS DATOS QUE INGRESASTE PARA LAS
ECUACIONES NO SON CORRECTOS VUELVE A COMENZAR"<<endl;system("pause");goto inicio;}
float matriz[10][10],numerador,denominador;
int val;
for(i=0;i<=2;i++){matriz[0][i]=0;}
matriz[0][3]=1;
matriz[1][0]=d1/a1;
matriz[1][1]=d2/b2;
matriz[1][2]=d3/c3;
matriz[1][3]=1;
for(i=2;i<=9;i++){
numerador=0;
matriz[i][3]=0;
denominador=0;
matriz[i][0]=matriz[1][0]+(-1*((b1/a1)*matriz[i-1][1]))+(-1*((c1/a1)*matriz[i-1][2]));
matriz[i][1]=matriz[1][1]+(-1*(a2/b2)*matriz[i-1][0])+(-1*(c2/b2)*matriz[i-1][2]);
matriz[i][2]=matriz[1][2]+(-1*(a3/c3)*matriz[i-1][0])+(-1*(b3/c3)*matriz[i-1][1]);
matriz[i][4]=sqrt(pow((matriz[i][0]-matriz[i-1][0]),2));
matriz[i][5]=sqrt(pow((matriz[i][1]-matriz[i-1][1]),2));
matriz[i][6]=sqrt(pow((matriz[i][2]-matriz[i-1][2]),2));
matriz[i][7]=sqrt(pow(matriz[i][0],2));
matriz[i][8]=sqrt(pow(matriz[i][1],2));
matriz[i][9]=sqrt(pow(matriz[i][2],2));
if(matriz[i][4]>matriz[i][5] && matriz[i][4]>matriz[i][6]){numerador=matriz[i][4];}
else if(matriz[i][5]>matriz[i][4] && matriz[i][5]>matriz[i][6]){numerador=matriz[i][5];}
else{numerador=matriz[i][6];}
if(matriz[i][7]>matriz[i][8] && matriz[i][7]>matriz[i][9]){denominador=matriz[i][7];}
else if(matriz[i][8]>matriz[i][7] && matriz[i][8]>matriz[i][9]){denominador=matriz[i][8];}
else{denominador=matriz[i][9];}
matriz[i][3]=numerador/denominador;
if(matriz[i][3]<=0.00001){val=i;goto final;}
val=i;
}
final:
cout<<numerador<<" "<<denominador<<" "<<endl;
for(i=0;i<=val;i++){cout<<setprecision(5)<<matriz[i][0]<<"\t\t"<<matriz[i][1]<<"\t\t"<<matriz[i][2]<
<"\t\t"<<matriz[i][3]<<"\n";}
salida:
system("PAUSE");
}
Descargar