Introduzione all uso delle funzioni in C++

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione all uso delle funzioni in C++"

Transcript

1 Introduzione all uso delle funzioni in C++ Roberto Basili University of Rome Tor Vergata, Department of Computer Science, Systems and Production, Roma (Italy), January 24, 2001 /****************************************************************************** Esempio -- Introduzione alle funzioni Il metodo di Newton per la soluzione di equazioni non lineari Progetto del programma ******************************************************************************/ 1 PASSO (0) Fase di Specifica dei requisiti. /* Name: main Obbiettivo: Calcolo della radice della equazione f(x) = e^(-x) - x^2;. con una precisione assegnata pari a 1.0e-011 e stampa a video del numero di iterazioni effettuato, della radice <zero> determinata e del valore della funzione f(<zero>). Input: Valore di partenza (X0) per il metodo di Newton e limite al numero di iterazioni da effettuare; Output: <zero>, f(<zero>) e numero di iterazioni del metodo di Newton */ 2 PASSO (1): Determinare le variabili necessarie ed il loro tipo Variabili di ingresso valore iniziale x 0 della iterazione (reale) numero massimo di iterazioni (intero) Variabile d uscita: variabile zero della funzione zero (reale) 1

2 3 PASSI (2-3) Determinare la decomposizione in sottoproblemi e l algoritmo migliore OSSERVAZIONE: In questo caso l algoritmo e dato dalla soluzione analitica. Inoltre la decomposizione verra introdotta piu tardi 4 PASSO (4) Codifica del programma 4.1 PASSO (4.1) Definire la struttura del programma int main() // Dichiarazione delle Variabili // Chiedi i valori iniziali // - valore x0 di partenza della iterazione // - Limite al numero di passi // // Trova poi lo zero applicando il metodo di Newton... // Stampa delle soluzioni // Uscita dal programma system("pause"); return 0; L ingresso ed uscita del programma potrebbero essere: int main() // Dichiarazione delle Variabili // Chiedi i valori iniziali // - valore "startx" di partenza della iterazione // - Limite al numero di passi, variabile "maxsteps" // cout << "Insert the starting value: " ; cin >> startx; cout << "Insert the maximum number of steps: "; cin >> maxsteps; // Trova Lo zero applicando il metodo di Newton... 2

3 // Stampa delle soluzioni cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) <<... << endl << endl; // Uscita dal programma system("pause"); return 0; 4.2 PASSO (4.2) Dichiarazione delle variabili/costanti Discutiamo ora alcune variabili (non solo di input/output) necessarie al controllo della iterazione del metodo di Newton Stato della iterazione di Newton TRY il metodo non ha raggiunto la precisione attesa DONE il metodo ha raggiunto la precisione attesa TOO MANY il metodo ha gia effettuato il numero massimo di iterazioni e quindi va sospeso DIV BY ZERO, quando una derivata nulla viene incontrata Per rappresentare lo stato dell iterazione uso un intero e definisco 4 costanti per i 4 stati possibili (TRY, DONE, TOO MANY, DIV BY ZERO) Poi ci sono ancora Variabile zero (reale) Variabile valore iniziale per il metodo iterativo (reale) Variabile di controllo per il massimo numero di passi (intera) Sentinella: numero di passi eseguiti (intera) Variabili della formula di Newton (reali): x (per il valore x i ) x next (per il valore x i+1 ) 3

4 Il programma risulta ora: /* Name: main Obbiettivo: Calcolo della radice della equazione f(x) = -e^(-x) - 2x;. con una precisione assegnata pari a 1.0e-011 e stampa a video del numero di iterazioni effettuato, della radice <zero> determinata e del valore della funzione f(<zero>). Input: Valore di partenza (X0) per il metodo di Newton e limite al numero di iterazioni da effettuare; Output: <zero>, f(<zero>) e numero di iterazioni del metodo di Newton */ #include <iostream> #include <stdlib.h> #include <iomanip.h> const int TRY = 0; const int DONE = 1; const int TOOMANY = 2; const int DIV_BY_ZERO = 3; int main() int stato = TRY; int maxsteps; int steps; // Lo stato iniziale // Memorizza il massimo numero di passi // Sentinella double zero, // Variabile che rappresenta la Soluzione startx; // Valore inziale X0 della successione delle X_i double x, x_next; // Variabili nella formula di Newton // Chiedi i valori iniziali // - valore x0 di partenza della iterazione // - Limite al numero di passi cout << "Insert the starting value: " ; cin >> startx; cout << "Insert the maximum number of steps: "; cin >> maxsteps; // Trova Lo zero applicando il metodo di Newton... // Stampa delle soluzioni: aggiornata if( stato == DONE ) cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) <<... << endl << endl; else if (stato == TOOMANY) cout << "Convergenza troppo lenta\n\n"; 4

5 else if (stato == DIV_BY_ZERO) cout << "Divisione per zero!! Metodo inapplicabile\n\n"; // Uscita dal programma system("pause"); return 0; 4.3 PASSO(4.3) Codifica dell algoritmo di Newton Vanno rappresentate: La Funzione non lineare in C++ data da che si rappresenta come: La Derivata di f(x) in C++ che si rappresenta come: Inoltre va gestito il ciclo ierativo che: f(x) = e x x 2 exp(-x) - pow(x,2) f(x) = e x 2x -exp(-x) - 2*x richiede un controllo sulla precisione richiesta calcola un passo di iterazione secondo la formula di Newton verifica ed aggiorna lo stato ad ogni passo In conseguenza delle osservazioni precedenti, la variabile stato verra usata per il controllo di iterazione. OSS: Uno dei controlli deve prevedere una verifica della possibilita che uno degli x n sia 0, nel qual caso il metodo e inapplicabile (cioe stato = DIV BY ZERO) 5

6 Le osservazioni di sopra si riflettono nel programmma C++ nel seguente modo: #include <iostream> #include <stdlib.h> #include <iomanip.h> // Dichiarazioni di costanti... // Aggiungo la precisione richiesta const double EPS = 1.0e-011; // tolleranza 10 alla meno 11 int main() //... Dichiarazioni // Input // Trova Lo zero applicando il metodo di Newton steps=0; // Schema iterativo di NEWTON x_next = startx; while ( state == TRY ) ++steps; x = x_next; // Controllo sullo zero della derivata if ( (-exp(-x) - 2*x) == 0 ) state = DIV_BY_ZERO; zero = 0.0; else // Calcolo della formula di Newton // x_n+1 = x_n - f(x)/df(x) x_next = x - (exp(-x) - pow(x,2))/ (-exp(-x) - 2*x); // Controllo della precisione if ( fabs( x - x_next ) < EPS ) state = DONE; zero = x_next; else if ( steps > maxsteps ) // Controllo numero dei passi state = TOOMANY; // WHILE // Stampa delle soluzioni che si presenta quindi nella sua versione completa come segue: 6

7 #include <iostream> #include <stdlib.h> #include <iomanip.h> #include <math.h> // Dichiarazioni di costanti const int TRY = 0; const int DONE = 1; const int TOOMANY = 2; const int DIV_BY_ZERO = 3; // Aggiungo la precisione richiesta const double EPS = 1.0e-011; // tolleranza 10 alla meno 11 int main() int stato = TRY; int maxsteps; int steps; // Lo stato iniziale // Memorizza il massimo numero di passi // Sentinella double zero, // Variabile che rappresenta la Soluzione startx; // Valore inziale X0 della successione delle X_i double x, x_next; // Variabili nella formula di Newton // Chiedi i valori iniziali // - valore x0 di partenza della iterazione // - Limite al numero di passi cout << "Insert the starting value: " ; cin >> startx; cout << "Insert the maximum number of steps: "; cin >> maxsteps; // Trova Lo zero applicando il metodo di Newton steps=0; // Schema iterativo di NEWTON x_next = startx; while ( stato == TRY ) ++steps; x = x_next; // Controllo sullo zero della derivata if ( (-exp(-x) - 2*x) == 0 ) stato = DIV_BY_ZERO; zero = 0.0; else // Calcolo della formula di Newton // x_n+1 = x_n - f(x)/df(x) 7

8 x_next = x - (exp(-x) - pow(x,2))/ (-exp(-x) - 2*x); // Controllo della precisione if ( fabs( x - x_next ) < EPS ) stato = DONE; zero = x_next; else if ( steps > maxsteps ) // Controllo numero dei passi stato = TOOMANY; // WHILE // Stampa delle soluzioni if( stato == DONE ) cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) << (exp(-zero) - pow(zero,2)) << endl << endl; cout << "Il numero di passi effettuati dall algoritmo e " << steps << endl << endl; else if (stato == TOOMANY) cout << "Convergenza troppo lenta\n\n"; else if (stato == DIV_BY_ZERO) cout << "Divisione per zero!! Metodo inapplicabile\n\n"; // Uscita dal programma system("pause"); return 0; 8

