Está en la página 1de 3

ALGORITMOS Y ESTRUCTURAS DE DATOS

LABORATORIO N 02
FORMULARIOS Y MTODOS RECURSIVOS
OPERACIONES A IMPLEMENTAR
a) Creacin del formulario principal.
b) Clculo del Factorial de un nmero.
c) Clculo del nmero de Fibonacci de un nmero.
DETALLE DE LAS OPERACIONES
FACTORIAL DE UN NMERO
El Factorial de un nmero entero positivo, es otro nmero entero que se obtiene al
multiplicar en forma sucesiva desde 1 hasta el mismo nmero; as:
Factorial(5) = 1*2*3*4*5 = 120
FIBONACCI DE UN NMERO
El Fibonacci de un nmero entero positivo, es otro nmero que se obtiene al ejecutar en
forma sucesiva la suma de los elementos inmediatamente precedentes, considerando
que el Fibonacci de los dos primeros nmeros son 0 y 1. Veamos un ejemplo:
Fibonacci(1) = 0; Fibonacci(2) =1;
Fibonacci(5) = 2+1; . . . .

Fibonacci(3) = 0+1=1;

Fibonacci(4) = 1+1=2;

En general; diremos: Si n=1; Fibonacci=0


Si n=2; Fibonacci=1
Si n>2; Fibonacci=Fibonacci(n-1) + Fibonacci(n-2)
DISEO DEL FORMULARIO

PROGRAMACIN DE LA CLASE OPERACIONES


MG. LUIS BOY CHAVIL

Pgina 1

ALGORITMOS Y ESTRUCTURAS DE DATOS


#pragma once
ref class OPERACIONES
{
public:
int Numero;
public:
long Factorial(int);
long Fibonacci(int);
OPERACIONES(void)
{
}
};
long OPERACIONES::Factorial(int n)
{
if(n==1)
return(1);
else
return(n * Factorial(n-1));
}
long OPERACIONES::Fibonacci(int n)
{
if(n==1)
return(0);
else if(n==2)
return(1);
else
return(Fibonacci(n-1)+Fibonacci(n-2));
}

PROGRAMACIN DE LAS OPERACIONES DEL MEN EN EL FORMULARIO


Agregue al inicio del programa:
#include "OPERACIONES.h"
private: System::Void RbFactorial_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{
OPERACIONES OP;
OP.Numero=Convert::ToInt16(TxtNumero->Text);
if(OP.Numero>0)
TxtResultado->Text=Convert::ToString(OP.Factorial(OP.Numero));
else
TxtResultado->Text="Ingrese Nmero +";
}

MG. LUIS BOY CHAVIL

Pgina 2

ALGORITMOS Y ESTRUCTURAS DE DATOS


private: System::Void RbFibonacci_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{
OPERACIONES OP;
OP.Numero=Convert::ToInt16(TxtNumero->Text);
if(OP.Numero>0)
TxtResultado->Text=Convert::ToString(OP.Fibonacci(OP.Numero));
else
TxtResultado->Text="Ingrese Nmero +";
}

MG. LUIS BOY CHAVIL

Pgina 3

También podría gustarte