Cálculo de integral por regra do ponto médio
então, queria uma ajuda, se ela existir, é que estou com um código para uma apresentação de cálculo II, ele funciona "normal". Entretanto, gostaria de saber se tem alguma forma de entrar com a função que se deseja integrar direto pelo console/prompt de comando, pois toda vez que quero colocar uma nova função, tenho que adicionar ela mexendo no código...desde ja obrigada, e se coloquei algo errado por a que é que sou nova a que e não sei como funciona, desculpa qualquer coisa. Segue o código:
#include<iostream>
#include<iomanip>
//#include<stdlib.h>
#include<math.h>
#include<locale.h>
#define PI 3.14159265
using namespace std;
int main(){
setlocale(LC_ALL,"portuguese");
cout<<"-------CÁLCULO DE ÁREA POR INTREGRAL---------\n";
cout<<"\n---------REGRA DO PONTO MÉDIO----------\n\n";
float a,b,n,d,x[100],v[101];
int o,i;
char op;
do{
do{
do{
cout<<"\tDigite o intervalo [a,b]:\n\n";
cout<<"***********************";
cout<<"\n\tOBS: a <= b.\n";
cout<<"***********************\n";
cout<<"a = ";
cin>>a;
cout<<"\nb = ";
cin>>b;
}while(a > b);
cout<<"\n\nOscs[a,b] = " <<fixed <<setprecision(2)<<a<<"e" <<setprecision(2)<<b<<"Digit ou[n]\n";
fflush(stdin);op = getchar(); system ("cls");
}while(op == 'n' || op == 'N');
do{
do{
cout<<"\nDIGITE O NÚMERO DE RETÂNGULOS(subintervalos) (n = 100max)?\n\n";
cout<<"=> ";
cin>>n;
if(n>100){
cout<<"Valor inválido";
return op;
}
}while(n<1);
cout<<"\nDigite uma das opcões de funcão que deseja resolver: \n";
cout<<"[1] Raiz de x";
cout<<"\n[2] -1/x²";
cout<<"\n[3] 3x² + 2";
cout<<"\n[4] 5*x/(5*x^4+3)^(1/4)";
cout<<"\n[5] (3*x² + 3*x - 6)/(x² + 2*x -3)";
cout<<"\n[6] sin (x*PI/180)";
cout<<"\n[7] cos ( x * PI / 180.0 )";
cout<<"\n[8] tan ( x * PI / 180.0 )";
cout<<"\n[9] (3x²-4)\n\n";
cout<<"opcão: ";
cin>>o;
if(o>9){ // verifica o numero da função digitada
cout<<"valor inválido";
return op;
}else if(o==0){
cout<<"valor inválido";
return op;
}
cout<<"\n\nEstá tudo correto? ( para sim e [n] para não) ";
fflush(stdin);
op = getchar();
system ("cls");
}while(op == 'n' || op == 'N');
d = (b - a)/n;
///Cálculando as extremidades
cout<<"\nAs extremidades são:\n";
for(i=0;i!=n+1;i++){
if(i==0){
v* = a;*
* cout<<fixed<<setprecision(2)<<v**<<endl;*
}else if(i==n){
* v**=b;*
* cout<<fixed<<setprecision(2)<<v**<<endl;*
}else{
* v**=v[i-1]+d;*
* cout<<fixed<<setprecision(2)<<v**<<endl;*
}
}
//Calculando os pontos médios
cout<<"\nOs pontos médios são:\n";
for(i=0;i!=n;i++){
v=(v+v[i+1])/2;
* cout<<fixed<<setprecision(2)<<v**<<endl;*
}
cout<<"\nOs pontos médios dentro da funcão resultam em:";
//a que está o problema, toda vez tenho que adicionar mais um "case", para uma nova função.
switch (o)
{
case 1:
for(i=0;i!=n;i++){
x = sqrt((v));///raiz de x
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}
break;
case 2:
for(i=0;i!=n;i++){
x = -1/((v)(v**));///-1/(x^2)*
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}
break;
case 3:
for(i=0;i!=n;i++){
* x** = 3(vv)+2;///3x^2+2*
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}
break;
case 4:
for(i=0;i!=n;i++){
* x** = 5*v**/pow(((pow(5*v**,4))+3),(1/4));/// 5x/(5x^4+3)^(1/4)*
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}
break;
case 5:
for(i=0;i!=n;i++){
* x** = ((3*(pow(v**,2)))+(3v)-6)/((pow(v,2))+(2v**)-3);/// (3x^2 + 3x - 6)/(x^2 + 2x -3)
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 6:
for(i=0;i!=n;i++){
x = sin((vPI)/180) ;/// sin (xPI/180)
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 7:
for(i=0;i!=n;i++){
x = cos ((vPI)/180.0) ;/// cos ( x PI / 180.0 )
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 8:
for(i=0;i!=n;i++){
x = tan ((vPI)/180.0) ;/// tan ( x PI / 180.0 )
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 9:
for(i=0;i!=n;i++){
* x** = ((3*(pow(v**,2)))-4) ;///(3x^2-4)*
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
default:
cout<<"opcão = ?"<<o;
}
///Cálculando a soma dos resultados da função e exibindo na tela
for(i=1;i!=n;i++){
x = x + x[i-1];
if(i==n-1){
* x** = d*(x**);*
* cout<<"\n\nO resultado da Integral é: "<<fixed<<setprecision(2)<<x**;*
}
}
* cout<<"\n\nDeseja fazer outra integral? (** para Sim e [n] para Não) ";*
fflush(stdin);
op = getchar();
system ("cls");
}while(op == 's' || op == 'S');
system("pause");
return 0;
}
Discussão (1)
Carregando comentários...