1. Introduzione al corso
Ing. Simona Colucci
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Informazioni utili
Ing. Simona Colucci:
• Contatti:
Dipartimento Dipartimento di Scienze Umanistiche, della
Comunicazione e del Turismo (DISUCOM)
Indirizzo: Via S. M. Gradi, 4 - 01100 Viterbo
Tel: + 39 0761357664
email: [email protected]
• Ricevimento studenti:
– Giovedì 10:00/11 :00(in aula docenti)
– Durante i laboratori
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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/dev/devcpp.html
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
,
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. 2013-2014
Modalità d’esame
• Prova scritta (al PC):
– Contiene una parte applicativa mirata alla risoluzione di un
problema tramite Programmazione in Linguaggio C.
– Contiene 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
(obbligatoria in caso di svolgimento parziale della prova scritta)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Attività didattica
• Lezioni Frontali:
– in aula
• Esercitazioni:
– In laboratorio
– Inizio comunicato in seguito
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
Programma del corso
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
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
Architettura dei sistemi informatici
– Le reti di calcolatori
– Archivi e basi di dati
– Il sistema Operativo
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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. 2013-2014
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.)
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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. 2013-2014
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
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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. 2013-2014
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. 2013-2014
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. 2013-2014
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. 2013-2014
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
input
-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
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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. 2013-2014
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. 2013-2014
Hardware
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
Informatica - CDL in Ingegneria Industriale- A.A. 2013-2014
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. 2013-2014
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. 2013-2014
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. 2013-2014