• Domingo 22 de Diciembre de 2024, 12:30

Autor Tema:  Dibujar un triángulo  (Leído 3658 veces)

zazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Dibujar un triángulo
« en: Martes 28 de Octubre de 2008, 17:51 »
0
Necesito dibujar un triángulo indicándole el número de filas y columnas, de manera que quede así:
Código: Text
  1.  
  2. ****
  3.  ***
  4.   **
  5.    *
  6.  
  7. Este serían 4 columnas y 4 filas.
  8.  
  9. *****
  10.   ***
  11.     *
  12. Este 5 columnas y 3 filas.
  13.  
  14.  

No puedo usar ni procedimientos ni funciones.


Mi código es el siguiente:
Código: Text
  1.  
  2. program  triangulo;
  3.  
  4. var
  5.      a,b,c,d:integer;
  6.  
  7. Begin
  8.         writeln('Ingrese filas');
  9.         readln(a);
  10.         writeln('Ingrese columnas');
  11.         for b:=1 to a do
  12.             begin
  13.                    for c:=a downto b do
  14.                          begin
  15.                                 write('*');
  16.                          end;
  17.                     writeln;
  18.              end;
  19. End.
  20.  
  21.  

El problema es que sólo me hace triángulos con igual número de filas que de columnas y además, me los hace de la siguiente manera:

****
***
**
*

que es distinta a la que me piden.


Alguien me puede echar un cable?

Muchas gracias!

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Dibujar un triángulo
« Respuesta #1 en: Miércoles 29 de Octubre de 2008, 09:05 »
0
Primero, ¿para qué quieres que se ingresen las columnas? El número de columnas está definido por el de filas. Y tienes declaradas variables de sobra.

Código: Pascal
  1. program  triangulo;
  2.  
  3. var
  4.      a,b,c:integer;
  5.  
  6. Begin
  7.         writeln('Ingrese filas');
  8.         readln(a);
  9.         for b:=1 to a do
  10.             begin
  11.                    for c:=1 to b do
  12.                          begin
  13.                                 write(' ');
  14.                          end;
  15.                    for c:=a downto b do
  16.                          begin
  17.                                 write('*');
  18.                          end;
  19.                     writeln;
  20.              end;
  21. End.
  22.  

zazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Dibujar un triángulo
« Respuesta #2 en: Miércoles 29 de Octubre de 2008, 11:42 »
0
Muchas gracias por contestar!

Ese es el problema, necesito las dos variables.

Lo que quiero es hacer un triángulo en el que puedan ser independientes el número de columnas y el de filas, para construir triángulos como el del ejemplo que puse de 5 columnas y 3 filas.

Tal y como tengo el código,como has visto, no lo son, una depende de la otra y sobra.

Ese es mi problema,no consigo hacerlas independientes, porque siempre que modifico el código o se me hacen bucles o me sale sólo un asterisco...

No sé si me explicado bien.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Dibujar un triángulo
« Respuesta #3 en: Miércoles 29 de Octubre de 2008, 12:38 »
0
Te has explicado, pero siguen habiendo flecos...

Supongo que se ha solucionado el problema de la visualización de los asteriscos, porque no comentas nada...

¿Cómo sabes cuántos asteriscos van por fila? Es decir, imagina que filas = 4 y columnas = 5. ¿cuál sería la salida?

Código: Text
  1. *****
  2.  ****
  3.   ***
  4.    **
  5.  

O bien


Código: Text
  1. *****
  2.   ***
  3.    **
  4.     *
  5.  

O bien


Código: Text
  1. *****
  2.  ****
  3.    **
  4.     *
  5.  

etc...

zazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Dibujar un triángulo
« Respuesta #4 en: Miércoles 29 de Octubre de 2008, 13:29 »
0
Edito!!.

Sí que se ha resuelto el problema de la visualización! Muchas gracias!

En cuanto a los asteriscos, la verdad es que ahí me he quedado pillado!

En el enunciado del problema dan dos ejemplos de representación:

Código: Text
  1.  
  2.  
  3. ******
  4.  *****             6 filas y 6 columnas
  5.   ****
  6.    ***
  7.     **
  8.      *
  9.  
  10. *****
  11.   ***             3 filas y 5 columnas
  12.     *
  13.  
  14.  

Y claro, el caso que me has planteado de 4 y 5 me ha roto los esquemas, pues no veo cuál de todos los ejemplos que pusiste se ajustaría a esto.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Dibujar un triángulo
« Respuesta #5 en: Miércoles 29 de Octubre de 2008, 15:00 »
0
Cita de: "zazo"
En cuanto a los asteriscos, la verdad es que ahí me he quedado pillado!
Seguro que se les pasó a quienes te dieron el enunciado también. Suele pasar...  :mellow:

zazo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Dibujar un triángulo
« Respuesta #6 en: Miércoles 29 de Octubre de 2008, 16:14 »
0
Pues no sé, si sólo me fijara en esos ejemplos, el primero ya lo dibuja, y con un If podría separarlos. Pero tendría que pensar en un algoritmo común para el resto de casos.

También, creo que debería delimitar que c > a, poniendo además como valores mínimos 2 y 2 respectivamente. Como valores máximos en el enunciado me dicen que tienen que ser para las columnas 80 y para las filas 24.

No sé si esto último me ayuda a la hora de pensar en la representación. Porque yo sólo veo que la razón es 10/3.

Edito, me colé en valores, pensé en 2 y 2. Aunque viendo que en otra parte del diseño me pide dibujar triángulos con huecos, ampliaría a 3.