triangulo de pascal

william
21 de Mayo del 2005
hola necesito hacer un algoritmo modular que calcule e imprima el triangulo de pasacal por medio de funciones y el procedimiento respectivo
procedimiento principal invico al procedimiento TRIAN-PASCAL el cual calcula e imprime el triangulo
se invoca otra funcion COMBINATORIA la cual calcula y retorna la combinatoria de un par de nuemros y para calcular la combinatoria se llama a la funcion FACTORIAL que puede ser implementada de manera recursiva o iterativa............................porfa lo necesito es urgente

Noel Solw
21 de Mayo del 2005
// program LR_19.cpp -pag 315
// pascal triangle - formated output.
// 11/10/2003
// writen in Borlandc CPP - ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>

#define MAX 12

int GetNum()
{
for(int x = 0;(x <= 0) || (x > MAX);)
{
cout << "type number of rows (from 1 to " << MAX << ") ---> ";
cin >> x;
}
cout << endl << endl;
return x;
} // GET NUM

void BuildMatrix(int a[MAX][MAX+1],int n)
{
int i,j;
for(i = 0;i < n;i++)
{
a[i][0] = 1;
for(j = 1; j < n+1;j++)
a[i][j] = 0;
}
for(i = 1;i < n;i++)
for(j = 1;j < i+1;j++)
a[i][j] = a[i-1][j-1] + a[i-1][j];
} // BUILD MATRIX

void Print(int a[MAX][MAX+1],int n)
{
int len = 34;
for(int i = 0;i < n;i++)
{
cout << setw(len) << " ";
len -= 3;
for(int j = 0;a[i][j];j++)
cout << setw(6) << a[i][j];
cout << endl;
}
cout << endl;
} // PRINT

void Process()
{
int n = GetNum();
int a[MAX][MAX+1];
BuildMatrix(a,n);
Print(a,n);
} // PROCESS

void main()
{
clrscr();
cout << "pascal triangle - formated output : n";
cout << "-----------------------------------------------------"
"-------------------------n";
Process();
cout << "-----------------------------------------------------"
"-------------------------n";
cout << "end of program - good bye ! ! !n";
getch();
} // MAIN

Noel Solw
21 de Mayo del 2005
// program combinar.CPP
// written in Borland CPP ver 4.52

#include <iostream.h>
#include <iomanip.h>

unsigned int MAX = 11;

unsigned int GetNum(char x)
{
int num = -1;
while(num < 0 && num > MAX)
{
cout << x << " = ";
cin >> num;
}
return num;
} // GET NUM

unsigned long int Factorial(unsigned long int n)
{
if(!n)
return 1;
return n*Factorial(n-1);
} // FACTORIAL

int Combinaciones(unsigned long int n,unsigned long int k)
{
if(n < k)
return 0;
return Factorial(n)/Factorial(k)/Factorial(n-k);
} // COMBINACIONES

int main()
{
unsigned int n = GetNum('n');
while(n)
{
unsigned int k = GetNum('k');
int result = Combinaciones(n,k);
cout << "(" << n << "," << k << ") = ";
if(result)
cout << Combinaciones(n,k);
else
cout << "wrong data";
cout << endl << endl;
n = GetNum('n');
}
cout << endl << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN