Skip to content
 

Una Piramide con Métodos

Aqui explicaré como podemos hacer esta gráfica en consola usando caracteres, espacios  y un bucle. La figura es la siguiente:

   x
  xxx
 xxxxx
xxxxxxx

Pues como vemos en la primera fila tenemos 3 espacios y 1 caracter, luego 2 espacios y 3 caracteres (sumamos 2 en caracteres), luego 1 espacio y 5 caracteres y por último tenemos 0 espacios (ninguno) y 7 caracteres!

¿Cómo lo hacemos?
Primero necesitamos tener como base un número impar (cuyo módulo del número y 2 sea diferente de 0 (caso contrario sería par)) y luego creamos el algoritmo!

Trabajaremos con el número 7 y haremos una copia de Número como NN;

Para la primera fila sería asi:
Espacios = Numero / 2;  (7/2 =3)
Caracteres = NN – Espacios *2; (7 – 6 = 1)
Numero = Numero -2;  (7-2 = 5)
Imprimir Espacios, Imprimir caracteres! >> ___X

Entonces nuesto bucle sería el siguiente:

Mientras Numero sea mayor que 0 hacemos:
Espacios = Numero / 2;
Caracteres = Copia de Numero – Espacios *2;
Numero = Numero -2;
Imprimir espacios, Imprimir Caracteres

En C# sería asi:

int esp, ch, tt = n, x = 0;
while (x < n)
{
    esp = n / 2;
    ch = tt - (esp * 2);
    n = n - 2;
    espacio(esp);
    caract(ch);
    Console.WriteLine();
}

Nuestras funciones “espacio()” y “caract()” serían las siguientes, lo único que hacen es imprimir la cantidad de espacios y caracteres según el valor de la variable recibida!

void espacio(int x) //void, quiere decir que no devuelve valores
{
   int a; // declaramos a pero no le asignamos valor
   for (a = 0; a < x; a++) // por que el bucle le dara un valor
   {
     Console.Write(" "); // cuantas veces 'a' sea menor que 'x'
   } // imprimiremos espacios en la consola!
}
void caract(int x) // no devolvemos valor!
{
   int a;
   for (a = 0; a < x; a++) //bucle para cantidad de caracteres
   {
     Console.Write("x"); // imprimimos caracteres
   }
}

Este código no puede mostrarse en funcionamiento (debido a que es C#) de todos modos encuentran el código (con las funciones de entrada de datos) listo para compilar en develop.ignoranto.info en la sección de C#, o simplemente haciendo clic aquí!

Leave a Reply