Domingo 22 de Diciembre de 2024, 18:32
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
triangulo de pascal casi listo
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: triangulo de pascal casi listo (Leído 7160 veces)
utz
Miembro activo
Mensajes: 44
triangulo de pascal casi listo
«
en:
Jueves 2 de Octubre de 2008, 21:38 »
0
hola, esoty haciendo un triangulo de pascal, aqui esta mi codigo
Código: Text
int n;
int matriz[max][max];
int triangulo_pascal(int i,int j,int h,int k){
h=n/2;
for( i=0;i<n;i++){
for(j=0;j<n*2;j++){
matriz[i][j]=0;
if(j==h){
matriz[i][j]=1;
k=h;
h--;
k++;
}
if(j==k){
matriz[i][j]=1;
}
}
}
for( i=2;i<10;i++){
for(j=0;j<21;j++){
matriz[i][j]=matriz[i-1][j-1]+matriz[i-1][j+1];}}
}
main(){
printf(" Numeros de escalones del triangulo: ");
scanf("%d", &n);
for(int i=0;i<n;i++){
for(int j=0;j<n*2;j++){
printf("%i ",matriz[i][j]);
}
printf("n");
}
system ("pause");
}
pero no se por que no imprime bien
, por favor si me pueden ayudar a que imprima se lo agradeceria.
Tweet
Werox
Nuevo Miembro
Mensajes: 4
Re: triangulo de pascal casi listo
«
Respuesta #1 en:
Viernes 3 de Octubre de 2008, 00:36 »
0
q tal yo tengo el codigo completo del triangulo de pascal creo solo dejame bucarlo y espero encontrarlo jejejejejejee
utz
Miembro activo
Mensajes: 44
Re: triangulo de pascal casi listo
«
Respuesta #2 en:
Viernes 3 de Octubre de 2008, 07:08 »
0
bueno, pero la gracia de esto es que asi puedo aprender a mostrar matrices por medio de una funcion, es que tengo mas ejercicios parecidos y por eso quiero aprender.
saludos
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: triangulo de pascal casi listo
«
Respuesta #3 en:
Viernes 3 de Octubre de 2008, 08:54 »
0
Cita de: "utz"
no imprime bien
Especifica un poco cuál es el problema. ¿Formateo en pantalla (presentación, vamos) o en los valores?
Fr33k K0mpu73r
utz
Miembro activo
Mensajes: 44
Re: triangulo de pascal casi listo
«
Respuesta #4 en:
Viernes 3 de Octubre de 2008, 09:42 »
0
lo que pasa es que no se como imprimir el triangulo, es que trate de imprimirlo en la parte de la main, pero aun no aprendo como hacerlo.
imprimirlo sin el uso de funciones no me causa ningun problema, de hecho lo probe sin el uso de funciones y me imprimio lo que esperaba.
asi que es la parte de mostrar el triangulo por panatalla donde nesecito ayuda...
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: triangulo de pascal casi listo
«
Respuesta #5 en:
Viernes 3 de Octubre de 2008, 10:54 »
0
Si sabemos de antemano la altura del triángulo n, podemos afirmar que la línea más larga va a estar compuesta de n valores.
Código: Text
1 1 1 1 1 1
1 1 1 1 1
1 1 1 1
1 1 1
1 1
1
Entonces podemos afirmar que el elemento único tiene que estar precedido de n-1 espacios anteriores, los 2 elementos n-2 espacios, etc...
Espero haberme explicado correctamente, un saludo.
Fr33k K0mpu73r
utz
Miembro activo
Mensajes: 44
Re: triangulo de pascal casi listo
«
Respuesta #6 en:
Sábado 4 de Octubre de 2008, 01:46 »
0
gracias moskito, pero por ai no va mi problema.
aver si ahora me explico mejor:
tengo una funcion que me genera el triangulo de pascal:
Código: Text
# int crea_triangulo_pascal(int i,int j,int h,int k){
# h=n/2;
# for( i=0;i<n;i++){
# for(j=0;j<n*2;j++){
# matriz[i][j]=0;
# if(j==h){
# matriz[i][j]=1;
# k=h;
# h--;
# k++;
# }
# if(j==k){
# matriz[i][j]=1;
# }
# }
# }
# for( i=2;i<10;i++){
# for(j=0;j<21;j++){
# matriz[i][j]=matriz[i-1][j-1]+matriz[i-1][j+1];}}
#
# }
hasta aqui, ningun problema.
ahora viene la parte hacer la main(), donde pido el numero de escalones y ademas muestro el triangulo.
mi problema es que no sé llamar a la funcion que "hace el triangulo" y no se como le hago para mostrarlo por pantalla.
Rombus
Miembro MUY activo
Mensajes: 105
Nacionalidad:
Re: triangulo de pascal casi listo
«
Respuesta #7 en:
Sábado 4 de Octubre de 2008, 04:47 »
0
hey!
como va?
quiero ayudar... me podrias explicar que son los valores que le pasas por parametro a la funcion?
Código: Text
int crea_triangulo_pascal(int i,int j,int h,int k){
para imprimir se me ocurre que inicializes la matriz con todas las posiciones en 0 y dsp llames al crea triangulo, una vez hecho esto, al imprimir, imprimes una matriz normal, pero solo imprimes el contenido si es distinto de 0 sino imprimes un espacio.
saludos!
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: triangulo de pascal casi listo
«
Respuesta #8 en:
Sábado 4 de Octubre de 2008, 19:50 »
0
Cita de: "utz"
int triangulo_pascal(int i,int j,int h,int k)
Para empezar, esto esta mal, ya que son variables locales de la función, no necesitas pasarlos por parámetro. Lo que sí tienes que pasar por parámetro es la matriz[][] y n (la altura del triángulo).
JAMÁS
(aunque todo es relativo) uses variables dentro de funciones que no hayas declarado dentro o pasado por parámetro.
Código: C
void
triangulo_pascal
(
int
triangulo
[
]
[
]
,
int
altura
)
{
int
i
,
j
,
h
,
k
;
h
=
altura
/
2
;
for
(
i
=
0
;
i
<
altura
;
i
++
)
for
(
j
=
0
;
j
<
n
*
2
;
j
++
)
{
triangulo
[
i
]
[
j
]
=
0
;
if
(
j
==
h
)
{
triangulo
[
i
]
[
j
]
=
1
;
k
--=
h
++;
}
if
(
j
==
k
)
triangulo
[
i
]
[
j
]
=
1
;
}
for
(
i
=
2
;
i
<
10
;
i
++
)
for
(
j
=
0
;
j
<
21
;
j
++
)
triangulo
[
i
]
[
j
]
=
triangulo
[
i
-
1
]
[
j
-
1
]
+
triangulo
[
i
-
1
]
[
j
+
1
]
;
}
Y desde main() llamas a la función:
Código: C
triangulo_pascal
(
matriz
,
n
)
;
Fr33k K0mpu73r
utz
Miembro activo
Mensajes: 44
Re: triangulo de pascal casi listo
«
Respuesta #9 en:
Sábado 4 de Octubre de 2008, 21:07 »
0
gracias moskito, ya he entendido como utilizar la funcion y como llamarla desde la main()
aqui est ami codigo:
Código: Text
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define max 40
void triangulo_pascal(int triangulo[max][max], int altura)
{
int i,j,h,k;
h=altura;
for( i=0;i<altura;i++){
for(j=0;j<altura*2;j++)
{
triangulo[i][j]=0;
if(j==h)
{
triangulo[i][j]=1;
}
if(j==k)
triangulo[i][j]=1;
}k=h;
k--;h++;}
for( i=2;i<10;i++)
for(j=0;j<21;j++)
triangulo[i][j]=triangulo[i-1][j-1]+triangulo[i-1][j+1];
}
main(){
int n;
int matriz[max][max];
printf("Ingrese numeros de escalones del triangulo: ");
scanf("%d",&n);
triangulo_pascal(matriz, n);
printf("el triangulo es:nn");
for(int i=0;i<n;i++){
for(int j=0;j<n*2;j++){
if(matriz[i][j]==0){
fflush(stdin);
printf(" ");
}else{
fflush(stdin);
printf("%d ", matriz[i][j]);
}
}
printf("n");}
system("pause");
}
ahora la unica duda que me queda es por que me imprime el numero: 2089948473 y no el numero 1 al final del triangulo. esto cuando se ingresa una altura de 10.
saludos.
«
última modificación: Domingo 5 de Octubre de 2008, 22:37 por utz
»
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: triangulo de pascal casi listo
«
Respuesta #10 en:
Domingo 5 de Octubre de 2008, 01:24 »
0
Cita de: "utz"
h=(altura*2)/2;
h=altura;
Y esto es lo que me da cuando ejecuto con altura 3:
Código: Text
0 0 0 1 0 0
0 0 1 0 1 0
-858993460 1 0 2 0 -858993459
Así que haces algo mal, lo voy a ir depurando ya que no tengo nada que hacer
Fr33k K0mpu73r
utz
Miembro activo
Mensajes: 44
Re: triangulo de pascal casi listo
«
Respuesta #11 en:
Domingo 5 de Octubre de 2008, 22:38 »
0
aun no encuentro el problema, pero modifique el codigo de arriva para que no molesten los ceros.
gecias por tu ayuda moskito
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
triangulo de pascal casi listo