online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, COBOL, HTML, CSS, JS Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ //Matrices /* Un programa que use una matriz de 3×4 para resolver un sistema de 3 ecuaciones con 3 incógnitas usando el método de Gauss (hacer ceros por debajo de la diagonal principal para luego aplicar sustitución regresiva). */ /*-----------------------------------------------------------------------------------------------------------------------------*/ #include<iostream> #include<locale.h> #include<conio.h> int main(){ setlocale(LC_CTYPE, "Spanish"); /* Variables enteras; roe(Opción de continuedad del programa); c(contador para los ciclos for de las ecuaciones); i,j(Variables para los ciclos FOR)*/ int roe = 0, c = 0, h = 0, i = 0, j = 0, k = 0, l = 0; /* Variables double; rta(Valor de la primera incognita), rta2(Valor de la segunda incognita), rta3(Valor de la tercera incognita)*/ double rta = 0, rta2 = 0, rta3 = 0; system("cls");//Limpiador de pantalla al volver. //Presentación del programa. std::cout<<"RESOLUCIÓN DE TRES ECUACIONES CON TRES INCOGNITAS POR EL METODO DE GAUSS"<<std::endl<<std::endl; std::cout<<"Incognitas que va agregar"<<std::endl;//Ingreso de las incognitas a resolver. char incognitas[3] = {}; for(int i = 0; i<=2; i++){ std::cout<<"-Incognita : "; std::cin>>incognitas[i]; } std::cout<<std::endl; double numbers[12] = {};//Array que contendrá los números de las ecuacione del usuario. //Ciclo FOR ANIDADO para ingreso de datos de la primera ecuación. for(int i = 0; i<=0; i++){ std::cout<<"Ecuación N°"<<i+1<<std::endl; for(int j = 0; j<4; j++){ if(j==3){ //Si el iterador j llega a 3, el usuario deberá ingresar lo que vale ecuación. std::cout<<"Esta ecuación es igual a : "; std::cin>>numbers[j]; } else{ std::cout<<"Número alado de la '"<<incognitas[0+c]<<"' (con su signo) : "; std::cin>>numbers[j]; } c++; //Contador para ir cambiano la posición del almacenamiento del N número ingresado en el array 'incognitas'. } c = 0; //Contador dado en 0, para que no afecte el siguiente contador. std::cout<<std::endl; } //Ciclo FOR ANIDADO para ingreso de datos de la segunda ecuación. for(int i = 0; i<=0; i++){ std::cout<<"Ecuación N°"<<i+2<<std::endl; for(int j = 4; j<8; j++){ if(j==7){ //Si el iterador j llega a 7, el usuario deberá ingresar lo que vale ecuación. std::cout<<"Esta ecuación es igual a : "; std::cin>>numbers[j]; } else{ std::cout<<"Número alado de la '"<<incognitas[0+c]<<"' (con su signo) : "; std::cin>>numbers[j]; } c++; //Contador para ir cambiano la posición del almacenamiento del N número ingresado en el array 'incognitas'. } c = 0; //Contador dado en 0, para que no afecte el siguiente contador. std::cout<<std::endl; } //Ciclo FOR ANIDADO para ingreso de datos de la tercera ecuación. for(int i = 0; i<=0; i++){ std::cout<<"Ecuación N°"<<i+3<<std::endl; for(int j = 8; j<12; j++){ if(j==11){ //Si el iterador j llega a 11, el usuario deberá ingresar lo que vale ecuación. std::cout<<"Esta ecuación es igual a : "; std::cin>>numbers[j]; } else{ std::cout<<"Número alado de la '"<<incognitas[0+c]<<"' (con su signo) : "; std::cin>>numbers[j]; } c++; //Contador para ir cambiano la posición del almacenamiento del N número ingresado en el array 'incognitas'. } c = 0; //Contador dado en 0, para que no afecte el siguiente contador. std::cout<<std::endl; } system("cls");//Limpiador de pantalla. //Presentación de las ecuaciones del usuario. std::cout<<"---------------Ecuaciones---------------"<<std::endl; std::cout<<" "<<numbers[0]<<incognitas[0]<<" "<<numbers[1]<<incognitas[1]<<" "<<numbers[2]<<incognitas[2]<<" = "<<numbers[3]<<std::endl; std::cout<<" "<<numbers[4]<<incognitas[0]<<" "<<numbers[5]<<incognitas[1]<<" "<<numbers[6]<<incognitas[2]<<" = "<<numbers[7]<<std::endl; std::cout<<" "<<numbers[8]<<incognitas[0]<<" "<<numbers[9]<<incognitas[1]<<" "<<numbers[10]<<incognitas[2]<<" = "<<numbers[11]<<std::endl; std::cout<<"----------------------------------------"<<std::endl<<std::endl; double gauss[3][4] = {};//Matriz que contendrá los valores de las ecuaciones. //Presentación de las ecuaciones en una matriz 3 x 4. std::cout<<"-------------Método Gauss-------------"<<std::endl; for(int i = 0; i<3; i++){ std::cout<<" | "; for(int j = 0; j<4; j++){ gauss[i][j] = numbers[0+c]; //Los números de las ecuaciones ahora se contendrán en la matriz 'gauss'. std::cout<<gauss[i][j]<<" | "; c++;//Contador para ir cambiando la posición del array 'numbers'. } std::cout<<std::endl; } std::cout<<"----------------------------------------"<<std::endl<<std::endl; do{ //Ciclo DO WHILE por si el usuario quiere volver a ingresar sus ecuaciones. std::cout<<"Volver a ingresar ecuaciones[1] || Resolver incognitas [2]"<<std::endl; std::cout<<"Opción = "; std::cin>>roe; if(roe == 1){ std::cout<<std::endl; return main(); } else if(roe > 2 || roe <= 0){ std::cout<<std::endl<<"-----ERROR: Solo puede elegir el 1 o el 2-----"<<std::endl; } }while(roe > 2 || roe <= 0); system("cls"); //Limpiador de pantalla. //'gauss2' servirá para contener los valores de la ecuaciones pero multiplicados entre si. double gauss2[3][4] = {gauss[0][0], gauss[0][1], gauss[0][2], gauss[0][3]}; double gauss3[3][4] = {};//Mini copia de la matriz 'gauss2', para que no haya problemas. //Ciclo FOR ANIDADO de la ecuación del método de gauss. for(int i = 0; i<3; i++){ for(int j = 0; j<4; j++){ gauss2[i+1][j] = (-(gauss[i+c][0])*(gauss[0][j]))+((gauss[0][0])*(gauss[i+c][j])); c = 1; gauss3[i][j] = gauss2[i][j]; //Paso de datos de 'gauss2' hacia 'gauss3' } if(i==2){ //Ecuación para la fila 3 para el valor faltante a convertir en 0. for(int k = 2; k<3; k++){ for(int l = 0; l<4; l++){ /*'gauss3' ayudará en no sustituir el valor de 'gauss2[2][1]' en resolver las ecuaciones con los valores faltantes. */ gauss2[k][l] = (-(gauss3[k][1])*(gauss3[k-1][l]))+((gauss3[k-1][1])*(gauss3[k][l])); } } } } //Presentación 'gauss2' pero con valares multiplicados. for(int i = 0; i<3; i++){ std::cout<<" | "; for(int j = 0; j<4; j++){ std::cout<<gauss2[i][j]<<" | "; } std::cout<<std::endl; } //Resolución del sistema de ecuacione 3 x 3. rta = gauss2[2][3]/gauss2[2][2]; rta2 = -((-(gauss2[1][3])+(rta * (gauss2[1][2])))/gauss2[1][1]); rta3 = -((-(gauss2[0][3])+(rta * (gauss2[0][2])+(rta2*(gauss2[0][1]))))/gauss2[0][0]); //Presetanción de los valores de cada incogita. std::cout<<std::endl<<"Valor de las incognitas"<<std::endl; std::cout<<incognitas[0]<<" = "<<rta3<<std::endl; std::cout<<incognitas[1]<<" = "<<rta2<<std::endl; std::cout<<incognitas[2]<<" = "<<rta<<std::endl; do{ //Ciclo DO WHILE para asegurar que el usuario quiera salir del programa o volver al principio. std::cout<<std::endl<<"Volver a ingresar ecuaciones[1] || Salir del programa[2]"<<std::endl; std::cout<<"Opción = "; std::cin>>roe; if(roe == 1){ //volvemos al menú del programa. std::cout<<std::endl; return main(); } else if(roe > 2 || roe <= 0){ std::cout<<std::endl<<"-----ERROR: Solo puede elegir el 1 o el 2-----"<<std::endl; } else{ //Se sale del programa. std::cout<<std::endl<<"Gracias por usar este programa :D"; getch(); return 0; } }while(roe > 2 || roe <= 0); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue