G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione II Cosa vuol dire scrivere un programma Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 1 G. Amodeo, C. Gaibisso Scenario …. Individuare la sequenza di ordini, tra quelli eseguibili dall’automa, che risolvono, in maniera efficace, il problema, se possibile Quesito Automa Voi Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 2 G. Amodeo, C. Gaibisso Cos’è l’informazione? Informazione tutto ciò che riduce l’incertezza di chi la riceve A che ora è fissata la riunione di Lunedì? Alle 15.00! Mario Filippo Informazione Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 3 G. Amodeo, C. Gaibisso Risolvere un problema Cosa vuol dire esattamente risolvere un problema? Cosa facciamo quando risolviamo un problema? Estraiamo informazione nascosta (implicita) dall’informazione in nostro possesso (esplicita) Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 4 G. Amodeo, C. Gaibisso Contenuto implicito e esplicito Richiesta di Certificato Il richiedente, Mario Bianchi di Antonio e Giuseppina Rossi, … Esplicito Implicito: cognome del padre del richiedente Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 5 G. Amodeo, C. Gaibisso Cos’è un dato? Dato la rappresentazione concreta di una informazione La stessa informazione può essere rappresentata da dati diversi grattacielo skyscraper Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 6 G. Amodeo, C. Gaibisso Codifica … Codifica processo attraverso il quale l’informazione viene codificata in un dato Codifica/Decodifica processo di trasformazione tra dati che rappresentano la stessa informazione Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 7 G. Amodeo, C. Gaibisso Nozione intuitiva di algoritmo Algoritmo descrizione formale di un metodo per l’estrazione della informazione implicita di interesse dalla informazione esplicita codificata nei dati disponibili Nozione intuitiva di algoritmo • è una sequenza finita di istruzioni • ogni istruzione nella sequenza è codificata con una quantità finita di informazione • deve esistere un agente di calcolo C capace di eseguire le istruzioni dell’algoritmo • C deve avere capacità di memorizzazione • ….. Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 8 G. Amodeo, C. Gaibisso Nozione intuitiva di algoritmo Come calcolare il massimo tra due valori? Start Inizio della sequenza N1, N2 Acquisizione dei due valori Confronto idue valori N1 si Se il primo risulta maggiore del secondo il massimo è il primo N1 > N2 Stop no N2 Altrimenti il massimo è il secondo Termine della sequenza Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 9 G. Amodeo, C. Gaibisso I programmi Risultato codificato nel linguaggio dell’automa Soluzione e dati codificati nel vostro linguaggio Decodifica Voi Risultato codificato nel vostro linguaggio Codifica Voi Automa Algoritmo e dati codificati nel linguaggio dell’automa Programma Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 10 G. Amodeo, C. Gaibisso Chiudiamo con una domanda … Problema risolvibile se esiste un algoritmo per la sua soluzione Esistono Problemi non risolvibili? la stragrande maggioranza dei problemi non sono risolvibili Programmazione di Calcolatori: Cosa vuol dire scrivere un programma 11