#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
void imprimir(int filas, int columnas, float * );
void r(int filas, int columnas, float *, float*,float*,int j);
int main()
{
int filas = 0, columnas = 0;
cout<<"Cuantas filas son: ";
cin>>filas;
cout<<"\nCuantas columnas son: ";
cin>>columnas;
columnas = columnas + 1;
float A[filas][columnas];
cout<<"\nIngresa Matriz";
for(int j=0; j<columnas;j++){
for(int i = 0; i<filas; i++){
if (columnas - 1 == j){
cout<<"\nIngresa Vectores";
}
cout<<"\nIngresa los valores: ("<<i+1<<","<<j+1<<")=";
cin>>A[i][j];}
}
cout<<"Matriz Inicial\n";
imprimir(filas,columnas,&A[0][0]);
float p = 0;
float vp[columnas];
float cp[columnas];
float n = 0;
for(int j =0; j<columnas-1;j++){
r(filas, columnas,&A[0][0], &vp[0], &cp[0], j);
for(int i = 0; i<filas; i++){
cout<<"\n\n",i+1,j+1;
if (i != j && j < columnas-1) {
n = A[i][j];
}
for(int k = 0; k < columnas; k++){
A[i][k] = (-1*n*vp[k]) + A[i][k];
}
if(i == j )
{
for(int l = 0; l < columnas; l++) {
A[i][l] = cp[l];
if(A[i][l] == -0) {
A[i][l] = 0;}
}
}
imprimir(filas,columnas,&A[0][0]); }
n = 0;
for(int k = 0; k < columnas; k++){
vp[k] = 0;}
}
}
void imprimir(int filas, int columnas, float * A)
{
cout<<"\n";
int contar = 0;
for(int i = 0; i<filas*columnas; i++){
if(contar < columnas)
{
printf(" %5.3f ",A[i]);
contar++;
}
else
{
contar = 0;
cout<<"\n";
printf(" %5.3f ",A[i]);
contar++;
}
}
}
void r(int filas, int columnas, float *A, float *vp, float *cp, int j)
{
float p = 0;
float T[filas][columnas];
int s = 0;
for (int i = 0; i < filas; i++) {
for( int k = 0; k < columnas; k++) {
T[i][k] = A[s];
s++;}
}
for(int i = 0; i<filas;i++){
if(i == j ){
p = T[i][j];
cout<<"\nPivote: \n"<<p;
for(int l = 0; l < columnas; l++)
{
T[i][l] = T[i][l] / p;
vp[l] = T[i][l];
cp[l] = T[i][l]; }
}
}
s= 0;
for (int i = 0; i < filas; i++){
for( int k = 0; k < columnas; k++) {
A[s] = T[i][k];
s++; }}
getch();}
No hay comentarios:
Publicar un comentario