230 likes | 347 Views
1. Introduzione al corso. Ing. Simona Colucci. Informazioni utili. Ing. Simona Colucci: Contatti:
E N D
1. Introduzione al corso Ing. Simona Colucci 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 0761357878email: 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
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
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
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
Programmadel corso • 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 Lezioni in aula: • Architettura dei calcolatori • Codifica binaria delle informazioni • Algebra di Boole • Architettura dei calcolatori • 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 Informatica - CDL in Ingegneria Industriale- A.A. 2012-2013
Informatica • Definizione Scienza della rappresentazione e dell’elaborazione dell’informazione • Definizione AssociationofComputingMachinery(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
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
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
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
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 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
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
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 : - istruzioninon condizionate - istruzionicondizionate: l’esecuzione dipende da una condizione - istruzionidi 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
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
Diagrammi di flusso Condizione? vero falso 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 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
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
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
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
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