jueves, 17 de febrero de 2011

Laboratorio03 - Recursividad


Ola este es el Laboratorio 03 del curso de estructuras de datos que trata sobre recursividad.. espero les ayude.. Saludos
01.Factorial de un numero:

/* Factorial de un Numero */
#include <cstdlib>
#include <iostream>
using namespace std;
int factorial(int);
int main()

   system("color E9");
   int r, valor,n;
   char R = 'S';
       
   do
    {
    cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
    cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
    cout<<endl<<"\t     º          CURSO ::: ESTRUCTURA DE DATOS             º  ";
    cout<<endl<<"\t     º           Laboratio 03 - Ejercicio 01              º  ";
 cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t\t IMPLEMENTE UN ALGORITMO QUE CALCULE ";
   cout<<endl<<"\t\t EL FACTORIAL DE UN NUMERO: "<<endl;
    cout<<endl<<"\t INGRESE NUMERO: ";
    cin>>n;
   
    cout<<endl<<"\t El Factorial del Numero Ingresado es: "<<factorial(n);
       
    cout<<endl<<endl;
    cout<<"\t DESEA CONTINUAR [S/N]  :  ";
    cin>>R;   
    system("CLS");   
    }
   
    while ( R == 'S' || R == 's' );
       
}
///////////////   FUNCION RECURSIVA PARA FACTORIAL    \\\\\\\\\\\\\\\\\\
int factorial(int n)
{
  if (n==0)
    return 1;
  else
    return n*factorial(n-1);
}

02.Mayor, Suma y Media de elementos de un Arreglo

/* Mayor, Suma y Media de elementos de un Arreglo */
#include<iostream>
#include<cstdlib>
using namespace std;
int may_elem(int,int[]);
int sum_elem(int,int[]);
int med_elem(int,int[]);
int main()
{
   system("color E9");
   int opc;
   char R = 'S';
       
   do
   {
  
   cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
   cout<<endl<<"\t     º     |<-[ UNIVERSIDAD NACIONAL DE TRUJILLO ]->|     º  ";
   cout<<endl<<"\t     º           CURSO ::: ESTRUCTURA DE DATOS            º  ";
   cout<<endl<<"\t     º            Laboratio 03 - Ejercicio 02             º  ";
   cout<<endl<<"\t     º       Hecho por InfoBik's ---> JP. Rodriguez       º  ";
   cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
   cout<<endl<<"\t DADO UN ARREGLO DE ENTEROS, DISENIAR E IMPLEMENTAR ";
   cout<<endl<<"\t ALGORITMOS RECURSIVOS QUE CALCULEN: "<<endl;
   cout<<endl<<"\t 1. EL MAYOR ELEMENTO DE UN ARREGLO ";
   cout<<endl<<"\t 2. LA SUMA DE LOS ELEMENTOS DE UN ARREGLO ";
   cout<<endl<<"\t 3. LA MEDIA DE TODOS LOS ELEMENTOS DE UN ARREGLO "<<endl;
   cout<<endl<<"\t Ingrese una opcion:::: ";
   cin>>opc;
   cout<<endl;
  
      switch(opc)
      {
         case 1: system("CLS");
                 int A[50],n,i;
                 cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
                 cout<<endl<<"\t     º    HAZ ESCOGIDO LA OPCION 1: CALCULAR EL     º  ";
                 cout<<endl<<"\t     º    MAYOR ELEMENTO DE UN ARREGLO              º  ";
                 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
                 cout<<endl<<"\t Ingrese Cantidad de Elementos del Arreglo: ";
                 cin>>n;
                 cout<<endl;
                 for(i=0;i<n;i++)
                 {
                    cout<<"\t Elemento "<<i+1<<" : ";
                    cin>>A[i];
                 }  
                 cout<<endl<<"\t El Elemento Maximo es: "<<may_elem(n,A);
                 cout<<endl;
                 break;
                
         case 2: system("CLS");
                 int B[50],m,j;
                 cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
                 cout<<endl<<"\t     º    HAZ ESCOGIDO LA OPCION 2: CALCULAR LA     º  ";
                 cout<<endl<<"\t     º    SUMA DE LOS  ELEMENTOS DE UN ARREGLO      º  ";
                 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
                 cout<<endl<<"\t Ingrese Cantidad de Elementos del Arreglo: ";
                 cin>>m;
                 cout<<endl;
                 for(j=0;j<m;j++)
                 {
                   cout<<"\t Elemento "<<j+1<<" : ";
                   cin>>B[j];
                 }
                 cout<<endl<<"\t La Suma de los Elementos Ingresados es: "<<sum_elem(m,B);
                 cout<<endl;                                 
                 break;
                
         case 3: system("CLS");
                 int C[50],k;
                 double num;
                 cout<<endl<<"\t     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  ";
                 cout<<endl<<"\t     º    HAZ ESCOGIDO LA OPCION 3: CALCULAR LA     º  ";
                 cout<<endl<<"\t     º    MEDIA DE LOS ELEMENTOS DE UN ARREGLO      º  ";
                 cout<<endl<<"\t     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  "<<endl;
                 cout<<endl<<"\t Ingrese Cantidad de Elementos del Arreglo: ";
                 cin>>num;
                 cout<<endl;
                 for(k=0;k<num;k++)
                 {
                   cout<<"\t Elemento "<<k+1<<" : ";
                   cin>>C[k];
                 }
                 cout<<endl<<"\t La Media de los Elementos Ingresados es: "<<(med_elem(num,C))/num;
                 cout<<endl;
                 break; 
        default: cout<<"\t No se escogio ninguna opcion "<<endl<<endl;          
      } 
  
   cout<<endl<<"\t DESEA CONTINUAR [S/N]  :  ";
   cin>>R;
       
   system("CLS");
       
   }
   while ( R == 'S' || R == 's' );
       
}
///////////////    OPCION 1 : CALCULAR MAYOR ELEMENTO    \\\\\\\\\\\\\\\\\\\\\\
int may_elem(int n,int x[])
{
   if(n==1)
      return x[0];
     if(x[n-1]>may_elem(n-1,x))
         return x[n-1];
     else
         return may_elem(n-1,x);
}

///////////////    OPCION 2 : CALCULAR SUMA DE  ELEMENTOS    \\\\\\\\\\\\\\\\\\
int sum_elem(int n,int x[])
{
    if(n==1)
       return x[0];
    else
       return x[n-1]+sum_elem(n-1,x);
   
}
///////////////    OPCION 3 : CALCULAR LA MEDIA DE ELEMENTOS    \\\\\\\\\\\\\\\\\\
int med_elem(int n,int x[])
{
    if(n==1)
       return x[0];
    else
       return x[n-1]+med_elem(n-1,x);
   
}

03.Calcular la serie Fibonacci dado un numero n:



04.Inverso de un numero decimal:



05.Calcular el MCD usando Euclides:



06.Convertidor de numero decimal a Base B, siendo B<10

No hay comentarios.:

Publicar un comentario