[ Foro de Pascal ]

Triangulo de pascal?? Ayuda!

30-Oct-2009 15:27
juliet garcia
7 Respuestas

Hola pues me mandaron como ejercicio hacer el triangulo de pascal, entonces porfavor si puedes ayudarme con el ejercicio para que me des una idea de como hacerlo porfa te lo agradeceria! :-)


01-Nov-2009 22:01
Nacho Cabanes (+83)

Tienes una explicación extensísima en la wikipedia, que incluye hasta una animación de como se calcula cada término:

http://es.wikipedia.org/wiki/Tri%C3%A1ngulo_de_Pascal

Da pistas para que te podamos ayudar... ¿Sabes hacer cosas y tienes dudas puntuales o no sabes ni por donde empezar?

Por ejemplo, si no sabes ni por donde empezar: cada elemento es la suma de dos elementos de la "fila anterior", así que puedes ayudarte de dos "arrays", uno para representar la fila actual y otro la fila anterior.

Otra forma muy parecida, que gasta más memoria, pero algo más sencilla de programar, es usar un array de tamaño NxN y guardar información de todas las filas anteriores, no sólo de la última.


01-Nov-2009 23:10
juliet garcia

mmm bueno cierto no te explique del todo bien pues estoy viendo recursividad y pues como haria ese ejercicio en forma recursiva? todavia no he entendido exelentemente recursividad estoy en eso pero ese ejercicio me lo mandaron hacer de esa forma ps


03-Nov-2009 23:48
Antonio P.G.

Hola Juliet.

La recursividad implica que dentro de un procedimiento/función esté el mismo procedimiento/función, o que se de entre dos o más procedimientos o funciones. Por ello, lo primero que tienes que pensar es, ¿qué es lo que quiero de parámetros en la función/procedimiento? ¿Cómo voy a retro alimentar dicha función?

Así, yo te aconsejo que de parámetros uses un array y una variable "n", por ejemplo. ¿La variable "n"? Pues sería un índice que valdría de condición de parada. Por cierto, estos parámetros debes introducirlos "por variable" ("var") en la cabecera.

La clave está en que dentro de la función/procedimiento insertes un "if ... then" y dentro de este la misma función/procedimiento.

Utiliza métodos matemáticos para calcular los espacios en caso de que vaya a ser imprimido el triángulo en la pantalla.

Te aconsejo, también, que cojas (tomes) papel y lápiz, e intentes hacerlo a mano. Tardarás un poco, pero el algoritmo resultará ser más sencillo.


04-Nov-2009 02:30
juliet garcia

Gracias por tus consejos! :-) intentare resolverlo! a pesar de que todavia me estoy rompiendo la cabeza de como hacerlo pero buehnn ya hallare la forma! xD


17-Nov-2009 01:33
Nacho Cabanes (+83)

¿Lo has conseguido ya?  El "truco" de la recursividad suele ser intentar expresar el problema a partir del mismo problema pero un poco más simplificado.

Por ejemplo, en tu caso, podrías ver si el elemento de la posición (3,1) (es decir, la primera posición de la tercera fila) se puede escribir a partir de algún elemento de la segunda fila (en tu caso, el primero y el segundo: 2,1 y 2,2).

Así vas dejando que el problema "se resuelva solo", apoyándose en las soluciones anteriores, hasta llegar al caso básico de las soluciones "triviales" (en tu caso, la primera fila del tríangulo).


11-Jul-2010 13:57
oscar gomez

Hola compañera dado que normalmente aqui lo unico que encuentras son comentarios a como podrias resolverlo y no a darte ninguna ayuda de codigo que creo esta mal por que a veces con la solucion de un problema te resuelve muchisimas dudas mas que los comentarios de qué deberias hacer para solucionarlo, pues al fin al cabo lo que uno necesita es ayuda y en codigo , eso de que la solucion no te ayuda es mentira si que te ayuda a mirar y a tomar TECNICAS en la solucion de problemas y bueno como he visto siempre te dan un brochazo no mas, sin por supuesto y lo aclaro dejar de dar las gracias  y felicitar por tan magnifica laboer del profesor NACHO CABANES  que es una excelente persona y docente que dedica parte de su tiempo a resolver por lo menos las inquietudes que su tiempo le permiten, de verdad para él mil gracias, sin embargo pienso que a veces y reitero los estudiantes menos inexpertos que empiezan con esto de la programacion aprenden mucho mas con estar intentando resolver un ejercicio y quedarsen barados en un punto determinado y que cuando se les da luz a sus inquietudes resolviendoselo con codigo ellos aprenden mucho mas y se motivan asi que compañera yo estoy dispuesto a hacerte el programa entero pero explicandotelo logicamente par que aprendas para ello escribeme a mi correo y tendras con gusto mi ayuda.  oscarydey2002@hotmail.com
de nuevo mil gracias al profesor  NACHO CABANES  del cual he aprendido muchas cosas y que es un excelente colaborador por que os recordais nadie tiene por que hacerte las tareas pero se que aveces no es ese el punto de quein entra a este foro si no ver como se resolvia algo que llevabas horas y quiza dias pensando asi que aprender es un camino animo compañeros.


12-Jul-2010 00:14
Nacho Cabanes (+83)

Por alusiones, Oscar, me meto en la conversación.

Mi opinión es que el dar un fragmento de código ayuda (por supuesto), pero ayuda para un problema concreto. Por el contrario, dar pista de cómo resolver un problema hace que aun así tengas que pelear con él y tratar de resolverlo, y esa es la forma adecuada (en mi opinión, claro) de aprender: practicando.

Está muy relacionado con eso de "si das un pez a una persona, le solucionas la comida de un día; si le enseñas a pescar, le solucionas la vida".

Yo prefiero intentar ayudar con ideas, con formas de plantear problemas, pero que mis "discípulos" aun así tengan que pelear con la implementación concreta de un problema, porque considero que es la forma correcta de aprender a programar. Si sólo "lees un fuente", siempre se escapan muchos pequeños detalles que das por supuestos y que te habrían dado problemas al teclearlo tú desde cero. Y generalmente se aprende mucho más si intentas algo, especialmente cuando chocas con alguna dificultad, que cuando simplemente lees.

Aun así, para eso influye incluso el lenguaje. Podrás comprobar que en el foro de C suelo responder con más fragmentos de programa que en el foro de Pascal, en el que me suelo limitar más a explicar cómo lo haría yo... pero eso es porque Pascal es un lenguaje "bastante más natural", en el que los problemas se suelen deber a no entender el problema, mientras que en C es muy habitual encontrar problemas porque una orden esté mal escrita, ya que el lenguaje es más críptico y más propenso a errores.

En cualquier caso, en las dudas de usuarios del foro en las que quieras colaborar tú mismo, aportando un fragmento de programa, tus respuestas serán bienvenidas, por supuesto. Yo seguiré pensando que le estás dando un pez, no enseñándole a pescar, pero también entiendo que hay veces que uno necesita una solución rápida, aunque eso no sea lo mejor a largo plazo.

Por cierto, ten en cuenta que este es un foro público, que incluso Google analiza, así que yo te recomendaría que no dieras datos privados, como tu correo electrónico, si no quieres un bombardeo de spam inesperado.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)