#include <cmath>
#include <iostream>
using namespace std;
// Funciones pregunta 3
double term_n(int n){
return pow(-1,n)/pow(n,3);
}
// Funciones pregunta 4
double f(double x){
return exp(-pow(x,2));
}
double integrar(double a, double b, int N){
double h, sum = 0;
h = (b-a)/N;
for(int i = 0; i<=N-1; i++){
sum += f(a+h*i);
}
return h*sum;
}
int main(){
int n;
do{
cout<<"Ingrese el ejercicio que desea visualizar: "; cin>>n;
switch (n){
case 1: {
int n, k;
do{
cout<<"\nIngrese n: "; cin>>n;
cout<<"Ingrese k: "; cin>>k;
if (n<k){
cout<<"Datos invalidos."<<endl;
}
}while(n<k);
int num = 1, den = 1;
for(int i =0; i<k; i++){
num *= (n-i);
den *= (i+1);
}
cout<<"El resultado es: "<<num/den;
break;
}
case 2:{
int x;
double f;
cout<<"\nIngrese el valor de x (entero): ";cin>>x;
if(x < -2){
f = abs(x+1.0)/(x+2.0);
cout<<"\nEl valor de la funcion es "<<f;
}
if(-2 <=x && x <= 2){
f= pow((double)x,2);
cout<<"\nEl valor de la funcion es "<<f;
}
if(x > 2){
f= x-2.0;
cout<<"\nEl valor de la funcion es "<<f;
}
break;
}
case 3:{
const double EPS = 0.000001;
int i = 0;
long double xn=0;
do{
i++;
}while(abs(term_n(i)-term_n(i-1))>=EPS);
for(int j = 1; j<=i-1; j++){
xn += term_n(j);
}
cout<<"\nLa aproximacion para PI es: "<<pow(-32*(xn),(double) 1/3)<<" y se alcanzo luego de "<<i<<" iteraciones";
break;
}
case 4:{
int N, K;
cout<<"\nIngrese el valor de N suficientemente grande: "; cin>>N;
cout<<"Ingrese el valor de K suficientemente grande: "; cin>>K;
cout<<"\n";
cout<<"La aproximacion de PI es: "<<pow(integrar(-K,K,N),2);
break;
}
default:
cout<<"Ejercicio invalido"<<endl;
}
}while(n<1 || n>4);
return 0;
}