Laboratorio di Informatica di Base Riccardo Distasi ricdis@unisa.it Si ringrazia il dott. Ferdinando...

Post on 01-May-2015

245 views 6 download

Transcript of Laboratorio di Informatica di Base Riccardo Distasi ricdis@unisa.it Si ringrazia il dott. Ferdinando...

Laboratorio di

Informatica di Base

Riccardo Distasi

ricdis@unisa.it

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