Testi di riferimento Algoritmi: introduzione Ceri et al., Informatica, arte e mestiere Elementi di Informatica Docente: Giorgio Fumera Sciuto et al., Introduzione ai sistemi informatici Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 2 Algoritmo: definizione informale Esempi di compiti descrivibili da algoritmi • preparare una torta di mele • usare un videoregistratore • prelevare denaro da uno sportello Bancomat • cercare un nome in un elenco telefonico Sequenza di azioni, definite con precisione, che portano alla realizzazione di un dato compito • disporre una sequenza di nomi in ordine alfabetico • trovare il percorso più breve tra due città attraverso una mappa stradale • sommare due numeri interi • estrarre la radice quadrata di un numero reale non negativo • calcolare gli zeri di un’equazione di secondo grado a coefficienti reali 3 4 Algoritmi ed esecutori Algoritmo: definizione formale Descrizione del procedimento per la realizzazione di un dato compito, espressa in modo non ambiguo, in un linguaggio comprensibile dall’esecutore, in termini di una sequenza finita di operazioni che l'esecutore sia in grado di eseguire Scopo principale della formulazione di algoritmi: comunicare a un esecutore (un’altra persona, o una macchina) il procedimento per realizzare un dato compito Due problemi principali: • quale linguaggio conosce? • quali azioni sa eseguire? 5 Algoritmi e informatica Esercizio Quali dei seguenti compiti possono essere formulati come problemi di elaborazione di informazione? Ove possibile, indicare i dati di partenza e il risultato Quali sono i compiti considerati nell’informatica? Elaborazione di informazione Dati di ingresso Un procedimento risolutivo (algoritmo) 6 Risultato 7 • preparare una torta di mele • usare un videoregistratore • prelevare denaro da uno sportello Bancomat • cercare un nome in un elenco telefonico • disporre una sequenza di nomi in ordine alfabetico • trovare il percorso più breve tra due città attraverso una mappa stradale • sommare due numeri interi • estrarre la radice quadrata di un numero reale non negativo • calcolare gli zeri di un’equazione di secondo grado a coefficienti reali 8 Esercizio Calcolatori: esecutori di algoritmi Formulare un algoritmo per la risoluzione del seguente problema: ordinare in senso crescente la sequenza (8, 5, -3, 11) Nell’informatica l’esecutore di riferimento è una macchina programmabile Obiettivo: far risolvere problemi al calcolatore, comunicandogli anche il procedimento risolutivo dati Calcolatore risultati algoritmo Quali azioni sa eseguire un calcolatore? Quale linguaggio comprende? 9 Compito principale dell’informatica: • formulare algoritmi per risolvere problemi • analizzare le proprietà degli algoritmi (efficienza, ecc.) Problemi connessi: • linguaggi di programmazione • architettura dei calcolatori (esecutori di algoritmi) • produzione industriale dei programmi (ingegneria del software) • metodi e strumenti per la gestione e il recupero di grandi quantità di dati • ... 11 10