Ingegneria Aerospaziale a.a. 2016/17 Laboratorio di Calcolo di Aerodinamica: II Lezione Francesco Battista francesco.battista@uniroma1.it DIMA: Dipartimento di Ingegneria Meccanica e Aerospaziale
Programma: cos è? Definizione: insieme di istruzioni che vengono eseguite da uno strumento, producendo soluzioni per una classe di problemi. Partendo da dati in ingresso, input, dopo elaborazione e manipolazione da parte di una macchina, hardware, restituisce dati in uscita, output. Il software contiene sia programmi che librerie programma: eseguibile singolarmente libreria: dipende dall esecuzione dei programmi Applicazione: insieme di programmi che vengono utilizzati dall utente finale
Programma: come si produce? Definizione di un algoritmo Scrittura del programma in un linguaggio adeguato Fortran, C, matlab, mathematica Compilazione o Interpretazione per la lettura da parte del calcolatore Esecuzione
Risolvere un problema soluzione di problemi matematici: tipicamente non lineari see: capire il problema - quali sono i dati e le incognite? - quali sono le condizioni, sono ridondanti o contraddittorie?
Risolvere un problema plan: elaborare un piano - mettere in relazione dati e incognite - ridurre, dividere, atomizzare - cominciare a risolvere singoli semplici problemi do: eseguire il piano - controllare ogni singolo passo
Risolvere un problema controllo: - controllare il risultato - è giusto? ottenibile in un altro modo - il risultato o metodo è utilizzabile per altri problemi?
Algoritmo Trascrizione latina del nome del matematico-astronomo persiano Al-Khwarizmi Definizione: sequenza di un numero finito di passi necessari a risolvere un determinato problema, che si dice quindi computabile.
Algoritmo: proprietà atomicità: passi elementari non ambiguità: i passi devono essere interpretabili in modo corretto e univoco dall esecutore finitezza: i passi devono essere in numero finito e la quantità di dati richiesta in ingresso deve essere finita terminazione: l esecuzione deve avere termine in un tempo finito effettività: il risultato finale deve essere univoco determinismo: ogni passo deve essere seguito da uno ed un solo passo ben determinato
Algoritmo: Fasi sintesi: dato un problema P, definire un algoritmo che lo risolva analisi: dato l algoritmo verificare che effettivamente risolva il problema P, correttezza, e valutare la quantità di risorse usate, complessità concreta La bontà e l efficienza dell algoritmo garantiscono la bontà e l efficienza del programma finale
Algoritmo: diagramma di flusso
Algoritmo: simbologia
Algoritmo: media voti
Algoritmo: macchinetta del caffè
Algoritmo: ricerca in schedario Cercare la scheda di un certo libro 1. Finché restano schede da analizzare si prende la prima scheda non ancora analizzata 2. Se autore e titolo sono quelli cercati: scheda trovata, ricerca conclusa! 3. Altrimenti si riparte da 1. 4. Esaurire le schede, il libro non è in biblioteca
Algoritmo: ricerca in schedario più veloce Cercare la scheda di un certo libro in uno schedario ordinato 1. Finché restano schede da analizzare si prende tra loro la scheda centrale 2. Se autore e titolo sono quelli cercati: scheda trovata, ricerca conclusa! 3. Altrimenti se autore e titolo sono dopo quelli cercati, si scartano tutte le precedenti 4. Altrimenti altrimenti autore e titolo prima di quelli cercati, si scartano tutte le schede successive. 5. si ripete la ricerca sulle schede rimaste partendo dal punto 1. 6. Esaurire le schede, il libro non è in biblioteca