Triángulo de Pascal (subalgoritmo)
De Ejercicios
Enunciado
Diseñar un subalgoritmo que nos calcule el triángulo de Pascal de una determinada altura N. Para ello, vamos a utilizar una matriz y el proceso para la creación del triángulo es el siguiente: se empieza poniendo 1 en la primera fila segunda columna, y se rellenan las filas de abajo hasta una altura N de forma que cada número de abajo es la suma del número que tiene encima más el que tiene encima y a la izquierda.
El subalgoritmo recibirá como parámetros de entrada una matriz de 100 filas por 102 columnas (dos columnas más por ser los bordes, las cuales siempre tienen el valor de cero) y la altura, N, del triángulo de Pascal (si N es mayor de cien calcular el triangulo de pascal para 100 filas). La matriz de entrada estará rellena de ceros. Por ejemplo la matriz resultado para el triángulo de Pascal de 6 filas sería:
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 2 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 3 | 3 | 1 | 0 | 0 | 0 |
0 | 1 | 4 | 6 | 4 | 1 | 0 | 0 |
0 | 1 | 5 | 10 | 10 | 5 | 1 | 0 |
Soluciones
Diseño en pseudocódigo
PROCEDIMIENTO Tpascal( n, VAR pos ) ENTRADAS: n: ENTERO (* Altura del triángulo *) SALIDAS: pos: ARRAY (1..100, 1..102) DE ENTEROS (* Matriz donde se devuelve el triángulo de Pascal *) VARIABLES: i,j: ENTEROS INICIO (* Comprobar que n no supere el valor 100 *) SI n >100 ENTONCES n <-- 100 FIN_SI (* Rellenar la matriz con ceros *) PARA i<--1 HASTA 100 HACER PARA j<--1 HASTA 102 HACER pos(i,j)<-- 0 FIN_PARA FIN_PARA (* Rellenar la matriz con el triángulo de Pascal *) pos(1,2)<--1 PARA i<--2 HASTA n HACER PARA j<--2 HASTA i+1 HACER pos(i,j)<-- pos(i-1,j)+pos(i-1,j-1) FIN_PARA FIN_PARA FIN