Elabore un algoritmo que permita obtener la siguiente matriz:
#include <iostream>
#include "Calcular.h"
using namespace std;
void mostrarMatriz(Calcular *obj)
{
// recorro con el primer ciclo for las filas de la matriz i
for (int i = 0; i < 9; i++)
{
// recorro con el segundo ciclo for las columnas de la matriz j
for (int j = 0; j < 9; j++)
{
// muestro la matriz en pantalla
cout << obj->getMatriz(i, j) << " ";
}
// salto de linea
cout << endl;
}
}
int main(void)
{
// se crea un objeto de la clase Calcular (Instanciaciaci贸n)
Calcular *obj = new Calcular();
// llamo al metodo para dibujar la matriz
obj->dibujarMatriz();
// muestro la matriz y le paso el objeto obj de la clase Calcular como parametro
mostrarMatriz(obj);
}
#ifndef CALCULAR_H
#define CALCULAR_H
class Calcular
{
public:
Calcular();
virtual ~Calcular();
// declaro los metodos publicos, para dibujar la matriz y encapsular el vector bidimensional matriz[]
void dibujarMatriz();
void setMatriz(int fil, int col, int val);
int getMatriz(int fil, int col);
protected:
private:
// declaro el atributo privado matriz de tipo entero que tendra [9] filas y [9] columnas
int matriz[9][9];
};
#endif // CALCULAR_H
#include "Calcular.h"
Calcular::Calcular()
{
// ctor
}
Calcular::~Calcular()
{
//dtor
}
// implementacion de los metodos Setter y Getters de los atributos de la clase Calcular
void Calcular::setMatriz(int fil, int col, int val)
{
// le asignare a la matriz el valor de val , en la posicion fil , col que se hayan pasado como parametro
matriz[fil][col] = val;
}
int Calcular::getMatriz(int fil, int col)
{
// retornare el valor que haya en la fila fil , columna col que se haya pasado como parametro
return matriz[fil][col];
}
// implementacion del metodo para dibujar la matriz
void Calcular::dibujarMatriz()
{
// declarare la variable temporal de tipo entero temp y se le asignara el valor de 1
int temp = 1;
// recorrere con el primer ciclo for las filas i
for (int i = 0; i < 9; i++)
{
// se le asigna a la variable temp el valor actual de i mas 1
temp = i+1;
// recorrere con el segundo ciclo for las columnas j
for (int j = 0; j < 9; j++)
{
// si la columna actual j es menor que el valor actual de temp
if (j < temp)
{
// entonces se le asignara en la fila i , columna j el valor actual de temp
setMatriz(i, j, temp);
}
else
{
// se incrementa la variable temp
temp++;
// entonces se le asignara en la fila i , columna j el valor actual de temp
setMatriz(i, j, temp);
}
}
}
}
public class Main
{
public static void mostrarMatriz(Calcular obj)
{
String datos_matriz = "";
// recorro con el primer ciclo for las filas de la matriz i
for (int i = 0; i < 9; i++)
{
// recorro con el segundo ciclo for las columnas de la matriz j
for (int j = 0; j < 9; j++)
{
// acumulo los datos de la matriz en la variable datos_matriz
datos_matriz = datos_matriz + String.valueOf(obj.getMatriz(i, j)) + " ";
}
// salto de linea
datos_matriz = datos_matriz + "\n";
}
// muestro la matriz
System.out.println(datos_matriz);
}
public static void main(String[] args)
{
// se crea un objeto de la clase Calcular (Instanciaciaci贸n)
Calcular obj = new Calcular();
// llamo al metodo para dibujar la matriz
obj.dibujarMatriz();
// muestro la matriz y le paso el objeto obj de la clase Calcular como parametro
mostrarMatriz(obj);
}
}
public class Calcular
{
private int [][] matriz;
public Calcular()
{
matriz = new int[9][9];
}
// implementacion de los metodos Setter y Getters de los atributos de la clase Calcular
public void setMatriz(int fil, int col, int val)
{
// le asignare a la matriz el valor de val, en la posicion fil, col que se hayan pasado como parametro
matriz[fil][col] = val;
}
public int getMatriz(int fil, int col)
{
// retornare el valor que haya en la fil, col que se haya pasado como parametro
return matriz[fil][col];
}
// implemnetacion del metodo para dibujar la matriz
public void dibujarMatriz()
{
// declarare la variable temporal de tipo entero temp y se le asignara el valor de 1
int temp = 1;
// recorrere con el primer ciclo for las filas i
for (int i = 0; i < 9; i++)
{
// se le asigna a la variable temp el valor actual de i mas 1
temp = i+1;
// recorrere con el segundo ciclo for las columnas j
for (int j = 0; j < 9; j++)
{
// si la columna actual j es menor que el valor actual de temp
if (j < temp)
{
// entonces se le asignara en la fila i , columna j el valor actual de temp
setMatriz(i, j, temp);
}
else
{
// se incrementa la variable temp
temp++;
// entonces se le asignara en la fila i , columna j el valor actual de temp
setMatriz(i, j, temp);
}
}
}
}
}