1. Introduzione al corso Ing. Simona Colucci Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Informazioni utili Ing. Simona Colucci: • Contatti: SisInfLab. Dipartimento di Elettrotecnica ed Elettronica(DEE) mailto: [email protected] Tel: 0805963515 http://sisinflab.poliba.it/colucci • Ricevimento studenti: Mercoledì 11:30/13:30 Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Modalità d’esame • Prova scritta: - Composta di una parte teorica e di una applicativa - Obbligatoria per il superamento dell’esame - Sostituibile dal superamento di entrambe le prove di esonero dallo scritto da tenersi durante il corso • Prova orale: - Facoltativa con il superamento della prova scritta Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Composizione del corso • Argomenti teorici di base - oggetto delle lezioni in aula - verificati tramite quesiti ed esercizi della prova scritta • Programmazione in linguaggio C - oggetto sia delle lezioni in aula che delle attività di laboratorio - verificata tramite problemi della prova scritta Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Libri di testo Testi di riferimento: • Ceri, Mandrioli, Sbattella. Informatica: arte e mestiere. McGraw-Hill, 2004 • Bellini, Guidi. Linguaggio C. Mc-Graw-Hill, 2006 • Kerningham, Ritchie. Linguaggio C. Jackson Libri, 1989 Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi Programma DEE - Politecnico di Bari • Architettura dei calcolatori Architettura dei calcolatori, codifica binaria dell’informazione, algebra di Boole • Algoritmi e strutture dati Algoritmi, Programmazione • Architettura dei sistemi informatici Il sistema operativo, Basi di dati • Attività di laboratorio Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Informatica • Definizione Scienza della rappresentazione e dell’elaborazione dell’informazione • Definizione Association of Computing Machinery(ACM) Studio sistematico degli algoritmi(sequenze precise di operazioni comprensibili e perciò eseguibili da uno strumento automatico) che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Concetto di algoritmo • Sequenza di passi, definiti con precisione, che portano alla realizzazione di un compito. • E’ essenziale che un algoritmo sia comprensibile al suo esecutore:es. il calcolatore(privo di buon senso) esegue algoritmi prodotti e codificati dagli informatici in programmi • Proprietà degli algoritmi: - correttezza: capacità di arrivare alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale - efficienza: capacità di arrivare alla soluzione del compito cui è preposto nel modo più veloce possibile e/o usando la minima quantità di risorse fisiche, compatibilmente con la sua correttezza Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempi di algoritmi 1. Lavaggio di capi resistenti in lavatrice 2. Calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote 3. Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno 4. Calcolo del Massimo Comun Divisore(M.C.D.) Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempio 1 Problema: Lavaggio di capi resistenti in lavatrice Soluzione informale: lavatrice + programma “cotone 90” Algoritmo: Esecuzione in stretta sequenza dei seguenti passi: -lavatrice -ammollo -prelavaggio -lavaggio -candeggio -risciacquo -ammorbidente -centrifuga Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempio 2 Problema: Calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote Soluzione informale: data la tabella delle aliquote relative alle fasce di reddito e dato il reddito lordo, si applicano progressivamente le aliquote al reddito Algoritmo: - acquisire reddito lordo Inizio-fascia(€) Fine_fascia (€) Aliquota (%) - I=10% di R O 3600 10 - Se R>3600 I=I+12%(R-3600) 3600.01 7200 22 - Se R>7200 I=I+5%(R-7200) 7200.01 15000 27 - Se R>15000 I=I+7%(R-15000) 15000.01 30000 34 - Se R>30000 I=I+7%(R-30000) 30000.01 75.000 41 - Se R>75000 I=I+5%(R-75000) 75000.01 150000 46 - Se R>150000 I=I+5%(R-150000) 150000 51 - I è l’imposta risultante Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempio 3 Problema: Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno Soluzione informale: si confrontano i segni dei due operandi; nel caso di numeri concordi si effettua la somma dei moduli e il risultato è concorde con gli addendi; nel caso di numeri discordi si effettua la differenza tra modulo maggiore e minore e il risultato è concorde con l’addendo di modulo maggiore. Algoritmo: - acquisizione dei due numeri a,b - se a,b sono concordi |s|=|a|+|b| - se a,b sono discordi - se |a|<|b| si scambiano i valori di a e b - |s|=|a|-|b| - la somma ha il segno di a e modulo |s| Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempio 4 Problema: Calcolo del Massimo Comun Divisore tra due numeri a,b : MCD(a,b) Soluzione di Euclide: “ogni divisore comune di a e b è divisore di a, b e del resto r della divisione tra a e b (a mod b), se questo non è nullo” Algoritmo: 1. acquisire due numeri a,b 2. se b>a scambiare a con b 3. se b= 0 MCD(a,b)=a a andare al passo 6 4. r= a mod b 5. sostituire a con b, b con r ed andare al passo 2 6. Fine Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Flusso di controllo • L’ordine di esecuzione delle operazioni elementari è determinante per la soluzione del problema • Le operazioni elementari(passi di algoritmi) vengono chiamate istruzioni nel linguaggio dei calcolatori e possono essere classificate in : - istruzioni non condizionate - istruzioni condizionate: l’esecuzione dipende da una condizione - istruzioni di controllo: esprimono le condizioni da cui dipende l’esecuzione delle istruzioni condizionate(dette pseudo-istruzioni perché controllano solo il flusso delle operazioni) • Le istruzioni possono essere composte in blocchi o sequenze che risolvono sottoproblemi del problema principale e sono viste come un’istruzione elementare Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Costrutto • Insieme di istruzioni di controllo e controllate: - costrutto condizionale: insieme di condizione e istruzioni condizionate - costrutto iterativo: insieme di istruzioni la cui esecuzione viene ripetuta sotto il controllo di opportune istruzioni di controllo Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Diagrammi di flusso FLOW CHART: Formalismo grafico per rappresentare la sequenza(flusso)di istruzioni o operazioni elementari di un algoritmo: -operazioni(semplici o composte, condizionate o non condizionate) con rettangoli -condizioni(scelta tra due possibilità) con rombi vero Condizione? falso -flusso (sequenza di esecuzione o controllo) con segmenti orientati che uniscono i blocchi -inizio e fine dell’esecuzione con ellissi Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Linguaggi di Programmazione • Linguaggi per la codifica di algoritmi: scrittura sotto forma di programmi che possano essere compresi da un elaboratore • Dal linguaggio della macchina ai linguaggi di alto livello: sforzo di traduzione da linguaggio naturale a linguaggio macchina sempre più affidato alla macchina stessa Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Sistema Informatico • Oggetto complesso,che può assumere nature molto differenti, costituito da molte parti che interagiscono tra loro per eseguire algoritmi • Classificazione a livello generico delle componenti: – Hardware: componenti fisici del sistema – Software: programmi eseguiti dal sistema Il confine tra HW e SW è piuttosto sfumato se si pensa che le stesse funzioni possono essere svolte a seconda dei casi da circuiti e dispositivi HW o da particolari microprogrammi(firmware) definiti dal costruttore del calcolatore Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi Hardware DEE - Politecnico di Bari Insieme di elementi funzionali: • Unità di elaborazione o processore: – esegue i programmi • Memoria centrale: • Memoria secondaria (o di massa): • Bus di sistema: • Unità periferiche: – – – – memorizza dati e programmi per il funzionamento dell’elaboratore capacità limitata volatile rapido acceso all’informazione – capacità significativa – persistente – Accesso all’informazione lento – collega gli elementi funzionali consentendo lo scambio di dati – fanno comunicare il calcolatore con l’ambiente esterno Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Esempio di HW di sistema informatico Personal computer: elaboratore dedicato ad un solo utente • Corpo contenente: – unità di elaborazione – memoria centrale – memoria di massa: informazione organizzata in file • Disco fisso(hard disk): inamovibile e di elevata capacità • Floppy disk, chiavi USB, dischi ottici(compact disk o CD-ROM) • Tastiera mouse e video collegati col corpo centrale Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Software • SW di base – dedicato alla gestione dell’elaboratore – opera direttamente al di sopra di HW e firmware – Esempi: • SISTEMA OPERATIVO • Sistema di gestione di basi di dati • Protocolli di comunicazione: garantiscono la corretta comunicazione sui canali di trasmissione che trasportano segnali(tipicamente elettrici), garantendo la trasmissione dei dati tra elaboratore e terminali o tra elaboratori collegati in rete • SW applicativo: – – – – dedicato alla realizzazione di specifiche esigenze applicative Utilizza linguaggi di alto livello opera al di sopra del SW di base Non risentono delle caratteristiche architetturali del sistema informatico:trasportabili Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008 Sistemi Informativi DEE - Politecnico di Bari Sistema Operativo • Funzioni: – Interpreta ed esegue comandi elementari – Organizza le risorse della macchina – Gestisce l’accesso alla rete • Sia che sia venduto dal costruttore del sistema informatico che realizzato da ditte di SW, il SO non può essere modificato dall’utente nelle sue istruzioni ed è necessario come tramite d’uso tra la macchina fisica e l’utente • Complessità crescente con quella del sistema informatico: – In sistemi multi-utente il SO distribuisce le parti del calcolatore tra i vari utenti in maniera apparentemente “dedicata” Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2007-2008