9 5 Revisione critica del programma Il programma illustrato consta di 85 linee di programma e di un blocco funzionale (il MAIN()) che controlla e gestisce ogni operazione: INPUT dei dati OUTPUT dei dati Calcolo della funzione f(x) Calcolo della funzione derivata di f(x) Iterazione Controllo dello stato Inoltre le istruzioni // Calcolo della formula di Newton x_next = x - (exp(-x) - pow(x,2))/ (-exp(-x) - 2*x); e // Stampa a video risultati cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) << (exp(-zero) - pow(zero,2)) << endl << endl; cosi come le altre due // Controllo sugli zeri della derivata if ( (-exp(-x) - 2*x) == 0 ) e // Calcolo della formula di Newton x_next = x - (exp(-x) - pow(x,2))/ (-exp(-x) - 2*x); sono evidentemente ridondanti: in entrambi i casi siamo costretti a duplicare le definizioni stesse delle funzioni f(x) ed f (x). Inoltre soprattutto nel primo caso tali definizioni sono necessarie (e diverse) poiche agiscono su due variabili diverse: e (exp(-x) - pow(x,2)) (exp(-zero) - pow(zero,2)) In realta pero tale differenza (algoritmicamente) non esiste poiche in entrambi i casi abbiamo la stessa sequenza di operazioni numeriche sui dati: calcolo dell esponsneziale calcolo del quadrato differenza tra i due 9

10 Se potessimo astrarre questa definizione dal nome della variabile (x e/o zero) e definire una sola volta nel programma una f(y) tale da determinare quelle operazioni, potremmo, ogni volta che nel programma occorre la valutazione di f (quindi indifferentemente per f(x) o f(zero), richiamare la definizione semplificando la scrittura del programma. Tale ruolo di garanzia delle astrazioni funzionali (come f(x) ed f (x)) viene svolto in C++ dalle funzioni (dette anche funzioni definite dal programmatore). Esse garantiscono una DICHIARAZIONE, che definisce nome della funzione (f ne nostro esempio) argomenti della funzione (il loro numero, 1 nell esempio) tipo degli argomenti (reale nel nostro caso) tipo (di ritorno) della funzione (reale nel nostro caso) DEFINIZIONE, che definisce le operazioni da eseguire durante il calcolo della funzione sulle variabili INVOCAZIONE, che permette la attivazione di tale calcolo sugli argomenti di volta in volta necessari (nell esempio x o zero). Vediamo allora le funzioni viste nel problema di Newton. DICHIARAZIONI (anche detti PROTOTIPI) double f( double x); // dichiarazione funzione f() double df( double x); // dichiarazione della funzione f () DEFINIZIONI // Definizione di f(x) double f( double y) double tmp; tmp = exp(-y) - pow(y,2); return tmp; // FINE di f(x) // Definizione di f (x) double df( double z) double tmp; tmp = - exp(-z) - 2*z; return tmp; // FINE di df(x) Esempi di INVOCAZIONE (o attivazione, chiamata) // Calcolo della formula di Newton // Versione Senza funzioni f, df x_next = x - (exp(-x) - pow(x,2))/ (-exp(-x) - 2*x); // Versione con le funzioni f() e df x_next = x - f(x) / df(x); 10

11 e // Stampa a video risultati // Versione Senza funzione f cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) << (exp(-zero) - pow(zero,2)) << endl << endl; // VersioneCon la funzione f cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) << f(zero) << endl << endl; Osserviamo che una funzione C++ indipendente puo essere definita anche per le operazioni riguardanti il metodo stesso di Newton in modo da eliminare dai compiti del main() quello di gestire l iterazione DICHIARAZIONE/PROTOTIPO double newton( double x0, int &state, int maxsteps); DEFINIZIONE double newton( double x0, int &state, int maxsteps) int steps=0; double x, x_next; // Schema iterativo di NEWTON x_next = x0; while ( state == TRY ) ++steps; x = x_next; if ( df(x) == 0 ) state = DIV_BY_ZERO; x_next = 0.0; else x_next = x - f(x)/df(x); if ( fabs( x - x_next ) < EPS ) state = DONE; else if ( steps > maxsteps ) state = TOOMANY; // WHILE return x_next; //FINE funzione NEWTON() INVOCAZIONE zero = newton( startx, stato, maxsteps); 11

12 Date le tre definizioni di funzioni il programma e ora costituito dalla seguente struttura: main() f(x) df(x) newton(..) La sua versione in C++ e ora come segue. Si osservi il ruolo della definizione delle tre funzioni (che precede il main() e che svolge anche il ruolo della dichiarazione (che e quindi assente). /* */ Name: Newton Author: RBAS Description: Algorithm for finding zero s by the Newton iterative method Main File Date: Copyright: UTV #include <iostream> #include <stdlib.h> #include <iomanip.h> #include <math.h> const int TRY = 0; const int DONE = 1; const int TOOMANY = 2; const int DIV_BY_ZERO = 3; const double EPS = 1.0e-011; // tolleranza 10 alla meno 11 double f( double y) double tmp; tmp = exp(-y) - pow(y,2); return tmp; double df( double y) double tmp; 12

13 tmp = - exp(-y) - 2*y; return tmp; double newton( double x0, int &state, int maxsteps) int steps=0; double x, x_next; // Schema iterativo di NEWTON x_next = x0; while ( state == TRY ) ++steps; x = x_next; if ( df(x) == 0 ) state = DIV_BY_ZERO; x_next = 0.0; else x_next = x - f(x)/df(x); if ( fabs( x - x_next ) < EPS ) state = DONE; else if ( steps > maxsteps ) state = TOOMANY; // WHILE return x_next; int main() int stato = TRY; int maxsteps; double zero, //Solution startx; //Starting value for X_i // ASK for initial VALUES cout << "Insert the starting value: " ; cin >> startx; cout << "Insert the maximum number of steps: "; cin >> maxsteps; // FIND the ZERO zero = newton( startx, stato, maxsteps); 13

14 // PRINT the solutions if( stato == DONE ) cout << "Soluzione x=" << setprecision(12) << zero << " con f(x)=" << setprecision(12) << f(zero) << endl << endl; else if (stato == TOOMANY) cout << "Convergenza troppo lenta\n\n"; else if (stato == DIV_BY_ZERO) cout << "Divisione per zero!! Metodo inapplicabile\n\n"; system("pause"); return 0; 14

Università di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando

Università di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando Università di Roma Tor Vergata L6-1 iterazione: struttura di controllo per ripetere più volte uno stesso comando comandi iterativi C++: while, do-while, for while: sintassi while (espressione) comando;

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Corso di Fondamenti di Informatica Classi di istruzioni 2

Corso di Fondamenti di Informatica Classi di istruzioni 2 Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da

Dettagli

Elementi di Programmazione in C++

Elementi di Programmazione in C++ Chapter 1 Elementi di Programmazione in C++ 1.1 C++: Elementi di Base cat example05.design Comportamento: Il programma dovrebbe invitare l utente a immettere il raggio di un cerchio

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli

Laboratorio di Calcolo Numerico

Laboratorio di Calcolo Numerico Laboratorio di Calcolo Numerico M.R. Russo Università degli Studi di Padova Dipartimento di Matematica Pura ed Applicata A.A. 2009/2010 Equazioni non lineari Data una funzione consideriamo il problema

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè Pr1: determinare il maggiore di n numeri interi 1 2 3 4 n 1 Pr1: determinare il maggiore di n numeri interi 1 2 3 4 n P1. trovare il maggiore fra i primi 2 numeri; P2. trovare il maggiore fra il terzo

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

Dettagli

Linguaggio C: le funzioni

Linguaggio C: le funzioni Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: genna18@iol.it sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare

Dettagli

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa

Dettagli

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Calcolo del fattore di convergenza

Calcolo del fattore di convergenza Calcolo del fattore di convergenza Dato uno schema iterativo si ha: lim k x k+1 ξ x k ξ p = M p è l ordine di convergenza del metodo iterativo M è la costante asintotica dell errore o fattore di convergenza.

Dettagli

Istruzioni semplici e strutturate

Istruzioni semplici e strutturate Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Metodi iterativi per equazioni nonlineari.

Metodi iterativi per equazioni nonlineari. Metodi iterativi per equazioni nonlineari. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 9 aprile 2016 Alvise Sommariva Introduzione 1/ 14 Introduzione Si supponga sia f

Dettagli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

Dettagli

Strutture di controllo in C++

Strutture di controllo in C++ Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x) Funzioni di libreria Richiedono tutte #include x x a x fabs(x) sqrt(x) pow(x,a) x e ln(x) exp(x) log(x) log 10 ( x ) log10(x) sen(x) cos(x) tg(x) arcsen(x) arccos(x) arctg(x) senh(x) cosh(x) tgh(x)

Dettagli

Programmazione modulare

Programmazione modulare Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

La ricerca delle radici approssimate è composta da:

La ricerca delle radici approssimate è composta da: Zeri di una funzione Ricerca delle (eventuali) radici reali di una funzione che si supporrà definita e continua in un certo intervallo dell'asse x La ricerca delle radici approssimate è composta da: 1)

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

radici reali li d i di una funzione cal ca co co o l o d i d u i n v n v l a o l r o e e appr app oss oss ato ato miglioramento

radici reali li d i di una funzione cal ca co co o l o d i d u i n v n v l a o l r o e e appr app oss oss ato ato miglioramento Zeri di una funzione Ricerca delle (eventuali) radici i reali di una funzione che si supporrà definita e continua in un certo intervallo dell'asse x La ricerca delle radici approssimate è composta da:

Dettagli

L organizzazione dei programmi

L organizzazione dei programmi L organizzazione dei programmi Lo sviluppo top-down L.S. Touschek - A.S. 2015/2016 - I fondamenti del Linguaggio C F. Cardarelli Lo sviluppo top-down I problemi complessi Blocco 1 Istruzione 1 Istruzione

Dettagli

Claudio Estatico Equazioni non-lineari

Claudio Estatico Equazioni non-lineari Claudio Estatico (claudio.estatico@uninsubria.it) Equazioni non-lineari 1 Equazioni non-lineari 1) Equazioni non-lineari e metodi iterativi. 2) Metodo di bisezione, metodo regula-falsi. 3) Metodo di Newton.

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

La Programmazione. Introduzione alla programmazione in C++ Lo sviluppo di un programma (in C++) Lo sviluppo di un programma (in C++) La Programmazione

La Programmazione. Introduzione alla programmazione in C++ Lo sviluppo di un programma (in C++) Lo sviluppo di un programma (in C++) La Programmazione Introduzione alla programmazione in C++ Fondamenti di Informatica 1 R. Basili 2 ciclo a.a. 2000-2001 Programmare significa: Determinare la natura del prolema (analisi) Definire una decomposizione in sottoprolemi

Dettagli

Università di Roma Tor Vergata L12-1

Università di Roma Tor Vergata L12-1 Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti

Dettagli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario La ricorsione Metodi ricorsivi Esercizi proposti 16/01/2013 2 La ricorsione In Java ogni metodo può chiamare anche se stesso,

Dettagli

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8. Esercitazione 7 Argomento: Il metodo delle successive bisezioni Scopo: Implementare il metodo delle successive bisezioni per la soluzione di equazioni non lineari. function [alfa,iter]=bisez(f,a,b,epsilon)

Dettagli

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Programmazione con il linguaggio LibreOffice Basic

Programmazione con il linguaggio LibreOffice Basic Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software

Dettagli

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Corso di Laurea Specialistica in Ingegneria Meccanica e Ingegneria Energetica Progetto numerico al calcolatore

Corso di Laurea Specialistica in Ingegneria Meccanica e Ingegneria Energetica Progetto numerico al calcolatore Corso di Laurea Specialistica in Ingegneria Meccanica e Ingegneria Energetica Progetto numerico al calcolatore Soluzione di un sistema non lineare con la Regula Falsi generalizzata per la determinazione

Dettagli

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07 Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Risoluzione di Equazioni non lineari Sia F C 0 ([a, b]), cioé F è una funzione continua in un intervallo [a, b] R, tale che F(a)F(b) < 0 1.5 1 F(b) 0.5 0 a

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione

Corso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Esercizio 1. Esercizio 2

Esercizio 1. Esercizio 2 Sia data la matrice A A(α) = Esercizio α 2 2α 2 2, α R.) determinare per quali valori del parametro reale α é verificata la condizione necessaria e sufficiente di convergenza per il metodo di Jacobi;.2)

Dettagli

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo Capitolo Esercizi a.a. 206-7 Esercizi Esercizio. Dimostrare che il metodo iterativo x k+ = Φ(x k ), k = 0,,..., se convergente a x, deve verificare la condizione di consistenza x = Φ(x ). Ovvero, la soluzione

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

a.a Codice corso: 21012, HOMEWORKS

