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 pantall
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];
}
// implemnetacion del metodo para dibujar la matriz
void Calcular::dibujarMatriz()
{
// declarare de una variable temporal de tipo entero: temp_1 y una variable val
int temp_1, val;
// declaro e inicializo la variable temp_2 en 1
int temp_2 = 1;
// recorrere con el primer ciclo for las filas i
for (int i = 0; i < 9; i++)
{
// recorrrere con el segundo ciclo for las columnas j
for (int j = 0; j < 9; j++)
{
// si estamos en la fila 0, (primera fila)
if (i == 0)
{
// entonces le asignare en la fila i, columna j el valor de que tenga actualmente la variable temp_2
setMatriz(i, j, temp_2);
// incremento temp_2 en 1
temp_2++;
}
else // sino
{
// le asigno a la variable temp_1 el valor actual de i mas 1
temp_1 = i+1;
// le asigno a la variable val el valor actual de temp_1
val = temp_1;
// con el cilo do...while
do
{
// hare que se le asigne en la fila i, columnaj el valor actual de temp_1
setMatriz(i, j, temp_1);
// decremento la variable val en 1
val--;
}
while (val > 0); // repetire las instrucciones anteriores mientras la variable val sea mayor que 0
// si la variable val es igual a cero
if (val == 0)
{
// entonces le asignare a la variable temp_1 el valor actual de i mas 1
temp_1 = i+1;
// le asigno en la fila i, columna j, el valor actual de temp_1
setMatriz(i, j, temp_1);
// incremento temp_1 en 1
temp_1++;
}
}
}
}
}
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
{
// declaro la matriz privada de tipo entero
private int [][] matriz;
public Calcular()
{
// le asigno en el constructor de la clase Calcular 9 filas y 9 columnas a la matriz
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 fila fil, columna 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 fila fil, columna col que se haya pasado como parametro
return matriz[fil][col];
}
// implementacion del metodo para dibujar la matriz
public void dibujarMatriz()
{
// declarare de una variable temporal de tipo entero temp_1 y una variable val
int temp_1, val;
// declaro e inicializo la variable temp_2 en 1
int temp_2 = 1;
// recorrere con el primer ciclo for las filas i
for (int i = 0; i < 9; i++)
{
// recorrrere con el segundo ciclo for las columnas j
for (int j = 0; j < 9; j++)
{
// si estamos en la fila 0, (primera fila)
if (i == 0)
{
// entonces le asignare en la fila i, columna j el valor de que tenga actualmente temp_2
setMatriz(i, j, temp_2);
// incremento temp_2 en 1
temp_2++;
}
else // sino
{
// le asigno a la variable temp_1 el valor actual de i mas 1
temp_1 = i+1;
// le asigno a la variable val el valor actual de temp_1
val = temp_1;
// con el cilo do...while
do
{
// hare que se le asigne en la columna i, j el valor actual de temp_1
setMatriz(i, j, temp_1);
// decremento la variable val en 1
val--;
}
while (val > 0); // repetire las instrucciones anteriores mientras la variable val sea mayor que 0
// si la variable val es igual a cero
if (val == 0)
{
// entonces le asignare a la variable temp_1 el valor actual de i mas 1
temp_1 = i+1;
// le asigno en la fila i, columna j, el valor actual de temp_1
setMatriz(i, j, temp_1);
// incremento temp_1 en 1
temp_1++;
}
}
}
}
}
}