Estratto del documento

Codici sorgenti per esami di programmazione

Esame TRAP

Il codice sorgente per l'esame TRAP è il seguente:

#include <iostream>
#include <fstream>
#include <math.h>
#include <iomanip>

using namespace std;

double funz(double x);
#define NINT (4)
#define NRAFF (10)

int main() {
    int n = NINT;
    double b = 1., a = 0.;
    double I0 = 97 - 35 * M_E;
    double errnd2 = 1.;
    ofstream fout("esame5_trap.dat");

    for(int k = 0; k < NRAFF; k++) {
        double h = (b - a) / n; // step
        double xk = a;
        double xk1 = xk + h;
        double s_trap = 0.; // Integrale trapezi

        for(int i = 0; i < n; i++) {
            s_trap = s_trap + 0.5 * (funz(xk) + funz(xk1)) * h;
            xk = xk + h; // update xk
            xk1 = xk + h; // update xk1
        }

        double errn = fabs(s_trap - I0);
        
        fout << setw(8) << setprecision(4) << fixed << n << " " // valore del raffinamento
             << setw(8) << setprecision(8) << fixed << s_trap << " " // valore dell'integrale
             << setw(8) << setprecision(8) << fixed << errn/errnd2 << " " // errore
             << setw(8) << setprecision(8) << fixed << errn << "\n";

        errnd2 = errn;
        n = n * 2;
    }

    fout.close();
    return 0;
}

double funz(double x) {
    return exp(x) * (pow(x, 5) + pow(x, 4) + x);
}

Esame BISEZ

Il codice sorgente per l'esame BISEZ è il seguente:

#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>

using namespace std;

double funz(double x);
#define NINT (20)

int main() {
    int n = NINT;
    double b = 0.857, a = .311;
    double ak = a;
    double bk = b;
    double xk1 = 0.5 * (ak + bk);
    double h = 0.5 * (b - a);
    double z0 = 0.45 + (0.03 * 5); // 0.6
    ofstream fout("dati1.dat");

    for(int k = 0; k < n; k++) {
        fout << setw(3) << k + 1 << " " // iterazioni
             << setw(8) << xk1 << " " // stima dello zero approssimato
             << setw(12) << setprecision(7) << fixed << fabs(0.5 * (ak + bk) - z0) / fabs(xk1 - z0) << " "
             << setw(12) << setprecision(7) << fixed << fabs(0.5 * (ak + bk) - z0) / pow(fabs(xk1 - z0), 2) << " "
             << setw(12) << setprecision(7) << fixed << funz(xk1) << "\n";

        if(funz(xk1) * funz(ak) < 0) {
            bk = xk1;
        } else {
            ak = xk1;
        }

        xk1 = 0.5 * (ak + bk);
    }

    fout.close();
    return 0;
}

double funz(double x) {
    return (exp(3.5 * x)) * (x - (0.45 + 0.03 * (5))) * (x + 6) * (x + 7);
}

Esame DIFF2

Il codice sorgente per l'esame DIFF2 è il seguente:

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>

using namespace std;

#define NINT (80)

double funz(double x);
double deriv1(double x);
double deriv2(double x);
double deriv3(double x);

int main() {
    double fk[NINT + 1];
    double fd1k_a[NINT + 1];
    double fd2k_a[NINT + 1];
    double fd3k_a[NINT + 1];
    ofstream fout("dati5_80.dat");
    int n = NINT + 1;
    double a = 0.;
    double b = 1.;
    double h = (b - a) / (n - 1);

    for(int i = 0; i < n - 3; i++) { // se indietro i=3
        double xk = a + i * h;
        fd1k_a[i] = (funz(xk + h) - funz(xk)) / h; // formula derivata prima avanti
        fd2k_a[i] = (funz(xk + 2 * h) - 2 * funz(xk + h) + funz(xk)) / (h * h); // formula derivata seconda avanti
        fd3k_a[i] = (-3 * funz(xk + 2 * h) + 3 * funz(xk + h) - funz(xk) + funz(xk + 3 * h)) / (h * h * h); // formula derivata terza avanti
    }

    for(int i = 0; i < n; i++) {
        double xk = a + i * h;
        fout << setw(5) << setprecision(4) << fixed << xk << " " // ascissa xk
             << setw(10) << setprecision(7) << fixed << fd3k_a[i] << " "
             << setw(10) << setprecision(7) << fixed << fd2k_a[i] << " "
             << setw(10) << setprecision(7) << fixed << fabs(fd2k_a[i] - deriv2(xk)) << "\n";
    }

    fout.close();
    return 0;
}

double funz(double x) {
    double y = exp(-2 * x) * cos(3 * x);
    return y;
}

double deriv1(double x) {
    double y = -exp(-2 * x) * (3 * sin(3 * x) + 2 * ...
Anteprima
Vedrai una selezione di 4 pagine su 13
Esame Informatica Pag. 1 Esame Informatica Pag. 2
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Esame Informatica Pag. 6
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Esame Informatica Pag. 11
1 su 13
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher AndreVezz di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Manservisi Sandro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community