elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
06 Octubre 2008, 20:26  



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

Desconectado Desconectado

Mensajes: 335



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

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 vaya 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
Colaborador

Desconectado Desconectado

Mensajes: 2.324


Peace & Love


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

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

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

así 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
Colaborador

Desconectado Desconectado

Mensajes: 1.976


La felicidad no es una meta, es un camino.


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

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.
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats