Вы находитесь на странице: 1из 4

Implementacin de Matrices en C++

El siguiente ejercicio permite asignar el tamao que tendr la matriz (numero de filas y de
columnas), luego se almacenan los datos de tipo entero en la matriz. El ejemplo tambin
realiza las siguientes operaciones sobre los datos de la matriz: suma y promedio de todos
los elementos, adems calcula el promedio de la diagonal principal (siempre que la matriz
sea de tamao NxN).
Implementacin del fichero declararmatriz.h
#ifndef DECLARARMATRIZ_H
#define DECLARARMATRIZ_H
class DeclararMatriz
{
private:
int **matriz; //Se asigna un puntero doble para la matriz.
int filas; //Atributo para asignar el nmero de filas que tendr la matriz.
int columnas; //Atributo para asignar el nmero de columnas que tendr la matriz.
void Limpiar(); //Mtodo para liberar la memoria del vector, borrando el vector principal.
public:
DeclararMatriz(); //Mtodo constrictor de la clase DeclararMatriz.
//Mtodo para asignar el tamao de la matriz, es decir el numero de filas y de columnas.
void setTamano(int F, int C);
//Mtodo para agregar elementos en una determinada fila y columna de la matriz.
void setMatriz(int f, int c, int vem);
//Mtodo para obtener un elemento ubicado en una determinada fila y columna de la matriz.
int getMatriz(int f, int c);
//Mtodo modificador para asignar el nmero de filas que tendr la matriz.
void setFilas(int f);
//Mtodo selector para obtener el nmero de filas de la matriz.
int getFilas();
//Mtodo modificador para asignar el nmero de columnas que tendr la matriz.
void setColumnas(int c);
//Mtodo selector para obtener el nmero de columnas de la matriz.
int getColumnas();
int sumarMatriz(); //Mtodo que suma los elementos de tipo entero almacenados en la matriz.
//Mtodo que calcula el promedio de los elementos de tipo entero almacenados en la matriz.
float promedioMatriz();
//Mtodo que calcula el promedio de los elementos de la diagonal principal de la matriz, si es de NxN.
float promedioDiagonal();
virtual ~DeclararMatriz(); //Mtodo destructor de la clase DeclararMatriz.
};
#endif // DECLARARMATRIZ_H

Implementacin del fichero declararmatriz.cpp


#include "declararmatriz.h"
#include <iostream>
using namespace std;
DeclararMatriz::DeclararMatriz() //Se asignan los valores iniciales a los atributos de la clase.
{
matriz = NULL;
filas = 0;
columnas = 0;
}
//Implementacin del mtodo que asigna el tamao que tendr la matriz (numero de filas y columnas).
void DeclararMatriz::setTamano(int F, int C){
filas = F; //Se asigna el nmero de filas que tendr la matriz.
columnas = C; //Se asigna el nmero de columnas que tendr la matriz.
//Se declara y asigna el tamao que tendr la matriz de tipo entero, en tiempo de ejecucin.
matriz = new int* [filas];
for (int i=0; i<filas; i++){
matriz[i] = new int[columnas];
}
}
//Implementacin del mtodo modificador de la matriz.
void DeclararMatriz::setMatriz(int f, int c, int vem){
matriz[f][c] = vem; //En una determinada fila (f) y columna (c), se asigna el elemento (vem).
}
//Implementacin del mtodo selector de la matriz.
int DeclararMatriz::getMatriz(int f, int c){
//Retorna un elemento de la matriz ubicado en una determinada fila (f) y columna (c).
return matriz[f][c];
}
//Implementacin del mtodo modificador para asignar el nmero de filas de la matriz.
void DeclararMatriz::setFilas(int f){
filas = f;
}
//Implementacin del mtodo selector para obtener el nmero de filas de la matriz.
int DeclararMatriz::getFilas(){
return filas;
}
//Implementacin del mtodo modificador para asignar el nmero de columnas de la matriz.
void DeclararMatriz::setColumnas(int c){
columnas = c;
}
//Implementacin del mtodo selector para obtener el nmero de columnas de la matriz.
int DeclararMatriz::getColumnas(){
return columnas;
}
//Implementacin del mtodo que elimina los elementos de la matriz.
void DeclararMatriz::Limpiar(){
for(int i=0; i<filas; i++){
delete[] matriz[i]; //Se elimina cada vector de la matriz.
}
delete[] matriz; //Se elimina el vector principal.
}
//Implementacin del mtodo que suma cada uno de los elementos almacenados en la matriz.
int DeclararMatriz::sumarMatriz(){
int suma = 0;
for(int i=0; i<=getFilas()-1; i++){
for(int j=0; j<=getColumnas()-1; j++){

suma = suma + getMatriz(i,j);


}
}
return suma;
}
//Implementacin del mtodo que calcula el promedio de los elementos almacenados en la matriz.
float DeclararMatriz::promedioMatriz(){
float suma = 0;
float prom;
for(int i=0; i<=getFilas()-1; i++){
for(int j=0; j<=getColumnas()-1; j++){
suma = suma + getMatriz(i,j);
}
}
prom = suma/(getColumnas()*getFilas());
return prom;
}
//Implementacin del mtodo que calcula el promedio de los elementos de la diagonal principal.
float DeclararMatriz::promedioDiagonal(){
float suma = 0;
int cont = 0;
float prom;
for(int i=0; i<=getFilas()-1; i++){
for(int j=0; j<=getColumnas()-1; j++){
if (i == j){
suma = suma + getMatriz(i,j);
cont = cont + 1;
}
}
}
prom = suma/cont;
return prom;
}
DeclararMatriz::~DeclararMatriz()
{
//dtor
}

