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"); }