Está en la página 1de 3

#include<stdio.h> #include<stdlib.h> #include<math.h> main() { int n,a,b; float A[10][10],B[10],cte,aux; //Se piden las incgnitas y trminos indp.

printf("\n\t\tMETODO DE GAUSS-JORDAN\n"); printf("\nIngrese el numero de ecuaciones del sistema: "); scanf("%i",&n); printf("Ingrese los coeficientes\n"); for(a=0;a<n;a++) { for(b=0;b<n;b++) { printf("Coef. (%i,%i) ",a+1,b+1); scanf("%f",&A[a][b]); } printf("Termino independiente Ec. %i: ",a+1); scanf("%f",&B[a]); } //Metodo Gauss-Jordan int i,s,j,k; for(i=0; i<n; i++); { //Se Comprueba que el pivote se dif. de 0 if (A[i][i]==0) { for(s=i+1;s<=n+1;s++) { if (A[s][i]!=0) {//Intercambio de renglon aux=A[i][s-1]; A[i][s-1]=A[i+1][s-1]; A[i+1][s-1]=aux; aux=B[i]; B[i]=B[i+1]; B[i+1]=aux; } } } //Se normaliza Renglon pivote cte=A[i][i]; for(j=0;j<n;j++) { A[i][j]=A[i][j]/cte; } B[i]=B[i]/cte; //Continua el algoritmo de eliminacion gaussiana for(j=i+1;j<n;j++) { cte=A[j][i]; for(k=0;k<n;k++) { A[j][k]=A[j][k]-cte*A[i][k]; }

B[j]=B[j]-cte*B[i]; } } //se realiza la eliminacion inversa for(i=n;i>=1;i--) { for(j=i-1;j>=0;j--) { cte=A[j][i]; A[j][i]=A[j][i]-cte*A[i][i]; B[j]=B[j]-cte*B[i]; } } //Impresion de resultados printf("\n\n SOLUCION DEL SISTEMA\n "); for(k=0;k<n;k++) { printf("\n x[%d] = %1.4f",k+1,B[k]); } printf("\n"); system("pause"); }

SEGUNDO EJERCICIO... #include <iostream> #include <vector> using namespace std; class Programa { typedef unsigned short ushort; typedef vector<int> Fila; typedef vector<Fila> Matriz; double valor; ushort filas; ushort columnas; Matriz matriz; Fila fila; int mcm(const int a, const int b) const; public: Programa() : valor(0.0), filas(0), columnas(0) {} void escribe() const; void resuelve(); void lee(); }; void Programa::lee() { ushort i, j; cout << "Filas?: "; cin >> filas; cout << "Columnas?: "; cin >> columnas; for (i = 0; i < filas; ++i) { for (j = 0; j < columnas; ++j) {

cout << "Posicion [" << i; cout << ", " << j << "]: "; cin >> valor; fila.push_back(valor); } matriz.push_back(fila); fila.clear(); } } int Programa::mcm(const int a, const int b) const { int x; int y = 1; int z; int i = 2; if (a < b) x = a, z = b; else x = b, z = a; do { if (x % i == 0) { if (z % i == 0) y *= i, x/= i, z /= i, i = 2; else ++i; } else ++i; } while (i <= x); y *= x * z; return y; } void Programa::escribe() const { ushort i, j; for (i = 0; i < filas; ++i) { cout << "[ "; for (j = 0; j < columnas; ++j) cout << matriz.at(i).at(j) << ' '; cout << "]" << endl; } } void Programa::resuelve() { cout << mcm(5, 120) << endl; } int main() { Programa programa; programa.lee(); programa.resuelve(); programa.escribe(); return 0; }

También podría gustarte