a.a Codice corso: 21012, HOMEWORKS HOMEWORKS Questi esercizi saranno proposti ogni 2 settimane e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco Sperimentazioni I Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 10 Novembre 2011 La scrittura di un programma Modellizzazione programma Flowcharts Pseudocode Scrittura del codice

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Anno Accademico Francesco Tortorella Il concetto di visibilità Un programma C++ può assumere una struttura complessa grazie

Dettagli

Stesura informale dell algoritmo: (lasciata come esercizio)

Stesura informale dell algoritmo: (lasciata come esercizio) ESERCIZIO 1 Dato un numero positivo Q, scrivere la sua rappresentazione in binario naturale, applicando il tradizionale algoritmo per divisioni successive (l output sarà inteso corretto se letto da destra

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco Sperimentazioni I Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Ottobre 2013 La scrittura di un programma Modellizzazione programma Flowcharts Pseudocode Scrittura del codice Esercizi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Fondamenti di Informatica, A.A Compito A

Fondamenti di Informatica, A.A Compito A Fondamenti di Informatica, A.A. 2013-2014 - Compito A 30/07/2014 Prova Pratica L integrale definito di una funzione continua su un intervallo chiuso e limitato può essere calcolato con la regola dei trapezi

Dettagli

Laboratorio di Calcolo Numerico

Laboratorio di Calcolo Numerico Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti

Dettagli

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Problema. Equazioni non lineari. Metodo grafico. Teorema. Cercare la soluzione di

Problema. Equazioni non lineari. Metodo grafico. Teorema. Cercare la soluzione di Problema Cercare la soluzione di Equazioni non lineari dove Se è soluzione dell equazione, cioè allora si dice RADICE o ZERO della funzione Metodo grafico Graficamente si tratta di individuare l intersezione

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

Il C nel C++: Funzioni

Il C nel C++: Funzioni Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Esercizio 1 Liste: calcolo perimetro di un poligono

Esercizio 1 Liste: calcolo perimetro di un poligono Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di

Dettagli

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

Dettagli

Zeri di una funzione. Funzioni continue - Proprietà. certo intervallo dell'asse x. da: a ξ. cui f(x)=0. precisione desiderata (iterazione( iterazione)

Zeri di una funzione. Funzioni continue - Proprietà. certo intervallo dell'asse x. da: a ξ. cui f(x)=0. precisione desiderata (iterazione( iterazione) Zeri di una funzione Ricerca delle (eventuali) radici reali di una funzione che si supporrà definita e continua in un certo intervallo dell'asse x La ricerca delle radici approssimate e' composta da: 1)

Dettagli

Metodi per la risoluzione di equazioni non lineari

Metodi per la risoluzione di equazioni non lineari Esercitazione per il corso di Calcolo Numerico Prof. G. Zilli Metodi per la risoluzione di equazioni non lineari Roberto Bertelle Laurea in Ingegneria Aerospaziale a.a.. 2009-2010 2 Indice 1. Testo della

Dettagli

Ricerca binaria (o dicotomica) di un elemento in un vettore

Ricerca binaria (o dicotomica) di un elemento in un vettore Ricerca binaria (o dicotomica) di un elemento in un La ricerca binaria o dicotomica è utilizzata per ricercare i dati in un ORDNATO. L algoritmo di ricerca binaria, dopo ogni confronto, scarta metà degli

Dettagli

Zeri di funzioni e teorema di Sturm

Zeri di funzioni e teorema di Sturm Zeri di funzioni e teorema di Sturm Enrico Bertolazzi Dipartimento di Ingegneria Meccanica e Strutturale Università degli Studi di Trento via Mesiano 77, I 38050 Trento, Italia EnricoBertolazzi@ingunitnit

Dettagli

Soluzione dei sistemi lineari in C++

Soluzione dei sistemi lineari in C++ Soluzione dei sistemi lineari in C++ Roberto Basili University of Rome Tor Vergata, Department of Computer Science, Systems and Production, 00133 Roma (Italy), basili@info.uniroma2.it Motivazioni La seguente

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

Obiettivi di questa esercitazione

Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Esericizi sempici su funzioni 2. Funzioni ricorsive 3. Funzioni e Header File 2 ESERCIZIO 1 Codificare in C la funzione int

Dettagli

Indovina la lettera...

Indovina la lettera... Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale

Dettagli

generalità concetti di base

generalità concetti di base generalità concetti di base cosa significa informatica? scienza dell informazione e l informazione giornalistica? scienza dei computer (dall inglese computer science) per i progettisti di computer? scienza

Dettagli