elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Pascal+Procedure+Figuritas.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pascal+Procedure+Figuritas.  (Leído 9,857 veces)
Corso


Desconectado Desconectado

Mensajes: 337



Ver Perfil WWW
Pascal+Procedure+Figuritas.
« en: 26 Noviembre 2005, 02:32 am »

Buenas..
Pues otro problema con un ejercicio...
Se me pide que haga un programa (con procedimientos), para que presente por pantalla una “pirámide”. El programa solicita la altura de la pirámide, y con el carácter que se va a realizar... Algo como esto:

Introduzca la altura de la pirámide:7
Introduzca el carácter:#

#
##
###
####
#####
######
#######

Lo más parecido que e hecho es esto:

Código:
program figuritas;

var

    longitud:integer;
    longitud2:integer;
    caracter:char;


procedure figura;

var

   i:integer;

begin
        longitud2:=0;
        for i:=longitud2 to longitud do
          write(',',caracter);
end;

begin
write('Introduzca las veces que desea que se repita un caracter: ');
readln(longitud);

write('Introduzca que caracter desea que se repita: ');
readln(caracter);

figura;
end.



Pero no tengo ni idea de cómo codificarlo para que lo presente con la forma de la pirámide... Imagino que con alguna estructura que valla añadiendo un espacio (writeln(‘’);) entre cada carácter.. O... Es que no se me ocurre nada...
Mira que e hecho ya programas con funciones y procedimientos, y ningún problema... Pero con esta chorrada, ni idea.

A ver si a alguno.
Salu2.


En línea

Cualquier ciudad es un secreto. Toda palabra traza un laberinto. De cualquier laberinto se sale con palabras.


Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.322


Peace & Love


Ver Perfil WWW
Re: Pascal+Procedure+Figuritas.
« Respuesta #1 en: 26 Noviembre 2005, 02:46 am »

Código:
      
       #
     # #
    # # #
   # # # #
  # # # # #
 # # # # # #
# # # # # # #

En el notepad se veia mejor pero bueno..... ::)

Haci lo haria yo.... empiezo desde abajo para arriba guardandolo en alguna variable. Si la altura es 7 pues escribes los 7 caracteres dejando un espacio entre caracter. Luego la segunda fila (de abajo para arriba) deberia ser 6 caracteres pero dejando un espacio al principio (en el 7 se dejo 0 espacio) y luego ir subiendo en ese orden.

Algo como (no se pascal es solo un ejemplo):
$a = 7
$c = "#"
$e = 0 //espacio
for ($i=1;$i==$a;$i++){
 for ($x=0;$x==$e;$x++){ //ir aumentando el espacio
  writeln(' ');
 }
 $e++;
wrieln($c + ' ');
}

Tambien se podria hacer que el programa o la idea de como lo haria funcionara alrevez pero no puedo quemar tanta neuronas a esta hora  :P Espero que te sirva .


En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
jvchino
Solo soy un
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.999


La felicidad no es una meta, es un camino.


Ver Perfil
Re: Pascal+Procedure+Figuritas.
« Respuesta #2 en: 26 Noviembre 2005, 06:49 am »

Puedes usar la función GOTOXY(coordX,coordY) para ubicar el primer caracter de cada linea.
Inicializas un X y un Y adecuado [Ejemplo: x:=20;  y:=5;]
Y en cada pasada aumentas "Y" (para que vaya a la siguiente línea) y disminuyes "X" (para que retroceda una columna).

Para "dibujar" la pirámide es necesario un doble FOR...DO; uno para que cuente las líneas y otro para que dibuje los caracteres.

Código:
x:=25;
y:=5;
FOR I:= 1 to longitud DO
 begin
   x:=x-1;
   y:=y+1;
   gotoxy(x,y);
   FOR J:=1 to I DO
    write(caracter,' ')
 end;

Con este código obtienes:

       #
      # #
     # # #
    # # # #
   # # # # #
  # # # # # #
 # # # # # # #



Si deseas todo "relleno", no creo que sea dificil modificar el código, para que el resultado sea:

       #
      ###
     #####
    #######
   #########
  ###########
 #############



SUERTE.


P.D.  Debes incluir en la cabecera la unidad CRT:
        uses crt;


En línea

Si ayudo a una sola persona a tener esperanza, no habré vivido en vano.

No, nada llega tarde, porque todas las cosas
tienen su tiempo justo, como el trigo y las rosas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Stored procedure Postgresql
Bases de Datos
estebanvr 0 2,508 Último mensaje 15 Mayo 2012, 18:32 pm
por estebanvr
Duda con Procedure en SQL Server
Bases de Datos
raintrooper 1 2,819 Último mensaje 31 Octubre 2016, 15:25 pm
por Shell Root
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines