Un semplice programma che nasconde un codice in realtà molto utile e d'effetto: un'interfaccia che permette di scegliere la funzione integranda da una lista di funzioni prepronte, nonchè gli estremi di integrazione. Ecco il codice:
//Switch integrale
#include "funz.h"
#include
#include
#include
using namespace std;
#define PRECISIONE 0.000001
int main() {
cout.precision(6);
int npassi;
double precision = PRECISIONE;
double x[npassi], y[npassi];
double par[2];
float xmin, xmax;
int id;
double (*fun)(double)=0; // definisco fun come un puntatore a funzione
// il valore iniziale della funzione e` nullo
cerr << "Seleziona la funziona da integrare (metodo dei trapezoidi iterato)" << endl;
cerr << " 1 - seno" << endl;
cerr << " 2 - coseno" << endl;
cerr << " 3 - radice quadrata" << endl;
cerr << " 4 - quadrato" << endl;
while ( fun==0 ) { // ripeto il ciclo fino a quando non riesco ad
// inizializzare correttamente fun
cin >> id;
switch (id) {
case 1:
fun=sin; // sin e` gia` definito in math.h
break;
case 2:
fun=cos; // cos e` gia` definito in math.h
break;
case 3:
fun=radice; // radice e` definito in funzioni.h
break;
case 4:
fun=quadrato; // quadrato e` definito in funzioni.h
break;
default:
cerr << "La funzione selezionata: id=" << id << " non esiste!" << endl;
cerr << "Seleziona la funzione da integrare: ";
break;
}
}
cerr << "Estremo inferiore: ";
cin >> xmin;
cerr << "Estremo superiore: ";
cin >> xmax;
double integrale = itera(xmin,xmax,precision,fun);
cout << "Integrale = " << integrale << endl;
return 0;
}
Categories:
Programmi
Posta un commento