Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 1. Introduzione al corso Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Informazioni utili Ing. Simona Colucci: Contatti: Dipartimento Dipartimento di Scienze Umanistiche, della Comunicazione e del Turismo (DISUCOM) Indirizzo: Via San Carlo 32 - 01100 Viterbo Tel: + 39 0761357878 email: simona.colucci@unitus.it Ricevimento studenti: Martedì 17:00/18:00 (in aula docenti) Durante i laboratori Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Libri di testo Testi di riferimento: Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola. Informatica: arte e mestiere 3/ed. Mc-Graw-Hill. ISBN: 9788838664298 Alessandro Bellini, Andrea Guidi. Linguaggio C - Guida alla programmazione 4/ed. Mc-Graw-Hill. ISBN: 9788838665790 Manuale operativo Kerningham, Ritchie. Linguaggio C. Jackson Libri, 1989 Manuali online dei programmi usati per lo sviluppo di codice: Dev-C++4 , open source scaricabile da http://www.bloodshed.net/devcpp.html Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Composizione del corso Argomenti teorici di base - oggetto delle lezioni in aula - verificati tramite quesiti ed esercizi della prova scritta - verificati tramite la prova orale Programmazione in linguaggio C - oggetto delle lezioni in aula e delle esercitazioni in laboratorio - verificata tramite problemi della prova scritta Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Modalità d’esame Prova scritta (carta e/o PC): Contiene una parte applicativa mirata alla risoluzione di un problema tramite Programmazione in Linguaggio C. Può contenere quesiti ed esercizi sugli Argomenti Teorici di Base Contenuto obbligatorio per il superamento dell’esame Prova orale Verte su tutto il programma (Argomenti teorici di Base e Programmazione in Linguaggio C) Integra la verifica della conoscenza oggetto della prova scritta Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Attività didattica Lezioni Frontali: in aula Esercitazioni: In laboratorio Due gruppi: Martedì 15:00/17:00 Mercoledì 09:00/11:00 (in alternativa, Giovedì 09:00/11:00) Inizio comunicato in seguito Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Programma del corso Lezioni in aula: Architettura dei calcolatori Codifica binaria delle informazioni Algebra di Boole Algoritmi e strutture dati Programmazione strutturata Programmazione in Linguaggio C Funzioni e Procedure Programmazione Ricorsiva Allocazione Dinamica Strutture dati Architettura dei sistemi informatici Le reti di calcolatori Archivi e basi di dati Il sistema Operativo Esercitazioni: Uso di un elaboratore Uso di un ambiente di sviluppo integrato Progettazione di Algoritmi Codifica di Algoritmi in Linguaggio C Progettazione e Codifica Algoritmi di Ordinamento e Ricerca Uso di funzioni e procedure e gestione dei file Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Esempi di algoritmi Lavaggio di capi resistenti in lavatrice Calcolo dell’imposta IRPEF relativa a un contribuente, dato il reddito lordo e la tabella delle aliquote Calcolo della somma algebrica tra due numeri relativi utilizzando le operazioni di somma e differenza tra numeri senza segno Calcolo del Massimo Comun Divisore(M.C.D.) Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 - I=10% di R - Se R>3600 I=I+12%(R-3600) - Se R>7200 I=I+5%(R-7200) - Se R>15000 I=I+7%(R-15000) - Se R>30000 I=I+7%(R-30000) - Se R>75000 I=I+5%(R-75000) - Se R>150000 I=I+5%(R-150000) - I è l’imposta risultante Inizio-fascia(€) Fine_fascia (€) Aliquota (%) O 3600 10 3600.01 7200 22 7200.01 15000 27 15000.01 30000 34 30000.01 75.000 41 75000.01 150000 46 51 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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| Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 flusso (sequenza di esecuzione o controllo) con segmenti orientati che uniscono i blocchi inizio e fine dell’esecuzione con ellissi Condizione? vero falso Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 Hardware Insieme di elementi funzionali: Unità di elaborazione o processore: esegue i programmi Memoria centrale: memorizza dati e programmi per il funzionamento dell’elaboratore capacità limitata volatile rapido acceso all’informazione Memoria secondaria (o di massa): capacità significativa persistente accesso all’informazione lento Bus di sistema: collega gli elementi funzionali consentendo lo scambio di dati Unità periferiche: fanno comunicare il calcolatore con l’ambiente esterno Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
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 o DVD) Tastiera mouse e video collegati col corpo centrale Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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 risente delle caratteristiche architetturali del sistema informatico:trasportabile Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013 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” Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013