Implementacin del fichero main.cpp


#include <iostream>
#include "declararmatriz.h"
using namespace std;
int main()
{
int filas;
int columnas;
int dato;
DeclararMatriz* obj = new DeclararMatriz();
cout << "\n";
cout << "::::::::::::::::::::::: PRACTICA CON MATRICES C++ :::::::::::::::::::::::\n\n";
cout << "_________________________________________________________________________\n";
cout << "\n
DIGITE EL NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ \n";
cout << "_________________________________________________________________________\n\n";
cout << "Numero de FILAS: ";
cin >> filas;

obj->setFilas(filas);
cout << "\n";
cout << "Numero de COLUMNAS: ";
cin >> columnas;
obj->setColumnas(columnas);
obj->setTamano(obj->getFilas(), obj->getColumnas());
cout << "__________________________________________________________________________ \n";
cout << "\n
DIGITE LOS VALORES DE LOS ELEMENTOS DE LA MATRIZ \n";
cout << "_________________________________________________________________________ \n \n";
for (int i=0; i<=obj->getFilas()-1; i++){
for (int j=0; j<=obj->getColumnas()-1; j++){
cout << "Digite el elemento de la matriz en la posicion [" << i << "," << j << "]: ";
cin >> dato;
obj->setMatriz(i, j, dato);
}
}
cout << "__________________________________________________________________________ \n";
cout << "\n
ELEMENTOS DE LA MATRIZ \n";
cout << "__________________________________________________________________________ \n \n";
for (int i=0; i<=obj->getFilas()-1; i++){
for (int j=0; j<=obj->getColumnas()-1; j++){
cout << obj->getMatriz(i,j) << "\t";
}
cout << ("\n");
}
cout << "\n\n__________________________________________________________________________
\n";
cout << "\n
SUMA DE LOS ELEMENTOS DE LA MATRIZ \n";
cout << "__________________________________________________________________________ \n \n";
cout << "La SUMA de los elementos de la Matriz es: " << obj->sumarMatriz();
cout << "\n\n__________________________________________________________________________
\n";
cout << "\n
PROMEDIO DE LOS ELEMENTOS DE LA MATRIZ \n";
cout << "__________________________________________________________________________ \n \n";
cout << "El PROMEDIO de los elementos de la Matriz es: " << obj->promedioMatriz();
cout << "\n\n__________________________________________________________________________
\n";
cout << "\n
PROMEDIO DE LOS ELEMENTOS DE LA MATRIZ \n";
cout << "__________________________________________________________________________ \n \n";
if (obj->getFilas() == obj->getColumnas()){
cout << "El PROMEDIO de los elementos de la Diagonal Principal es: " << obj->promedioDiagonal();
}else{
cout << "La matriz No es de NxN, es de NxM: " << obj->getFilas() << "x" << obj->getColumnas();
}
cout << "\n \n";
}

Вам также может понравиться