ANUNCIOS
Imagen de ArticuloTriángulo de pascal

Triangulo de pascal en C++

Aplicación desarrollada en C++, usando punteros y asignacion de memoria dinamica para calcular la N-esima fila del triangulo de pascal,

El algoritmo fue testeado en Ubuntu 12.04, usando el g++. Para compilar "g++ pascal.cpp -o pascal"  y para ejecutar ./pascal







#include <iostream>
using namespace std;
//Retona la n-esima fila del triangulo de pascal,
//recibe como argumento el número de la fila
long * pascal(int fila) {
   long * triangulo;
   /*Creamos una matriz, en la cual guardaremos los valores 
   calculados del tríangulo. Los valores se guardarán en la parte triangular inferior*/
   triangulo = new long[fila * fila];  
   /* Realizamos el recorrido desde la parte superior de la matriz, hasta llegar a 
   *  la fila que nos interesa.
   *  La posicion n,m será la suma de las posiciones  (n-1,m) y (n-1,m-1) 
   *  Si estamos en la primera posicion de la fila o en la diagonal, asignamos el 
   *  valor de 1
   */
   for (int i = 0; i < fila; i++)
       for (int j = 0; j <= i; j++)
            if (j != 0 && j != i)
                triangulo[i * fila + j] = triangulo[(i - 1) * (fila) + j)] + triangulo[ (i - 1) * (fila) + j - 1)];
            else
                *(triangulo + (i * fila + j)) = 1;
   long * Ultima = new long[fila];
  //Copiamos la ultima fila de la matriz   
   for (int i = 0; i < fila; i++)
       Ultima[i] = triangulo[(fila - 1) * fila + i];
   
   delete (triangulo);
  return Ultima;
}
 
int main() {
    //Lectura d la fila a calcular
    int Numfilas;
    cout<<"ingrese el número de fila:";
    cin>>Numfilas;
    long * fila = pascal(Numfilas);
    for (int j = 0; j < Numfilas; j++)
      cout << *(fila + j) << " ";
    
    delete (fila); //Liberamos memoria
  
    //Pausamos la ejecución del programa
    cin.sync();
    cin.get();
    return 0;
}
 

Etiquetas:   C++   PROGRAMACION

Articulos Relacionados
Publicidad
Comentarios
comments powered by Disqus