Foros del Web » Programación para mayores de 30 ;) » Programación General »

While y Pascal

Estas en el tema de While y Pascal en el foro de Programación General en Foros del Web. Bueno estoy intentando hacer por mi cuenta un programa en el cual introduscas un caracter y un numero de linas y miestre una especia de ...
  #1 (permalink)  
Antiguo 25/02/2008, 17:43
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
While y Pascal

Bueno estoy intentando hacer por mi cuenta un programa en el cual introduscas un caracter y un numero de linas y miestre una especia de piramide con el caracter y que la piramide sea tan grande como el numero insertado...

Algo parecido a esto:

[ MS-DOS ]
Introduce Caracter: *
Introduce Numero de Lineas: 7

*
**
***
****
*****
******
*******
[ MS-DOS ]

Por ahora llevo esto:

program caracter;
uses crt;
var
base:integer;
caracter:string[1];
lineas:integer;
begin
textcolor(yellow);
textbackground(blue);
clrscr;
gotoxy(30,15);
writeln('Escribe Caracter');
readln(caracter);
writeln('Escribe Numero de Lineas');
readln(lineas);
base:=0;
while base<=lineas do
begin
writeln(caracter);
base:=base+1;
end;
readln;
end.

Pero el Problema es que no me sale en piramide me sale asi:

[ MS-DOS ]
Introduce Caracter: *
Introduce Lineas: 7

*
*
*
*
*
*
*
[ MS-DOS ]

¿Que Puedo Hacer para Que salga en Piramide?

Salu2 y Gracias
  #2 (permalink)  
Antiguo 25/02/2008, 18:30
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 18 años
Puntos: 3
Re: While y Pascal

Para encontrar el algoritmo tenes que intentar pensar que patron
asocia a las variables con las introducidas por el usuario, para esto
tenes que analizar lo que queres obtener según la entrada.
Veamos algunos casos:
--
Introduce Numero de Lineas: 1
Salida esperada:
*
--
Introduce Numero de Lineas: 2
Salida esperada:
*
**
--
Introduce Numero de Lineas: 3
Salida esperada:
*
**
***
--
Introduce Numero de Lineas: 4
Salida esperada:
*
**
***
****
--


El primer patrón que te encontras es trivial porque es tu pedido, a n líneas tenes que tener como mínimo n writeln. Pero también es evidente que necesitas por cada una de las iteraciones imprimir cierta cantidad de caracteres sin salto de linea (write). ¿Cúantos? La primera vez 1, la segunda vez 2, en la iteración número n, tenes que sacar n. Por lo que tenemos 2 while (uno lo transformo en for por comodidad), uno para sacar n saltos de línea, y otro para sacar los caracteres:
Código:
   base:=0;
   while base <= lineas do
   begin
      for x:= 1 to base do
         write(caracter);
      base := base + 1;
      writeln();
   end;
Ahora todo junto:

Código:
program caracter_programa;
uses crt;
var
   base,x : integer;
   caracter : string[1];
   lineas:integer;
begin
   textcolor(yellow); 
   textbackground(blue); 
   clrscr; 
   gotoxy(30,15); 
   writeln('Escribe Caracter');
   readln(caracter);
   writeln('Escribe Numero de Lineas');
   readln(lineas);
   base:=0;
   while base <= lineas do
   begin
      for x:= 1 to base do
         write(caracter);
      base := base + 1;
      writeln();
   end;
   readln;
end.
Espero que te sea de ayuda, saludos.
__________________
programación php
  #3 (permalink)  
Antiguo 25/02/2008, 19:37
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Re: While y Pascal

Exelente xD :D pero como hiciste para que saliera en piramide?... Para pulir mas esto :P

Salu2 y Gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:57.