Laboratorio di Informatica di Base Riccardo Distasi [email protected] Si ringrazia il dott. Ferdinando...
-
Upload
antonia-salerno -
Category
Documents
-
view
244 -
download
6
Transcript of Laboratorio di Informatica di Base Riccardo Distasi [email protected] Si ringrazia il dott. Ferdinando...
Laboratorio di
Informatica di Base
Riccardo Distasi
Si ringrazia il dott. Ferdinando Cicalese per il materiale didattico.
Organizzazione del Corso72 Ore: 36 ore di teoria, 36 ore di Laboratorio (L19)
Modalità d’Esame
2 Prove in itinere:
Novembre [12—23] (Prova Scritta/Laboratorio)
Gennaio/Febbraio [21—01] (Prova in laboratorio)
Febbraio [02—28] Orale
Prova Ordinaria
Febbraio [02—28] (Prova Scritta/Laboratorio + Orale]
Orario di Ricevimento: Lunedì 16-18 (Studio A8)
Orario: Lunedì 14 - 16 (C31)Giovedì 13 - 14 (C38)Venerdì 9 - 12 (L19)
Testi Consigliati
• Teoria– Informatica Istituzioni
•S. Ceri•D. Mandrioli•L. Sbattella
– Editore: McGraw-Hill
Testi Consigliati• Laboratorio
– Concetti di Base/Gestione File• S. Rubini, M. De Marchi
– Ed. Apogeo
– Elaborazione Testi• S. Rubini
– Ed. Apogeo
– Strumenti di Presentazione• S. Rubini
– Ed. Apogeo
Argomenti del Corso
• Concetti di Base della Tecnologia dell’Informazione
• Uso del Computer e Gestione dei File
• Elaborazione Testi
• Strumenti di Presentazione
• Introduzione all’uso di Internet
•ECDL ---- European Computer Driving License
Che cos’è l’INFORMATICA?
1. La Scienza e la Tecnica dei computer
Computer Science ?!?
2. Una delle applicazioni dei calcolatori
Elaborazione Numerica, Gestionale, Grafica
3. La Scienza dell’Informazione
Information Theory ?!? Giornalismo?
Che cos è l’INFORMATICA?
L’Informatica pervade la maggior parte delle attività umane
telecomunicazioni
Medicina
..essa nasce ben prima dell’invenzione del computer
Numeriche
Pubblica Amministrazion
e
Che cos è l’INFORMATICA?
L’Informatica è la Scienza della Rappresentazione e dell’Elaborazione dell’Informazione
Secondo la ACM (Association for Computing Machinery)…
L’Informatica è lo Studio sistematico degli algoritmi che descrivono e trasformano l’Informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione.
Le Aree Disciplinari dell’INFORMATICA?
• Algoritmi e Strutture Dati
• Linguaggi di Programmazione
• Architettura degli Elaboratori
• Sistemi Operativi
• Elaborazione di Immagini e Sistemi Multimediali
•
•
Definizione di Algoritmo
Informalmente: Un algoritmo è una sequenza di passi che portano alla realizzazione di un compito
Un Algoritmo per fare il Caffè
1. Prendi la moka dalla credenza
2. Svita il serbatoio
3. Riempi il serbatoio di acqua
4. Riempi il filtro con il caffè
5. Riavvita la moka e mettila sul fornello acceso
Definizione di Algoritmo
1. Prepara 500 gr. di Crema Inglese2. Prepara un disco alto 6 cm. di Pan di Spagna
4. Disponi la crema sul disco di Pan di Spagna
Un algoritmo per la preparazione della Zuppa Inglese
3. Monta 500 gr. di Panna
… … …Questo è un algoritmo utile
solo ad un cuoco!!
Definizione di Algoritmo
1. Input
2. Output
4. Finitezza della sequanza
Una definizione più precisa:
3. Istruzioni Definite
Un algoritmo è una sequenza finita di istruzioni che, quando eseguite, svolgono un ben determinato compito. Gli elementi fondamentali di ogni algoritmo sono:
5. Efficacia
Le istruzioni devono essere chiare e comprensibili a chi dovrà eseguire l’algoritmo
L’algoritmo deve terminare
Un programma può andare in loop Ogni istruzione
deve essere sufficientemente
elementare; eseguibile
Somma di due Numeri con un Pallottoliere
L’Algoritmo della Somma
1. Sposta una pallina da sinistra a destra della prima riga e una da destra a sinistra nella terza riga
3. Sposta una pallina da sinistra a destra della seconda riga e una da destra a sinistra nella terza riga
2. Ripeti 1. fino ad esaurire la prima riga
4. Ripeti 3. fino ad esaurire la seconda riga.
Il risultato è il numero di palline a sinistra sulla terza riga
Somma di due Numeri con un Pallottoliere
1. Sposta una pallina da sinistra a destra della prima riga e una da destra a sinistra nella terza riga
2. Ripeti 1. fino ad esaurire la prima riga3. Sposta una pallina da sinistra a destra della seconda riga e una da destra a sinistra nella terza riga fino ad esaurire la seconda riga
Consultazione di una Carta Topografica
Barcellona
Parigi
Praga
Berlino
Roma
Vienna
Milano
Budapest
Marsiglia
Bordeaux
Consultazione di una Carta Topografica
1. Costruire tutte le
sequenze di città tra
Barcellona e Praga2. Per ogni sequenza si calcoli la somma delle distanze tra città adiacenti.3. Si scelga la sequenza la cui somma delle distanze sia minima
Barcellona
Parigi
Praga
Berlino
Roma
Vienna
Milano
Budapest
Zurigo
Marsiglia
Bordeaux
1. Costruire tutte le sequenze di città tra Barcellona e
Praga
Barcellona
Parigi
Praga
Berlino
Roma
Vienna
Milano
Budapest
Zurigo
Marsiglia
Bordeaux
Sequenze di Lunghezza 1 : {Barcellona}
Sequenze di Lunghezza 2 : {Barc, Bord} {Barc, Mars} Sequenze di Lunghezza 3 :
Sequenze di Lunghezza 2 : {Barc, Bord} {Barc, Mars}
{Barc, Bord,Pari}
{Barc, Bord,Mars}
{Barc, Bord,Pari}
{Barc, Bord,Mars}
Sequenze di Lunghezza 2 : {Barc, Bord} {Barc, Mars}
{Barc, Mars,Pari} {Barc, Mars,Bord} {Barc, Mars,Zuri}
1. Costruire tutte le sequenze di città tra Barcellona
e Praga
Barcellona
Parigi
Praga
Berlino
Roma
Vienna
Milano
Budapest
Zurigo
Marsiglia
Bordeaux
Sequenze di Lunghezza 1
Sequenze di Lunghezza 2
Sequenze di Lunghezza n
Sottoproblema
.. .Induzione
Linguaggi di Programmazione(Linguaggi per la Codifica degli algoritmi)
Linguaggio Macchina (fino agli anni ’50)
Assembler
FORTRAN e COBOL
ALGOL 60
Pascal, C, Ada,…
LISP e PROLOG
Linguaggi a oggetti e Linguaggi Visuali
Architettura di un Sistema Informatico
Hardware:
i componenti fisici del sistema informatico
Software:
i programmi eseguiti dal sistema informatico
Microprogrammi (Firmware):
software memorizzato nell’hardware dal costruttore stesso
Architettura di un Calcolatore(Hardware - Architettura di Von
Neumann)
Unità di Elaborazione (CPU)
Memoria Centrale (RAM e ROM)
Memoria Secondaria o Memoria di Massa (DISCHI)
Unità Periferiche (Video, Tastiera, etc.)
Il Bus di Sistema
CPUMemoriaPeriferiche
BUS
Il Personal ComputerArchitettura di Von Neumann
• IL CASE– CPU (Central Processing Unit)
» Unità Centrale di Elaborazione
– RAM (Random Access Memory)» Memoria Centrale
– ROM (Read Only Memory)» Memoria Centrale
– HD (Hard Didk)» Memoria di Massa (Disco Rigido)
Altri Sistemi Informatici
Workstations, mini-computer, mainframe
Reti di calcolatori
•Reti locali (LAN)
•Reti Geografiche
Un sistema Informatico Complesso
Rete Geografica
Rete Locale
Il Software
Software di Base (Sistema Operativo)
Software Applicativo (Office Automation)
Software di Sviluppo (Ambiente di
Programmazione)
Software di BaseIl Sistema Operativo
Interpretare ed eseguire comandi elementari e
tradurre i comandi degli applicativi in operazioni della
macchina
Organizzare la struttura della memoria di massa
Ripartire le risorse del sistema tra gli utenti.
(Multiuser – Multitasking)
Ambiente di Programmazione
Editor
Compilatore
Linker
Debugger
Per Scrivere fisicamente il programma
Traduce i programmi in codice oggetto, eseguibile
dal calcolatore Collega diversi moduli di un programma, e le cosiddette librerie, producendo il vero e
proprio eseguibile
Permette di interrompere l’esecuzione del programma
dopo ogni istruzione per correggere eventuali errori
(bug)
Applicativi
• Sistemi di Videoscrittura
• Fogli Elettronici
• Sistemi per la gestione di DataBase
• Ipertesti
• Browser
CODIFICA DELL’INFORMAZIONE
Bit 0/1 (si/no)
Byte 00010010 (8 bit)
Kilobyte 210 = 1024 byte
Megabyte 220 ~ 1.000.000 byte
Gigabyte 230 ~ 1.000.000.000 byte
(Codifica Binaria)
Rappresentazione dei NaturaliN = 0,1,2,…
La Notazione Posizionale (in base p)
Np an an-1 an-2 … a1 a0
Np = an x pn + an-1 x pn-1 + … + a1 x p + a0
Esempio (base 10)
543 = 5 x 102 + 4 x 101 + 3 x 100 = 500 + 40 + 3
Rappresentazione dei NaturaliN = 0,1,2,…
La Notazione Additiva (numeri romani)
Np an an-1 an-2 … a1 a0 Np = an + an-1 + … + a1 + a0 I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
Esempio
DCCCII = D + C + C + C + I + I = 500 + 100 + 100 + 100 + 1 + 1
= 532
Le Notazioni Usate in Informatica
Binaria (base 2) ai = 0,1
Ottale (base 8) ai = 0,1,2,3,4,5,6,7
Esadecimale (base 16) ai = 0,1,2,…,9,A,B,C,D,E,F
Decimale Binaria Ottale Esadec.
10 1010 12 A
124 1111100 174 7C
N2 = 101010
N10 = 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20
= 32 + 8 + 2 = 42
Codifica e decodifica(Da binario a decimale e
viceversa)
N2 = 11011
N10 = 20 +
21 +
23 +
24 = 1 + 2 + 8 + 16 = 27
N10 = 51 N2 = ???
Codifica e decodifica(Da decimale a binario)
51 2251 2
121 260 2
30 211 21 0N2 = 110011
51 = 2x25+1 = 2x(2x12+1)+1 = 2x(2x(2x6+0)+1)+1 =
= 2x(2x(2x(2x3+0)+0)+1)+1 =
= 2x(2x(2x(2x(2x1+1)+0)+0)+1)+1 = 25+24+21+20
N2 = 1 0 0 1 1 0 1 1 1 1 0
Da Binario a Ottale/Decimale
N8 = 2 3 3 6 N16 = 4 D E
Per trasformare un numero binario in ottale, operiamo la trasformazione considerando gruppi di 3 bitPer trasformare un numero binario in esadecimale, operiamo la trasformazione considerando gruppi di 4 bit
Rappresentazione degli InteriN = 0,+1,-1,+2,-2,+3,-3,…
Come possiamo rappresentare il segno di un numero?
Aggiungiamo un ulteriore bit che poniamo a 1 se il numero è negativo!
Esempio
N10 = +14 N2 = 01110
N10 = -14 N2 = 11110
Con k bit si possono codificare tutti gli interi
-2k-1+1 N 2k-1-1
Esistono due codifiche dello 0
0000…0 1000…0
Rappresentazione degli Interi (Rappresentazione in complemento a 2)
Supponiamo di avere a disposizione k bit
La rappresentazione di –N si ottiene facendo la conversione in binario del numero 2k-N
Esempio (con 5 bit)
N10 = +14 N2 = 01110
N10 = -14 2k-14 =18 N2 = 10010
Con k bit si possono codificare tutti gli interi
-2k-1 N 2k-1-1
0000…02 010
1 000…02 -2k10
Overflow
Aritmetica Binaria
Somma e differenza di due numeri di k bit
1 1 1
1 0 0 1 1
1 1 0 1 1
0 1 1 1 0
Riporto:
OverflowNon è Overflow
-2 1 1 1 1 0
+13 0 1 1 0 1
+11 1 0 1 0 1 1
Aritmetica Binaria
Somma e differenza in complemento a 2 di due numeri di k bit
+6 0 0 1 1 0
+4 0 0 1 0 0
+10 0 1 0 1 0
+7 0 0 1 1 1
-10 1 0 1 1 0
-3 1 1 1 0 1
-12 1 0 1 0 0
-7 1 1 0 0 1
+11 1 0 1 1 0 1
Operazioni Logiche
OR 0 1
0 0 1
1 1 1
AND 0 1
0 0 0
1 0 1
NOT
0 1
1 0
Circuiti Logici
x1
x2
S
R
AND
NOT
AND
OR
NOT
AND
(Semiaddizionatore)
S = (x1 AND NOT(x2)) OR (x2 AND NOT(x1))
R = x1 AND x2
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
Codifica dei Caratteri
I caratteri di un testo sono codificati come sequenze di bit
I codici storici sono
ASCII 7 bit (American Standard Code for Inform. Interchange)
EBCDIC 8 bit
BCD 4 bit
ISO (ISO-Latin 1)Oggi: UNICODE