-
Conteúdo Similar
-
Por Thay Andrade
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*(v*v)+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));/// 5*x/(5*x^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)))+(3*v)-6)/((pow(v,2))+(2*v)-3);/// (3*x^2 + 3*x - 6)/(x^2 + 2*x -3)
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 6:
for(i=0;i!=n;i++){
x = sin((v*PI)/180) ;/// sin (x*PI/180)
cout<<fixed<<setprecision(2)<<"\nf("<<v<<")"<<setprecision(2)<<" = "<<x;
}break;
case 7:
for(i=0;i!=n;i++){
x = cos ((v*PI)/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 ((v*PI)/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;
}
-