Dibujo triángulo asteriscos con menú

De Ejercicios

Contenido

Enunciado

Programa que sea capaz de sacar la una pirámide de asteriscos dada la altura. La pirámide se podrá dibujar de las formas siguientes según la opción elegida: (ejemplo para altura 4)

   *         *
  * *       ***
 * * *  ó  *****
* * * *   *******
  
 

Soluciones

Diseño en Pseudocódigo por lperez

ALGORITMO asteriscos
ENTRADAS: altura: ENTERO, nº de filas de la pirámide; 
          opcion: ENTERO, la opción que se elige (1 y 2 dibuja pirámides y la 
                                   opción 3 para acabar el programa)
SALIDAS: pirámide dibujada con asteriscos. Por ejemplo si la altura es 3 y se elige 
         la opción 1 dibujará *
                             ***
                            *****
         y si se elige altura 3 y opción 2 dibuja *
                                                 * *
                                                * * *
VARIABLES: filas, columnas, blancos: ENTERO
INICIO
  REPETIR
     LEER opcion
     EN CASO DE QUE opcion VALGA
     1: REPETIR
           LEER altura
        HASTA QUE altura>0
        PARA filas=1 HASTA altura  HACER
           PARA blancos=1 HASTA altura-filas HACER
              ESCRIBIR ‘ ’
           FIN_PARA
           PARA columnas=1 HASTA 2*filas-1 HACER
              ESCRIBIR ‘*’
           FIN_PARA
           Salta_Linea 
        FIN_PARA    
     2: REPETIR
           LEER altura
        HASTA QUE altura>0
        PARA filas=1 HASTA altura  HACER
           PARA blancos=1 HASTA altura-filas HACER
              ESCRIBIR ‘ ’
           FIN_PARA 
           PARA columnas=1 HASTA filas HACER
              ESCRIBIR ‘* ’
           FIN_PARA
           Salta_Linea 
        FIN_PARA    
     FIN_CASO
  HASTA QUE opcion=3
FIN

Programa en Pascal por lperez

program asteriscos;
{ENTRADAS:altura:número de filas de la pirámide; opcion: opción que se elige
SALIDAS:Dibujo  para altura=3  y opcion=1 la pirámide  *
                                                      ***
                                                     *****
     y si se elige la opcion 2 dibujará   *
                                         * *
                                        * * *}
uses crt;
var altura,filas,columnas,blancos,opcion:integer;
begin
 repeat
   clrscr; {borra la pantalla}
   writeln('Elige una de las siguientes opciones:');
   writeln('   1: Dibuja Pir mide del tipo:  ');
   writeln('       *');
   writeln('      ***');
   writeln('     *****');
   writeln('   2: Dibuja Pir mide del tipo: ');
   writeln('       *');
   writeln('      * *');
   writeln('     * * *');
   writeln('   3: Salir.');
   write('Opci¢n elegida= ');
   readln(opcion);
   case opcion of
     1:begin
         repeat
           write('Dame una altura positiva para la pirámide: ');
           readln(altura);
         until altura>0;{está leyendo hasta que la altura mayor que 0}
         for filas:=1 to altura do
           begin
             for blancos:=1 to altura-filas do {dibuja los espacios en blanco de 
                                                   una fila}
               write(' ');
             for columnas:=1 to 2*filas-1 do    {dibuja los asteriscos de una fila}
                write('*');
             writeln;  {sitúa el cursor en la línea siguente}
           end;
       end;
     2:begin
         repeat
           write('Dame una altura positiva para la pirámide: ');
           readln(altura);
         until altura>0;{está leyendo hasta que la altura mayor que 0}
         for filas:=1 to altura do
           begin
             for blancos:=1 to altura-filas do {dibuja los espacios en blanco de
                                                    una fila}
               write(' ');
             for columnas:=1 to filas do {dibuja los asteriscos de una fila}
                write('* ');
             writeln;   {sitúa el cursor en la línea siguiente}
           end;
       end;
   end;{case}
   writeln('Pulsa una tecla para seguir');
   readln; {para el progrma para ver los resultados}
  until opcion=3; {el programa se repite hasta que elijamos la opción 3}
end.


Programa en C

#include <stdio.h> 
#include <stdlib.h>

int main (void){
  //ENTRADAS:
    int altura;  /*número de filas de la pirámide*/
    int opcion;  /*1 y 2 dibuja pirámides y la opcion 3 para acabar el programa*/
  //SALIDAS:
    /*
    pirámide dibujada con asteríscos. Por ejemplo son la altura es 3 
    y se elige la opción 1 dibujará               *
                                                 ***
                                                *****
    y si se elige altura 3 y opción 2 dibuja      *
                                                 * *       
                                                * * *       
    */
  //VARIABLES:
    int filas, columnas, blancos;
     
  //INICIO
    do{
      printf("Elige una de las siguientes opciones:\n");
      printf("   1: Dibuja Pirámide del tipo:\n");
      printf("       *\n");
      printf("      ***\n");
      printf("     *****\n");
      printf("   2: Dibuja Pirámide del tipo:\n");
      printf("       *\n");
      printf("      * *\n");
      printf("     * * *\n");
      printf("   3: Salir.\n");
      printf("Que opcion elige: ");
      scanf("%i", &opcion);
         
      switch(opcion){
        case 1:
          do{
            printf("Introduzca el numero de filas de la piramide: ");
            scanf("%i", &altura);
          }while(altura<=0);
          for (filas=1; filas<=altura; filas++){
            for (blancos=1; blancos<=altura-filas; blancos++){
              printf(" ");
            }
            for (columnas=1; columnas<=2*filas-1; columnas++){
              printf("*");
            }
            printf("\n");
          }
          break;       

        case 2:         
          do{
            printf("Introduzca el numero de filas de la piramide: ");
            scanf("%i", &altura);
          }while(altura<=0);
          for (filas=1; filas<=altura; filas++){
            for (blancos=1; blancos<=altura-filas; blancos++){
              printf(" ");
            }
            for (columnas=1; columnas<=filas; columnas++){
              printf("*");
            }
            printf("\n");
          }
          break;
      } //FIN del switch              
    } while(!(opcion<3));
    system("PAUSE");
 }//FIN
Tipos de soluciones