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: