Introduzione - aspetti generali dell’informatica Vittorio Zaccaria, Daniele Loiacono Informatica B - Codice Corso: 081369 - A.A. 2010/2011 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione RAE - Z INGEGNERIA ENERGETICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione RAE - Z Cos’è l’Informatica? • • E’ una scienza, ovvero una conoscenza sistematica di tecniche/metodi per: • • Rappresentare dell’informazione Elaborare l’informazione L’informazione e’ costituita da una collezione di dati (osservazioni, fatti, entità fisiche o concettuali) Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Cosa è un calcolatore • Nell’epoca moderna, è uno strumento elettronico che elabora informazione. Informazione in ingresso Informazione in uscita Calcolatore Il calcolatore esegue un algoritmo ed utilizza elementi di memoria per elaborare l’informazione Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Cosa è un calcolatore Uscita informazione Calcolatore Ingresso informazione Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Cos’è un algoritmo? • Es. IKEA Una sequenza finita di operazioni elementari tali che: • • • siano comprensibili ad uno specifico esecutore possano essere eseguite senza ambiguità permettano di risolvere uno specifico problema Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Esempio: gestione biblioteca Scaffali in a Tw t... k r a ven M : re e ad o t Au lo: Th 1 Tito ffale: 3 : 4 Sca izione Pos Posizione Schedario Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Algoritmo di prelevamento di un libro 1. Cerca la scheda del libro richiesto nello schedario 2. Leggi scaffale (s) e posizione (p) dalla scheda 3. Vai allo scaffale s 4. Preleva libro dalla posizione p La funzione Cerca è un sotto-algoritmo Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Sotto-algoritmo Cerca 1. Leggi la prima scheda dallo schedario 2. Se titolo e autore/i corrispondono a quelli cercati allora concludi la ricerca con esito positivo, altrimenti passa la scheda successiva 3. Se le schede sono esaurite allora concludi la ricerca con esito negativo, altrimenti ricomincia dal punto 2 L’algoritmo può essere ulteriormente migliorato, rendendo la ricerca più furba! Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Sotto-algoritmo Cerca migliorato Intero schedario (15 elementi) passo 1 passo 2 passo 3 passo 4 Ricerca binaria Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Dal problema alla soluzione automatica - Correttezza - Efficienza Definizione problema Specifica (semi-formale o formale) dell’algoritmo Scrittura dell’algoritmo in un linguaggio artificiale comprensibile dal calcolatore Passo più difficile Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI - Concentrarsi sugli aspetti fondamentali - Raffinamenti successivi - Esperienza Come si specifica un algoritmo? • Un’opzione è chiamata pseudo-codice: se A > 0 allora A = A + 1 altrimenti A = 0 • Un’altra opzione è quella dei diagrammi di flusso (schemi a blocchi) inizio assegnamento scrivi Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI fine test leggi Esempio di pseudo-codice Calcolo del massimo comune divisore Leggi N ed M MIN = il minimo tra N ed M X = 1 MCD = 1 Finchè X < MIN X = X + 1 se X divide sia N che M, allora MCD = X Stampa MCD Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Esempio di diagramma a blocchi inizio leggi N ed M MIN = min(N,M) X=1 MCD=1 no X<MIN? si Stampa MCD X=X+1 X divide M ed N? fine si MCD=X Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI no Scrittura algoritmo interpretabile dal calcolatore • Il calcolatore (in particolare la Central Processing Unit CPU) può eseguire solo operazioni semplici. leggi istruzione ed eventualmente operandi 0: 10100101 1: 01101111 CPU 2: 11100100 Scrivi risultato in memoria Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI Memoria 3: 00000101 ... Scrittura algoritmo interpretabile dal calcolatore • Le operazioni semplici sono codificate in memoria Memoria Corrisponde a 0: 10100101 1: 01101111 2: 11100100 3: 00000101 ... Programma in linguaggio macchina Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI load add branch ... Programma in linguaggio assembly Linguaggi di alto livello • E’ impensabile scrivere programmi di media complessita’ in linguaggio macchina. Linguaggio di alto livello (C, C++, Java, matlab) Conversione automatica (compilatore/interprete) Assembly Conversione automatica (assemblatore) Linguaggio macchina Corso di Informatica B - A.A. 2010/2011 Prof. V. Zaccaria - Politecnico di Milano - DEI