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
Tipos de soluciones
Navegación
Tipos de soluciones
Herramientas