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