You are on page 1of 3

Problema 3, semana 5, COMPLETO.

#include "stdafx.h"
#include "iostream"
using namespace std;

//prototipos
int menu();
void opcion1();
void opcion2();
void opcion3();

int diasMes(int, int);
int termino(int);
int sumFibo(int);
void serFibo(int);
long factorial(int);

void main()
{ int opcion;

do{ opcion=menu();

switch(opcion){
case 1: opcion1(); break;
case 2: opcion2(); break;
case 3: opcion3(); break;
}

}while(opcion!=0);

cout<<"Se acabo \n";
_gettch();
}

//Desarrollo de prototipos

int menu(){
int m;
cout<<"[1] dias del mes: "<<endl;
cout<<"[2] factoriales: "<<endl;
cout<<"[3] Fibonacci: "<<endl;
cout<<"[0] fin: "<<endl;
cout<<"Opcion: "; cin>>m;
return m;
}

void opcion1(){
int m,a,dias;
cout<<"ingrese el numero de mes: "; cin>>m;
cout<<"ingrese el ao: ";cin>>a;
dias = diasMes(m,a);
cout<<"El mes "<<m<<" del ao "<<a<<" tiene \n";
cout<<dias<<" dias"<<endl;
}

int diasMes(int m, int a){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
if( ( ((a%100)!=0) || ((a%400)==0) ) && ((a%4)==0) ) {return 29;}
else {return 28;}
}
}

void opcion3(){
int n;
cout<<"Ingrese el numero de terminos"<<endl;
cin>>n;
serFibo(n);
}

void serFibo(int n){
cout<<n<<" primeros terminos de la serie de Fibonacci: "<<endl;

for(int i=1; i<=n ; i++ ){
cout<<termino(i)<<", ";
}

cout<<endl;
cout<<"la suma es: "<<sumFibo(n)<<endl;

}
int termino(int i){
int a=1,b=1;
int c;

if( i==1 || i==2 ){return 1;}
else{
for(int t=3; t<=i ;t++){
c = a+b;
a=b;
b=c;
}
}
return b;
}

int sumFibo(int n){
int sum=0;
for(int i=1; i<=n ; i++)
{ sum += termino(i);}

return sum;
}

void opcion2(){
int m;
long fac;
cout<<"Ingrese el numero a calcular el factorial: "; cin>>m;
fac=factorial(m);
cout<<"El factorial es: "<<fac<<endl;
}

long factorial(int fac){
long resp;
if(fac==0 || fac==1){resp = 1;}
else{resp = fac * factorial(fac-1);}

return resp;
};


//Desarrollo de proptotipos

void opcion2()
{
double n,num;
cout<<"Ingresa aproximacion para el calculo de pi: "; cin>>n;
num=numPI(n);
cout<<"EL NUMERO PI ES: "<<num;

}

double numPI (double n)
{
double pi;
int i,j,f;
long double s,sig;
for (sig=1,i=1,s=0;i<=n;i++,sig=-sig)
s+=sig*4/(i*2-1);//s=s+4.0/(i*2-1);
return s;
}