CORSO DI
INTRODUZIONE
ALL’INFORMATICA
Ing. Giovambattista Ianni
E-Mail:
Indirizzo:
[email protected]
Dipartimento di Matematica,
Università della Calabria
87036 Rende (Cosenza)
Tel. Ufficio: 0984 - 496430
1
PROGRAMMA DEL CORSO
LEZIONI
 Introduzione
 Introduzione agli algoritmi
 Rappresentazione delle Informazioni
 Architettura del calcolatore
 Reti di Calcolatori (Reti Locali, Internet)
 Elementi di Programmazione
2
PROGRAMMA DEL CORSO
LABORATORIO
Ambiente Operativo Windows
Elaborazione dei Testi
Strumenti e Servizi Internet
Fogli Elettronici
3
Prove di Accertamento:
• Scritto (teoria) +
• Prova Pratica (laboratorio)
4
TESTI CONSIGLIATI:

Sciuto, Bonanno, Fornaciari, Mari
Introduzione ai Sistemi Informatici
McGraw-Hill 1997

Curtin, Foley, Sen, Morris
Informatica di Base
McGraw-Hill 1999
5
INTRODUZIONE
AGLI ALGORITMI
6
ALCUNE DOMANDE
FONDAMENTALI





Quali istruzioni esegue un elaboratore?
Quali problemi può risolvere un
elaboratore?
Esistono problemi che un elaboratore
non può
risolvere?
Che ruolo ha il linguaggio di
programmazione?
7
Il PROBLEMA DI FONDO




Come si costruisce la soluzione a un
problema?
Qual è il giusto “punto di partenza” per
pensare la
soluzione a un problema?
Quali metodologie e tecniche usare?
8
ALCUNI CONCETTI CHIAVE
ALGORITMO
Sequenza finita di mosse che risolve in un tempo finito una
classe di problemi.
Codifica
Fase di scrittura di un algoritmo attraverso un insieme
ordinato di frasi (“istruzioni”), scritte in un qualche
linguaggio di programmazione, che specificano le
azioni da compiere.
Esecuzione
L'esecuzione delle azioni nell'ordine specificato dall'algoritmo
consente di ottenere, a partire dai dati di ingresso, i
risultati che risolvono il problema.
9
ESECUZIONE
10
ALGORITMO E PROGRAMMA
• Ogni elaboratore è una macchina in grado di eseguire
azioni elementari su dati
• L'esecuzione delle azioni elementari è richiesta
all'elaboratore tramite comandi chiamati istruzioni
• Le istruzioni sono espresse attraverso frasi di un
opportuno linguaggio di programmazione
• Un programma non è altro che la formulazione testuale
di un algoritmo in un linguaggio di programmazione
11
ESEMPIO DI PROGRAMMA
Sub SOMMA( )
Dim A, B as Integer
A = InputBox("Immetti un numero")
B = InputBox(“Immetti un secondo
numero”)
Print “Somma:”; A+B
End Sub
12
ALGORITMI: PROPRIETA’
FONDAMENTALI
1) Eseguibilità: ogni azione deve essere
eseguibile da parte dell’esecutore
dell’algoritmo in un tempo finito
2) Non-ambiguità: ogni azione deve essere
univocamente interpretabile dall'esecutore
3) Finitezza: il numero totale di azioni da
eseguire, per ogni insieme di dati di
ingresso, deve essere finito.
13
ALGORITMI EQUIVALENTI
Due algoritmi si dicono equivalenti quando:
• hanno lo stesso dominio di ingresso;
• hanno lo stesso dominio di uscita;
• in corrispondenza degli stessi valori nel dominio di
ingresso producono gli stessi valori nel dominio di
uscita.
14
ALGORITMI EQUIVALENTI
Due algoritmi equivalenti:
• forniscono lo stesso risultato
• ma possono avere diversa efficienza
• e possono essere profondamente diversi !
Esempio: moltiplicare tra loro due numeri
Algoritmo 1
Somme successive:
12x12 = 12+12+…+12=144
Algoritmo 2
“somma e shift”:
12x
12=
24
12=
144
15
CI SONO COSE CHE UN
CALCOLATORE NON PUÓ FARE?


Sì. Ci sono problemi non calcolabili da
nessun modello di calcolo reale o astratto
Esempio: data una funzione f : N N,
stabilire se f(x) è costante per ogni valore di
x
16
RAPPRESENTAZIONE
DELLE INFORMAZIONI
17
RAPPRESENTAZIONE DELLE
INFORMAZIONI
Idea di fondo: Usare
presenza/assenza di carica elettrica
passaggio/non passaggio di corrente/luce

BInary digiT (cifra binaria): il BIT
Usiamo cioe’ una rappresentazione binaria
(a due valori) dell’informazione
18
INFORMAZIONI COMPLESSE
Con 1 bit rappresentiamo solo 2 diverse
informazioni:
si/no - on/off - 0/1
Mettendo insieme piu’ bit possiamo
rappresentare piu’ informazioni:
00 - 01 - 10 - 11
19
INFORMAZIONI COMPLESSE
In generale, con N bit, ognuno dei quali puo’
assumere 2 valori, possiamo rappresentare 2N
informazioni diverse
viceversa:
Per rappresentare M informazioni dobbiamo
usare N bit, in modo che: 2N >= M
20
ESEMPIO:
Per rappresentare 57 informazioni diverse
dobbiamo usare gruppi di almeno 6 bit. Infatti:
26 = 64 > 57
Cioe’ un gruppo di 6 bit puo’ assumere 64
configurazioni diverse:
000000 / 000001 / 000010 …/ 111110 / 111111
21
IL BYTE:
In informatica ha assunto particolare
importanza il concetto di:
byte = 8 bit = 28 = 256 inf. diverse
Il byte e’ usato come unita’ di misura per
indicare le dimensioni della memoria, la
velocita’ di trasmissione, la potenza di un
elaboratore
Usando sequenze di byte (e quindi di bit) si
possono rappresentare caratteri, numeri
immagini, suoni.
22
IL SISTEMA DECIMALE
10 cifre di base: 0, 1, 2, …, 9
 Notazione posizionale: la posizione di una cifra in
un numero indica il suo peso in potenze di 10. I
pesi sono:

– unita’
= 100 = 1
(posiz. 0-esima)
– decine = 101 = 10 (posiz. 1-esima)
– centinaia
= 102 = 100
(posiz. 2-esima)
– migliaia
= 103 = 1000
(posiz. 3-esima)
– …
..
..
..
..
..
...
23
ES. DI NUMERO RAPPR. IN
NOTAZIONE DECIMALE
Il numerale 2304 in notazione decimale
(o in base 10) rappresenta la quantita’:
2304 = 2*103 + 3*102 +0*101 + 4*100 =
2000 + 300 + 0 + 4 = 2304 (numero)
Nota: numero e numerale qui coincidono, perche’ il
sisema decimale e quello adottato come sistema di
riferimento.
24
IL SISTEMA BINARIO
2 Cifre di base: 0 e 1.
 Notazione posizionale: la posizione di una cifra in
un numero binario indica il suo peso in potenze di
2. I pesi sono:

– 20 = 1 (posiz. 0-esima)
– 21 = 2 (posiz. 1-esima)
– 22 = 4 (posiz. 2-esima)
– 23=8; 24=16; 25=32; 26=64; 27=128; 28=256; 29=512; 210
= 1024; 211=2048, 212=4096;...
25
ES. DI NUMERO RAPPR. IN
NOTAZIONE BINARIA
Il numerale 10100101 in notazione binaria (o in
base 2) rappresenta la quantita’:
10100101
1*27+0*26+1*25+0*24+0*23+1*22+0*21+1*20
128 + 0 + 32 + 0 + 0 + 4 + 0 + 1 =
165 (numero)
26
IL NUMERO PIU’ GRANDE
RAPPRESENT. CON N CIFRE
 Sist.
Decimale = 99…99 = 10N - 1
 Sist.
Binario= 11..11 = 2N - 1
 Esempio:
11111111 (8 bit binari) = 28 -1 =
255. Per rappresentare il n. 256 ci vuole un
bit in piu’: 100000000 = 1*28 = 256.
27
QUINDI:
Fissate quante cifre (bit) sono usate per
rappresentare i numeri, si fissa anche il numero piu’
grande che si puo’ rappresent.:
– con 16 bit: 216 - 1 = 65.535
– con 32 bit: 232 - 1 = 4.294.967.295
– con 64 bit: 264 - 1 = circa 1,84 * 1019
Pero’: si possono rappresentare numeri piu’ grandi se
si tollera un certo grado di imprecisione.
28
CONVERSIONE DA BASE 2 A 10
Basta moltiplicare ogni bit per il suo peso e sommare
il tutto:
Esempio:
10100
1*24 + 0*23 + 1*22 + 0*21 + 0*20 =
16 + 4 = 20
la conversione e’ una somma di potenze
(N.B. se il numero binario termina per 1 e’ dispari altrimenti e’
pari).
29
CONVERSIONE DA BASE 10 A 2
Dividere il numero per 2 ripetutamente
il risultato non e` 0


finche`
Scrivere i resti in ordine inverso.
Esempio: conversione del numero 12
Divisioni: 12/2 = 6/2 = 3/2 = 1/2 = 0
Resti:
0
0
1
1
12 = 1100
30
CONVERSIONE DA BASE 10 A 2
Idea di fondo: usare le potenze di 2 che,
sommate, danno il numero N da convertire:
– Prendere le potenze di 2 <= di N nell’ordine dalla
piu’ grande alla piu’ piccola (cioe’ 20)
– Associare il bit 1 alle potenze che vengono usate
nella somma per ricostruire N
– Associare il bit 0 alle potenze non usate.
31
ESISTONO ANCHE ALTRE BASI DI
NUMERAZIONE:

CODICE OTTALE
– cifre: 0, 1, 2, 3, 4, 5, 6, 7
– 10 (ottale) = 8 (decimale)

CODICE ESADECIMALE
– cifre: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
– 10 (esadecimale) = 16 (decimale); B = 11;
2B=2*161+B*160 = 32+11 = 43
32
RAPPRESENTAZIONE DI
NUMERI POSITIVI E NEGATIVI

Il bit piu` a sinistra rappresenta il segno del
numero: 0 = ‘+’
1 = ‘-’
1101 = -5

Con un byte possiamo rappresentare tutti i numeri
compresi tra
+128 (01111111) e –128 (11111111)
33
RAPPRESENTAZIONE DI
NUMERI FRAZIONARI IN
VIRGOLA FISSA
Un numero frazionario e’ rappresentato come
una coppia di numeri interi: la parte intera e
la parte decimale.
12,52
<12; 52>
<1100; 110100>
34
NUMERI A VIRGOLA MOBILE
(NUMERI FLOATING POINT)
Idea: 12,52 = 1252/100 = 1252 * 10-2
Un numero decimale e’ rappresentato come un
intero moltiplicato per una opportuna potenza di
10, cioe’ con una coppia:
<1252; -2>
mantissa
esponente
35
NUMERI FLOATING POINT
E’ necessario stabilire quanti bit assegnare alla
mantissa e all’esponente.
Ad esempio, con 16 bit a disposizione possiamo
usarne 12 per la mantissa e 4 per l’esponente
(in realta’ dovremmo anche tener conto dei segni)
36
NUMERI FLOATING POINT
Con lo stesso metodo possiamo rappresent.
Numeri molto grandi. Ad esempio, con 8 bit:
5 bit di mantissa: 11111 = 31
3 bit di esponente: 111 = 3
11111111 = 31 * 107 = 310 milioni
Mentre, con la notazione classica, con 8 bit
rappresentiamo al massimo il n. 255
37
NUMERI FLOATING POINT
Ma allora, perche; non usare sempre la
notazione floating point?
Perche’ si perde in precisione
Esempio: 5 cifre (decimali) : 4 per la mantissa,
1 per l’esponente. Rappresentare
312,45
<3124; -1> = [312,4 .. 312,5]???
38
NUMERI FLOATING POINT
Quindi: possiamo rappresentare numeri molto
grandi o con molti decimali al costo di una
perdita di precisione
Perche’? Perche’ i computer permettono solo
rappresentazioni finite, e cosi’ dobbiamo
approssimare alcuni numeri (ad esempio gli
irrazionali), ma anche immagini e suoni
39
LA CODIFICA DEI CARATTERI
E’ necessario convenire un codice per
rappresentare i caratteri.
Il codice ASCII (American Standard Code for
Interchange Code) usa i primi 7 bit di ogni byte:
27 = 128 caratteri diversi
Sufficienti per l’alfabeto anglosassone
40
ALTRI CODICI DI CODIFICA

ASCII ESTESO
– Usa anche il primo bit di ogni byte
– 256 caratteri diversi
– non e’ standard (cambia con la lingua usata)

UNICODE
– standard proposto a 16 bit (65.536 caratteri)

EBCDIC
– altro codice a 8 bit della IBM (quasi in disuso)
41
NUMERI IN ASCII
Le cifre 0..9 rappresentate in Ascii sono simboli
o caratteri NON quantita’ numeriche
Non possiamo usarle per indicare quantita’ e
per le operazioni aritmetiche. (Anche nella vita
di tutti giorni usiamo i numeri come simboli e
non come quantita’: i n. telefonici)
42
CODIFICA DELLE IMMAGINI B/N

Dividere l’immagine in una griglia a righe orizzontali
e verticali

Ogni quadratino della griglia e’ un pixel

Codificare ogni pixel con:
– 0 se il pixel e’ bianco
– 1 se il pixel e’ nero

Convenire un ordinamento per i bit usati nella
codifica
43
CODIFICA DELLE IMMAGINI
Quindi: le immagini sono rappresentate con un certo
livello di approssimazione, o meglio, di risoluzione,
ossia il numero di pixel usati per riprodurre
l’immagine:
– 640 x 480 pixel; 800 x 600 pixel
– 1024 x 768 pixel; 1280 x 1024 pixel
N.B. Ha importanza anche il dot pitch, il grado di
definizione del pixel: 0,25 - 0,28)
44
CODIFICA DELLE IMMAGINI
- Anche il colore e’ approssimato. Per il bianco e nero, con 8
bit si codificano 256 livelli di grigio. (ottenuti regolando la
luminosita’ del pixel)
- Per i video a colori, con 8 bit si rappresent. 256 colori, con
16 bit 64.000 colori, con 24 bit 16 milioni di colori diversi per
pixel
- BITMAP: la rappresentazione di una immagine con codifica
dei pixel. Porta via molto spazio:
(immagine a 640 x 480 x 256 c.=307.200 Byte)
45
CODIFICA DELLE IMMAGINI
- E’ possibile risparmiare spazio nella rappr.
delle immagini: Aree dello stesso colore si
rappresentano in modo “abbreviato”.
- Esistono vari formati di codifica:
(bmp, gif, jpg, pict, tiff)
- E’ in genere possibile passare da un formato
ad un altro.
46
CODIFICA VETTORIALE
DELLE IMMAGINI
 Istruzioni
su come disegnare l’immagine
p.e.: Linea dal punto <10;12> a <20; 30>
 Idonea per immagini di tipo geometrico (p.e.,
progetti ingegneristici).
 Richiede poco spazio.
 Il formato piu` diffuso e` il PostScript
(ps, eps) - anche per la stampa dei testi
 Altri formati: wmf, cdr (CorelDraw)
47
CODIFICA DEI FILMATI
 Sono
sequenze di immagini compresse: (ad
esempio si possono registrare solo le
variazioni tra un fotogramma e l’altro)
 Esistono vari formati (compresi i suoni):
– mpeg (il piu’ usato)
– avi (microsoft)
– quicktime (apple)
– mov
 E’
possibile ritoccare i singoli fotogrammi
48
CODIFICA DEI SUONI
L’onda sonora viene misurata (campionata)
ad intervalli regolari
Minore e l’intervallo di campionamento e
maggiore e la qualita’ del suono
CD musicali: 44000 campionamenti al secondo, 16 bit
per campione.
49
CODIFICA DEI SUONI
Alcuni formati:
• ---.mov
• ---.wav
• ---.mpeg, ---.avi,
• formato midi usato per l’elaborazione
della musica al computer
50
IL CONCETTO DI FILE
FILE: sequenza di byte conosciuta nel computer
con un certo nome.
TIPI DI FILE:
– file di dati (es: immagini o suoni)
– programmi (es: word o explorer)
– file di testo (cioe’ caratteri ascii)
ESTENSIONI DI UN FILE (windows95/98)
– nome.gif, nome.exe, nome.doc, ...
51
LA STRUTTURA DEI FILE (?)
E’ meglio vedere un file come una sequenza di
byte. E’ il programma che usa
il file a gestirne il contenuto in modo corretto.
Ad esempio, nei file di testo quando viene
incontrato il byte = <new line> si devono
visualizzare i caratteri successivi nella
riga sottostante.
52
ARCHITETTURA DEI
CALCOLATORI
53
ARCHITETTURA DEI COMPUTER
(L’HARDWARE!!!)
 Processore
 Memoria
(CPU)
Principale (o Primaria o RAM)
 Memoria
di Massa (o secondaria, il famoso
hard disk, ma anche nastri, CD)
 Dispositivi
di Input/Output (video, tastiera,
stampanti,…)
54
FUNZIONAMENTO
 Programmi
e dati risiedono in file memorizzati
in memoria secondaria.
 Per essere eseguiti (i programmi) e usati (i
dati) vengono copiati nella memoria primaria.
 La cpu e’ in grado di eseguire le istruzioni di
cui sono composti i programmi
55
LA MEMORIA PRINCIPALE
Sequenza di celle di memoria
 Ogni cella memorizza un byte
 Fisicamente e’ fatta di componenti elettronici
(transistors) miniaturizzati
 Ogni unita’ elementare puo’ trovarsi a due diversi
livelli di tensione elettrica: ecco il corrispettivo
fisico del bit

56
LA MEMORIA PRINCIPALE
 Le
celle sono numerate in sequenza: il
numero di ogni cella costituisce il suo
indirizzo
 Specificando l’indirizzo di una cella, la cpu e’
in grado di leggere e/o modificare il valore del
byte memorizzato in quella cella
 Random Access Memory (RAM), perche’ ogni
cella e’ indirizzabile direttamente.
57
LA MEMORIA PRINCIPALE
(LA RAM)
0
1
2
3
...
65.536
00101111
11001101
01010100
11111101
…………..
10000110
58
DIMENSIONI DELLA RAM
 Spazio
di indirizzamento: insieme o numero
delle celle indirizzabili direttam.
 Il numero di celle indirizzabili e’ una potenza
di due. Con:
– 16 bit si indirizzano 216 celle = 65.536 celle
– 32 bit si indirizzano 232 = 4.294.967.296 celle
– …..
59
UNITA’ DI MISURA DELLA MEMORIA

Si usano delle unita’ di misura per indicare la
dimensione della memoria:
– kilobyte (KB) = 1024 byte (210 byte)
– megabyte (MB) = 1000 KB (220 B)
– gigabyte (GB) = 1 miliardo di byte

Quindi:
– con 16 bit si indirizzano 64KB di memoria
– con 32 bit si indirizzano 4GB di memoria
60
DIMENSIONI TIPICHE DELLA RAM
 Nei
Personal computer:
– 8, 16, 32, 64, 128 Megabyte
– una volta era un lusso avere 64 KB
 Nei
Mainframe/Workstations:
– 32, 64, 128, 256, …., Megabyte
 Ricordatevi
che la memoria e’ espandibile
(fino ad un certo limite)
61
ALTRE INFO. SULLA RAM: LA
PAROLA O WORD
 La
parola (word) di un computer:
quanti bit possono essere letti/scritti/usati
dalla cpu con un unico accesso alla memoria
(16, 32, 64, 128 bit)
 Piu’
grande e la parola, maggiore e’ la
potenza del computer (vedasi le
playstations)
62
ALTRE PROPRIETA’ DELLA RAM
 La
ram e’ veloce: per leggere/scrivere una
cella ci vogliono, in media 5--30 nanosecondi
(millesimi di milionesimi di secondo = 30 *
10-9)
 la ram e’ volatile: e’ fatta di componenti
elettronici, e se togliete l’alimentazione
perdete tutto
 La ram e’ costosa (relativamente)
63
LA MEMORIA SECONDARIA
(L’HARD DISK)

Programmi e dati risiedono normalmente in memoria
secondaria.

Quando si lancia un programma questo viene copiato
dalla memoria secondaria (di solito un hard disk) in
memoria primaria. Questa operazione si chiama
caricamento (eseguita dal sistema operativo).
64
L’HARD DISK:
 E’
fatto di supporti magnetici permamenti,
gestiti mediante dispositivi meccanici.
 Tempi di accesso dell’ordine dei
micro/millisecondi.
 Spazio disponibile:
– Hard disk:2, 4, 5, 6, 8, 10 Gigabyte
(una volta era un lusso avere 20 Megabyte)
– Floppy disk (3.5”): 1.44 Megabyte
(obsoleto ma, incredibilmente, ancora in uso)
65
I BLOCCHI DELL’HARD DISK
 Nell’hard
disk la memoria e’ organizzata in
blocchi di dimensione fissa (512B,
1KB,2KB,..) indirizzabili direttamente
 La lettura/scrittura del disco avviene sempre
in blocchi, per risparmiare tempo (pensate al
tempo perso se si dovesse leggere un byte
per volta!)
 Il disco e’ quindi formattato in blocchi
66
MEMORIA PRIMARIA
VS
MEMORIA SECONDARIA
RAM
veloce (nanosec)
piccola (Megabyte)
volatile
HARD DISK
lenta (microsec)
grande (Gigabyte)
permanente
Notate che, in teoria, il computer potrebbe
funzionare con la sola ram o il solo harddisk
67
NASTRI MAGNETICI, CD
 A parte
le diverse tecnologie di costruzione
sono anch’essi organizzati in blocchi (att.
Non i CD musicali)
 Nastri: accesso sequenziale, e quindi molto
lento. Vengono usati soprattutto per i backup,
perche sono i supporti piu’ economici.
 CD: spesso sono solo leggibili
68
IL PROCESSORE - CPU
(CENTRAL PROCESSING UNIT)
 Si
occupa di eseguire i programmi che sono
scritti in linguaggio macchina
I
programmi sono fatti di istruzioni
 le
istruzioni sono operazioni elementari:
– somma due numeri, confronta due numeri,
69
LE ISTRUZIONI MACCHINA
Codice istruzione | argom. 1 | argom. 2
•16 o 32 bit di lunghezza
•gli argomenti possono mancare
70
IL SET DI ISTRUZIONI MACCHINA

Ogni tipo di processore e’ in grado di eseguire un
numero limitato (40/100) di istruzioni

Istruzioni aritmetiche, logiche, di spostamento, di
lettura/scrittura in memoria, di salto.

Combinando in modo diverso sequenze anche
molto lunghe di istruzioni (i programmi) si possono
far fare al computer tantissime cose completamente
diverse
71
LE COMPONENTI DELLA CPU: LA
CONTROL UNIT (CU)
 Esegue
in modo ciclico:
– preleva dalla memoria centrale la prossima
istruzione da eseguire;
– preleva gli operandi specificati nelll’istruzione
– esegui l’istruzione
– ripeti tutto
 Alla
velocita’ del clock (300, 400,... MHz) (es.:
300 milioni di cicli al secondo)
72
LE COMPONENTI DELLA CPU: I
REGISTRI
 piccole
unita’ di memoria (2, 4, 8 byte) con
tempi di accesso molto piu’ bassi delle celle
della memoria primaria
 Ospitano le informazioni necessarie per
eseguire l’istruzione corrente
 In numero molto limitato (10, 20, 64) si
dividono in registri speciali e generali
73
LE COMPONENTI DELLA CPU: I
REGISTRI SPECIALI

Il Program Counter (PC)
– contiene l’indirizzo in memoria centrale della prossima
istruzione da eseguire.
– All’inizio dell’esecuzione di un programma viene
caricato con l’indirizzo della prima istruzione di quel
programma.
– Ad ogni struzione eseguita viene il PC viene modificato
per contenere l’indirizzo della istruzione successiva
74
LE COMPONENTI DELLA CPU: I
REGISTRI SPECIALI

L’Instruction Register (IR):
– contiene l’istruzione correntemente in esecuzione
– la CU legge l’istruzione contenuta nell’instruction
register e la esegue

IL Registro di stato (PS - Progr. status)
– descrive lo stato corrente della esecuzione
– segnala eventuali errori (ad es.: overflow)
75
LE COMPONENTI DELLA CPU:
I REGISTRI SPECIALI

Registro Indirizzi Memoria (RIM)
– contiene l’indirizzo della cella da cui leggere o in
cui scrivere un dato
 Registro
dati Memoria (RDM)
– contiene il dato letto dalla memoria o da scrivere
in memoria
76
LE COMPONENTI DELLA CPU:
I REGISTRI GENERALI
I
registri generali:
–in numero di 8, 16, 64
–sono usati come memorie temporanee per
contenere gli operandi delle istruzioni e i
risultati parziali durante l’esecuzione delle
istruzioni.
77
LE COMPONENTI DELLA CPU: LA
ARITHMETIC-LOGIC UNIT (ALU)
 Si
occupa di eseguire le operazioni di tipo
aritmetico/logico: somme, confronti…
 preleva gli operandi dai / deposita il risultato
delle operazioni nei: registri gen.
 A volte e’ affiancata da un co-processore
matematico
78
UN PROGRAMMA IN LINGUAGGIO
MACCHINA (ASSEMBLER)
1000
1004
1008
1012
1016
LOAD 3568 R1
LOAD 3574 R2
ADD R1 R2
STORE R1 3568
JUMP 1000
…….
79
LA MEMORIA CACHE
livello di memoria intermedio tra i registri e la ram.
 per memorizzare i dati usati piu’ spesso senza
doverli recuperare im memoria
 64KB, 128KB, 256KB, 512KB
 interna o esterna alla CPU
 Influisce moltissimo sulle prestazioni e il costo della
CPU (e quindi del computer)

80
MEMORIE DI UN COMPUTER
Registri
16/64 Byte
100 * picosec.
Cache
128/512 KB nanosecondi
RAM
16/256 MB
10 * nanosec
Hard disk
2/10 GB
10 * microsec.
Nastri
> 10 GB
millisecondi
81
DISPOSITIVI DI INPUT/OUTPUT
(I/O, PERIFERICHE)
 Terminali.
Tastiera + Video:
– risoluzione, dimensione in pollici,…
 Stampanti:
– ad aghi, a getto, d’inchiostro, laser,…
 Modem:
per collegarsi in rete
 Scanner: per digitalizzare le immagini
82
I PROGRAMMI (IL SOFTWARE!!!)
 Qualcosa
di assolutamente immateriale,
memorizzato mediante supporti magnetici
ed elettronici che dice al computer cosa fare
 Il computer e’ programmabile. Usando
programmi (sequenze di istruzioni) diversi,
gli facciamo fare cose diverse
83
IL SOFTWARE DI BASE
 Si
ma: dobbiamo impartire ordini al computer
usando solo il codice binario???
 Ovviamente no: il computer e’ dotato di alcuni
programmi (il software di base) che rendono
il computer facile da usare
 Questi programmi trasformano il computer in
una macchina virtuale, piu’ vicina alle
esigenze dell’utente che puo’ cosi’ ignorare i
dettagli implementativi.
84
IL SOFTWARE DI BASE
 Il
sistema operativo: che permette di
– sfruttare le risorse del computer in modo
semplice e (si spera) intuitivo (si pensi ad
esempio alle interfacce grafiche)
– usare i programmi che ci interessano (di scrittura,
di studio, i videogames) senza preoccuparci di
come questo avvenga all’interno del computer
85
IL SOFTWARE DI BASE
I
Linguaggi di programmazione ad alto
livello, che permettono di:
–scrivere i propri programmi, cioe’ di usare il
computer come vogliamo noi
–di poter usare questi programmi su
qualsiasi (beh, quasi) computer (questa si
chiama portabilita’)
86
IL SISTEMA OPERATIVO
 E’
di gran lunga il programma piu’ importante
che gira su un qualsiasi computer
 Senza il Sistema Operativo (SO) il computer
sarebbe scomodissimo e complicatissimo da
usare.
87
COSA FA IL SIST. OPERATIVO?
 Gestisce
in modo efficiente le risorse del
computer: cpu, memoria, periferiche.
 Interpreta
i comandi dell’utente: mouse e
clicks, esecuzione di programmi,…
 Nasconde
la macchina fisica all’utente
88
LA CIPOLLA DEL SISTEMA
OPERATIVO
INTERFACCIA COMANDI
GESTIONE MEMORIA/RISORSE
KERNEL(machine dependent)
89
TIPI DI SISTEMI OPERATIVI:
 Mono-utente
o Multi-utente (Mono/multi-
user)
 Mono
o Multi-programmati (Mono/multitasking)
 Distribuiti
( o di rete)
90
LE FUNZIONI PRINCIPALI DEI SO

Gestione del processore e dei processi

gestione della memoria principale

gestione della memoria virtuale

gestione della memoria secondaria (il file
system)
91
Reti di Calcolatori
92
TIPI DI RETI ( dal punto di vista
della loro estensione)
Rete locale (LAN - Local Area Network): collega
due o piu’ computer in un area non piu’ grande di un
palazzo. Collega i computer di un laboratorio,
gruppo di lavoro, ufficio, ditta.
 Internet: la rete delle reti. Collega fra loro reti locali
e singoli computer di tutto il mondo
 Rete metropolitana: concettualmente simile ad una
rete locale, collega computer di una singola
organizzazione (es.: Banca con filiali cittadine).

93
TIPI DI RETI LOCALI: LINEARI
(ETHERNET, APPLETALK)
PC1
PC2
PC3
PC4
Ethernet e’ il tipo di rete locale piu’ diffuso.
 Qualsiasi computer di qualsiasi tipo prevede la
possibilita’ di usare una scheda Ethernet per
connettersi alla rete locale

94
ETHERNET - APPLETALK
Quando un computer vuole comunicare invia il
segnale sul cavo di collegamento.
 Se un computer si accorge che un altro sta
trasmettendo, aspetta
 Se si verifica un conflitto (due computer hanno
tentato di comunicare contemporaneamente) i due
computer si fermano e aspettano per un tempo T
casuale, poi riprovano.
 Velocita’ di trasmissione: 100 Megabit/secondo

95
TIPI DI RETI LOCALI: AD ANELLO
PC1
PC2
PC4
PC3

La tecnica token-ring viene usata per la comunicazione tra
gli elaboratori.
96
TOKEN RING
Un token (un gruppetto di byte) viene passato
continuamente da un computer all’altro.
 Un computer puo’ trasmettere sulla rete solo
quando e’ in possesso del token.
 Se un computer riceve un messaggio non destinato
a lui, lo rimette in circolo.

97
TIPI DI RETI LOCALI:
PUNTO A PUNTO


PC1
PC2
PC3
PC4
Ottima tolleranza ai guasti; ma altissimi costi per i
collegamenti ( O(n2))
Utilizzabile solo per reti con pochissimi nodi.
98
TIPI DI RETI LOCALI:
A STELLA
PC1
PC3

PC2
hub
PC4
HUB: dispositivo hardware specializzato che smista le
comunicazioni dei computer
99
TIPI DI RETI LOCALI:
A TOPOLOGIA MISTA
hub
100
SISTEMI OPERATIVI DI RETE
(LOCALE)
In una LAN si vogliono condividere le risorse, di
solito, come minimo, stampanti e hard disk.
 Il S.O. deve permettere anche l’uso di quelle risorse
che non sono fisicamente collegate al computer su
cui si sta lavorando.
 I S.O. dei compuer in rete devono quindi dialogare
fra loro per permettere la condivisione delle risorse.

101
FILE SYSTEM DISTRIBUITO
Parliamo di file system distribuito quando l’utente
del file system vede un’unica struttura ad albero, e
non si accorge che alcune parti dell’albero (subtree) risiedono in realta’ sull’hard disk di un altro
computer della rete.
 Il S.O. maschera completamente la situazione.
(Unix. Windows95 un po’ meno)
 E’ possibile configurare in file system distribuito in
molti modi diversi, prendendone “pezzi” dalle varie
macchine in rete

102
SISTEMI OPERATIVI DISTRIBUITI
Versione piu’ sofisticata dei S.O. di rete
 Quando l’utente di un computer esegue un
programma, non e’ detto che questo venga fatto
girare sulla CPU locale: il S.O. si occupa di
selezionare il computer (e quindi la CPU) piu’
scarica su cui il processo deve girare.
 I S.O. distribuiti sono ancora in fase di studio. Non
esiste nulla a livello commerciale

103
PROTOCOLLO DI
COMUNICAZIONE
I computer di una rete, per comunicare si
scambiano dei messaggi. Ogni messaggio deve
contenere:
– l’indirizzo del mittente e del destinatario
– il tipo di servizio richiesto ed eventuali dati
 Ad esempio, il PC A puo’ richiedere al PC B la
stampa di un file sulla stampante connessa a B
 Il protocollo deve essere anche in grado di gestire
gli errori di comunicazione

104
PROTOCOLLO DI
COMUNICAZIONE
TCP/IP (Transmission Control Protocol/Internet
Protocol) e’ il protocollo di comunicazione usato in
internet e anche nella maggior parte delle altre reti.
 Praticamente tutti i servizi offerti da Internet,
compreso il web, sono costruiti usando TCP/IP
 Il modello ISO-OSI è in parte ispirato al TCP/IP

105
TRASMISSIONE
DIGITALE O ANALOGICA
Nelle reti locali, la comunicazione tra due computer
passa di solito su cavi dedicati, installati
esplicitamente per la rete, e adatti per la
trasmissione digitale delle informazioni.
 (Semplificando un po’) su questi cavi si ha una
variazione del livello di tensione fra due valori, che
corrisponde alla trsmissione di bit di valore zero
oppure 1.

106
TRASMISSIONE
DIGITALE O ANALOGICA
Per le comunicazioni su lunga distanza, si cerca di
sfruttare le reti di comunicazione esistenti, come ad
esempio la rete telefonica.
 La rete telefonica e’ pero’ fatta per comunicare la
voce, cioe’ un segnale analogico che varia in
maniera continua in una banda di frequenze.
 Sono necessari dei dispositivi per poter usare la
rete telefonica come mezzo di comunicazione tra
computer

107
IL MODEM
COMPUTER
Segnale
digitale
MODEM
Segnale
analogico
linea telef.
COMPUTER
Segnale
digitale
MODEM
108
IL MODEM
I modem attuali hanno velocita’ di trasmissione di
14.400, 28.800, 38.400, 56.600 bit/sec. Ossia una
velocita’ massima di non piu’ di 6 kByte/sec
 Se due computer comunicano con un modem, la
velocita’ di comunicazione e’ sempre quella del
modem piu’ lento.
 Il modem e’ usato soprattutto per le comunicazioni
private (ad esempio un utente che si collega ad
internet tramite il suo provider)

109
COMUNICAZIONE SU LINEA
DEDICATA O COMMUTATA
Quando due computer sono connessi direttamente
da un cavo di comunicazione, si parla di linea
dedicata di trasmiss./comunic.
 Nel caso piu’ generale, e soprattutto su internet, la
comunicazione tra due computer avviene attraverso
computer intermedi, che fanno da tramite tra i due
che devono comunicare, ritrasmettendo i loro
messaggi. Si parla allora di comunicazione su linea
commutata

110
NAMING
Ogni computer di una rete deve avere un nome
logico unico. Il nome logico e’ usato dagli utenti
della rete per comunicare con quel computer
 Il computer ha anche un indirizzo fisico: l’indirizzo
con il quale il software che gestisce le
comunicazioni in rete localizza e gestisce la
comunicazione con quel computer.
 Deve essere gestita una corrispondenza tra il nome
logico e l’indirizzo fisico del computer

111
INTERNET
Collega fra loro reti locali e metropolitane di tutto il
mondo.
 La comunicazione tra le sottoreti avviene sfruttando
canali di comunicazione dedicati ad alta tecnologia
(ISDN, ATM, fibre ottiche) che consentono velocita’
di trasmissione dell’ordine di decine o centinaia di
Megabit/sec
 Ovviamente non avrebbe senso usare la rete
telefonica, che e’ troppo lenta

112
INTERNET
Ogni rete locale “si affaccia su Internet” attraverso
un dispositivo (un vero e proprio computer ) detto
router. Il router si occupa di smistare il traffico dei
pacchetti in uscita ed in entrata nella rete locale
rispetto a internet
 Al router e’ spesso associato anche un dispositivo
detto firewall. Il firewall protegge la rete locale da
accessi indesiderati dall’esterno (e in alcuni casi,
viceversa)

113
INDIRIZZAMENTO IN INTERNET

Gli indirizzi logici Internet hanno la forma:
aaa.bbb.ccc
e sono organizzati in domini e sotto domini
 I domini possono essere geografici:

xxx.yyy.it aaa.bbb.uk
jjj.kkk.ca
o di altro tipo:
aaa.com bbb.ccc.ddd.net xxx.gov
114
INDIRIZZAMENTO IN INTERNET

All’interno dei domini vi sono i sotto-domini, sottosotto-domini, e cosi’ via, fino eventualmente a
raggiungere lo specifico computer della rete locale
relativa:
– xxx.unito.it (sotto-dominio dell’univ. di Torino)
– di.unito.it (sotto-sotto-dominio del Dip. Di Informat., a cui
corrisponde fisicamente la rete locale del Dip.
– Pianeta.di.unito.it (uno dei computer della rete locale del
Dipartimento di Informatica dell’Univ. Di Torino, Italia)
115
INDIRIZZAMENTO IN INTERNET

Gli indirizzi logici sono usati solo per comodita’ degli
utenti. I veri indirizzi Internet, (detti indirizzi fisici),
sono numerici. Ad esempio:
– pianeta.di.unito.it = 130.192.239.1
130 = dominio .it
192 = sotto-dominio .unito
239 = rete locale del Dip. di Informatica
1 = il computer pianeta
116
IL DOMAIN NAME SERVICE (DNS)
Il meccanismo di gestione degli indirizzi internet e’
chiamato Domain Name Service (DNS)
 Ogni dominio e’ gestito da un computer che
contiene l’associazione tra i nomi logici e gli indirizzi
fisici di ogni suo sotto-dominio
 Ogni sottodominio e’ gestito da un computer che
contiene l’associazione tra i nomi logici e gli indirizzi
fisici di ogni suo sotto-sotto-dominio
 In questo modo e’ facile localizzare qualsiasi punto
della rete usando solo nomi logici.

117
IL DOMAIN NAME SERVICE (DNS)






Ad esempio, se da un pc negli USA si vuole comunicare
con la macchina pianeta.di.unito.it.
Viene contattato il gestore del dominio .it (130)
che contatta il gestore del dominio .unito (192)
che contatta il gestore del dominio .di (239)
che sa che la macchina pianeta, all’interno della rete
locale .di (239) ha numero 1.
Viene quindi restituito l’indirizzo fisico che sara’ usato nella
comunicazione: 130.192.239.1
118
STRUMENTI E SERVIZI
INTERNET
Telnet (connessioni remote su Internet)
 FTP (per trasferire file su Internet)
 Talk/Chat (per conversare in tempo reale)
 Mailing Lists (liste di discussione)
 NewsGroups (gruppi di discussione)
 World Wide Web (WWW)

119
TELNET
 Protocollo
e programma per collegarsi ad un
computer remoto
 molti
servizi per la ricerca di informazioni su
internet sono basati su telnet
 Funziona
solo verso macchine multi-user
predisposte per telnet (Unix/Linux)
120
TELNET
si
no
Windows95
Unix
121
FILE TRANSFER PROTOCOL
(FTP)
 Protocollo
per trasferire files su internet
 Programma FTP corrispondente
 Accesso con parola chiave o “anonimo”
(anonymous FTP)
 versione grafica di FTP (WS_FTP)
122
PER USARE FTP CI VUOLE:
 Un
Indirizzo Internet: dora.di.unito.it
 Un user-id (login): utenti
 Una Password: utenti
 Un computer predisposto per ftp
(di solito una macchina Unix con ftpd)
123
File Transfer Protocol
si
si
Windows95
Unix
124
FTP ANONIMO:
 user-id
(login): anonymous
 Password: [email protected]
 Con
ftp anonimo non si possono modificare
o rimuovere file o directory remote
125
WS_FTP PERMETTE DI:
 memorizzare
le connessioni piu’ usate
 prelevare il contenuto di una directory e
delle sue sotto-directory
 compiere quasi tutte le operazioni in modo
grafico
126
CHAT
 Evoluzione
del servizio TALK
 Salotti Virtuali
 Conversazioni “Molti a Molti”
 Uno dei servizi piu’ usati della rete
127
MAILING LIST
(LISTE DI DISCUSSIONE)
 strumenti
di discussione attraverso
mail elettronica
 esistono mailing list sui piu’ svariati
argomenti e in tutte le lingue
 sulle M.L. avvengono discussioni, si
fanno annunci, vengono distribuiti
bollettini elettronici ... ....
128
FUNZIONAMENTO DELLE
MAILING LIST
 una
mailing list e’ un indirizzo di mail che
redistribuisce il messaggio ad una lista di
indirizzi (gli iscritti alla mailing list)
 es: mail [email protected]
129
ISCRIZIONE A - E RIMOZIONE DA
- UNA MAILING LIST (1)
 mail
[email protected]
–subject: subscribe nomelista
–body: subscribe nomelista
 mail [email protected]
–subject: unsubscribe nomelista
–body: unsubscribe nomelista
130
NEWSGROUPS (USENET)
NewsGroups: liberta’ e anarchia
 Un NewsGroup mette automaticamente in
contatto persone che desiderano:
– cercare/fornire informazioni
– scambiare opinioni
– litigare!
su uno specifico argomento
 NG = paniere elettronico distribuito

131
NEWSGROUPS:

Un NewsGroup mette in contatto curiosi,
principianti, appassionati, esperti, professionisti di
un determinato campo.

I NG sono una delle fonti principali per recuperare
informazioni su Internet:
testi, programmi,
immagini, suoni, filmati.

Imparare ad usare i NG richiede tempo (gergo,
netiquette, spam, crossposting...)
132
FUNZIONAMENTO
 Gestione
completamente distribuita
 Molti News-servers sparsi per il mondo:
–Ogni News-server riceve i messaggi dei
suoi utenti e li invia agli altri newsservers
 Alcuni gruppi vengono oscurati
 Alcuni gruppi sono moderati
 I messaggi durano un tempo limitato
133
World Wide Web
(WWW o Web)
“ragnatela” mondiale di documenti organizzati
secondo un modello ipertestuale
134
Organizzazione di un testo
lettura sequenziale
pag1
pag6
pag7
pag4
pag2
pag5
pag3
135
Organizzazione di un ipertesto
nodi (pagine)
link
anchor
136
Terminologia per gli ipertesti sul Web




Browser: programma applicativo per navigare
in rete
Page (pagina): singolo “foglio” di un ipertesto
Home-page: “punto di ingresso” di un sito web
Hotspot, hotword: porzione di una pagina che,
se selezionata, permette di raggiungere un
altro punto dell’ipertesto o una nuova risorsa
137
Terminologia per gli ipertesti sul Web



web: insieme di pagine che costituiscono un
singolo documento ipertestuale
Web: insieme di tutti gli ipertesti della
ragnatela
FAQ: domande ricorrenti su un certo
argomento
138
HTML



gli ipertesti del Web sono scritti usando il
linguaggio Hypertext Markup Language (HTML)
HTML NON è un linguaggio di programmazione!
HTML descrive la disposizione di tutti gli elementi
presenti all’interno di un documento
139
HTML


grazie al Web si possono condividere delle
informazioni ma non solo .....
è anche possibile creare dei meccanismi di
comunicazione interattiva mediante l’uso del
linguaggio HTML opportunamente combinato con
altri linguaggi di programmazione (C, Java,
Perl)
140
Client-server




il WWW usa il modello client-server per lo
scambio delle informazioni
un modello client-server per un sistema di
calcolatori in rete è formato da tre componenti
il client, programma applicativo che “gira”
sull’elaboratore dell’utente
il server, programma applicativo che “gira”
sull’elaboratore del fornitore di informazioni
(provider)
141
Client-server



ogni utente può richiedere delle informazioni
attraverso il suo programma client
la richiesta “viaggia” attraverso la rete fino a
raggiungere l’elaboratore server che possiede le
informazioni desiderate
il server intrepreta la richiesta ed esegue le
operazioni opportune (inoltra all’elaboratore client
un file contenente le informazioni desiderate,
oppure interroga un database e restituisce il
risultato dell’operazione)
142
Client-server
client
client
server
server
client
client
server
client
143
Applicazioni per la rete

la comunicazione tra client e server avviene
seguendo un insieme di regole dette protocolli
di comunicazione
– HTTP introdotto per trasmettere documenti
ipertestuali / ipermediali sulla rete
– FTP utilizzato per trasmettere testi o file binari
– Telnet utilizzato per collegarsi a elaboratori remoti
144
Uniform Resource Locator
gli indirizzi per “trovare” i documenti nel
Web sono detti Uniform Resource Locator
(URL) e identificano in modo univoco i nodi (i
documenti)
protocollo:// indirizzo internet del nodo /pathname



http://www.unito.it è l’indirizzo della homepage dell’Università di Torino
http://www.cisi.unito.it/ateneo/lettere/index.h
tml è l’indirizzo della home-page della Facoltà
di Lettere
145
Navigare nel Web


orientarsi nel Web è difficile e non esiste un’unica
sorgente di informazioni
alcuni siti possono costituire un buon punto di
partenza per cominciare la navigazione

WWW Virtual library http://www.w3.org

Yahoo http://www.yahoo.com

Lycos http://www.lycos.it

http://www.yahoo.it
Virtual Tourist I e II
http://wings.buffalo.edu/world/
http://wings.buffalo.edu/world/vt2/
146
Motori di Ricerca
Consentono di trovare informazioni sul Web
 Basati su immensi Indici contenenti
“descrizioni” locali delle pagine esistenti
 Aggiornamento degli indici automatico e
grazie all’invio di nuove pagine dagli autori

147
RICERCHE SU INTERNET

REGOLA 1: siate creativi!!

REGOLA 2: restringete la ricerca!!

usare motori di ricerca specializzati (persona, mail,
home page, software, idioma, aree geografiche,
argomenti ...)

usare le regole di restrizione per le chiavi di ricerca
offerte dal motore di ricerca
148
MOTORI DI RICERCA “CLASSICI”

www.altavista.com (www.altavista.it)

www.yahoo.com (www.yahoo.it)

www.lycos.com (www.lycos.it)

www.webcrawler.com

www.hotbot.com
alcuni anche in lingua italiana e con puntatori a
molti argomenti
149
ELEMENTI DI
PROGRAMMAZIONE
150
CENNI DI PROGRAMMAZIONE
Il computer esegue programmi
 Un programma eseguibile dal computer e’ una
sequenza di istruzioni macchina comprensibili da
quel computer.
 Usando sequenze diverse di istruzioni, e dati
diversi, possiamo far fare al computer le cose piu’
disparate

151
CENNI DI PROGRAMMAZIONE

Pero’ scrivere programmi in linguaggio macchina (in
assembler) e’ scomodo, perche’ il linguaggio e’
molto distante da quello umano.

Inoltre, un programma in assembler gira solo su un
tipo di cpu, e sarebbe comodo poter usare lo stesso
programma su cpu e con S.O. diversi senza doverlo
riscrivere ogni volta (portabilita’)
152
LING.DI PROGRAMMAZIONE AD
ALTO LIVELLO
I linguaggi di programmazione ad alto livello
permettono di scrivere programmi con una
notazione adatta agli esseri umani, e in alcuni casi
molto intuitiva.
 Usando degli opportuni traduttori (compilatori ed
interpreti) lo stesso programma puo’ essere usato
su macchine diverse
 Fortran, Cobol, Pascal, Ada, C, C++, Java, Lisp,
ML, Prolog,...

153
IL COMPILATORE
Un programma scritto in un linguaggio ad alto livello
e’ detto programma sorgente.
 Per essere eseguito su un computer , va tradotto
nel linguaggio macchina del computer.
 Il compilatore e’ un programma che esegue la
traduzione, producendo il programma oggetto,
ossia una sequenza di istruzioni macchina
 Il compilatore segnala anche eventuali errori di
sintassi nella scrittura del programma sorgente

154
IL COMPILATORE
Programma P
scritto nel
linguaggio L
Compilatore per P sul
computer M
Programma P’ nel linguag.
macchina di M
Esecuzione
di P’ su M
155
L’INTERPRETE
In alternativa alla compilazione, un programma
sorgente puo’ essere interpretato.
 Un interprete e’ un programma che non produce
alcun programma oggetto, ma legge il ogni
istruzione del programma sorgente e genera le
istruzioni macchina corrispondenti, che vengono
passate all’hardware per l’esecuzione.

156
COMPILATORI VS INTERPRETI
In un programma compilato, la traduzione avviene
una sola volta, e poi il programma oggetto puo’
essere eseguito quanto si vuole
 In un programma interpretato, la traduzione avviene
tutte le volte che si esegue il progr.
 Molti linguaggi permettono entrambe le scelte
 Attualmente, i computer sono cosi’ potenti che
anche la compilazione di lunghi programmi non
richiede molto tempo.

157
IL CONCETTO DI ALGORITMO
Un algoritmo e’ una sequenza di passi necessari
per risolvere un problema o eseguire una
computazione
 In alcuni casi, lo stesso problema/computazione
puo’ essere risolto in modi diversi, ai cui
corrispondono diversi algoritmi
 Un programma non e’ altro che la descrizione di un
algoritmo scritta nel linguaggio di programmazione
scelto.

158
IL CONCETTO DI VARIABILE
Per eseguire una qualsiasi computazione, abbiamo
bisogno di poter immagazzinare i risultati
temporanei e finali della computazione stessa.
 Ogni linguaggio ad alto livello mette a disposizione
le variabili: “contenitori” in cui immagazzinare i dati
della computazione
 Concettualmente, le variabili sono come pezzi di
carta su cui si possono annotare/modificare i valori
di un calcolo che si sta facendo

159
IL CONCETTO DI VARIABILE
Ogni variabile ha un nome mnemonico, che si usa
nel programma per riferirsi alla var. stessa.
 Una variabile contiene un valore che puo’ essere
modificato a piacimento
 Durante l’esecuzione di un programma, il sistema
operativo mantiene una associazione tra il nome di
ogni var. e l’indirizzo della cella di memoria in cui e’
memorizzato il suo valore
 Quindi una variabile e’ semplicemente una
astrazione della cella di memoria fisica.

160
IL CONCETTO DI VARIABILE
Quando si scrive un programma e’ necessario
dichiarare quali variabili vogliamo usare.
 Le variabili possono essere di tipo diverso, per
indicare che le usiamo per memorizzare dati di tipo
diverso:
– Variabile LETTERA, tipo: carattere;
– Variabile SOMMA, tipo: intero;

161
L’IMPORTANZA DELLE VARIABILI
Le variabili sono lo strumento fondamentale per
assicurare la flessibilita’ dei programmi.
 Lo stesso programma, eseguito con variabili di
valore diverso da risultati diversi. Lo stesso
programma si adatta cioe’ alle esigenze del
momento, senza dover essere riscritto

162
ESEMPIO D’USO DI VARIABILI
Program SILLY
begin
Variables: YEARS,DAYS, type integer;
read YEARS from input;
DAYS := YEARS * 365;
print DAYS;
end
163
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR.
(Visual Basic)

Definizione delle variabili che verranno usate nel
programma, e del loro tipo:
Dim PIPPO, PLUTO As Integer
Dim NOME As String
Dim RISULTATO As Double
164
COSTRUTTI DI BASE DI UN LINGUAGGIO
DI PROGR. (Visual Basic)

Istruzioni elementari: assegnamento di un valore ad
una variabile:
PIPPO = 5
PLUTO = 7
RISULTATO = PIPPO/PLUTO
TESTO = “Ciao”
165
COSTRUTTI DI BASE DI UN
LINGUAGGIO DI PROGR. (Visual Basic)
Azioni condizionali:
If A*A+B*B = C*C Then
Print “Triangolo rettangolo”
Else
Print “Triangolo non rettangolo”
End If
166
COSTRUTTI DI BASE DI UN LINGUAGGIO
DI PROGR. (Visual Basic)

Azioni ripetute:
While (PIPPO < 100)
PIPPO = PIPPO - 1
SOMMA = SOMMA + PLUTO
Wend
167
COSTRUTTI DI BASE DI UN LINGUAGGIO
DI PROGR. (Visual Basic)

Ingresso/Uscita
X = InputBox(“Dammi X”) ‘leggi X da input;
Print X+3 ‘stampa il risultato di X+3
‘su output
168
Programma Visual Basic
(area di un rettangolo)
Sub main()
Dim base, altezza, area as Integer
base = InputBox(“Inserisci la base:”)
altezza = InputBox(“Inserisci l’altezza”)
area = base*altezza
Print area;
End Sub
169
DIAGRAMMI DI FLUSSO
Notazione grafica usata per descrivere in modo
intuitivo le azioni di cui e’ fatto un algoritmo.
 Viene usata per descrivere i passi salienti di un
algoritmo, senza doversi preoccupare dei dettagli
sintattici del programma corrispondente
 Una volta che l’algoritmo e’ stato descritto con un
diagramma di flusso, deve però essere trasformato
nel programma corrispondente.
 Ogni azione e’ rappresentata da un blocco

170
BLOCCHI DI FLUSSO:
INIZIO E FINE ALGORITMO
START
STOP
171
BLOCCHI DI FLUSSO:
UNA O PIU AZIONI ELEMENTARI
PIPPO = PIPPO + 1
PLUTO = 0
172
BLOCCHI DI FLUSSO:
BLOCCO CONDIZIONALE
F
T
condizione
Diagramma 1
Diagramma 2
173
BLOCCHI DI FLUSSO:
BLOCCO DI RIPETIZIONE
F
condizione
T
Diagramma 1
174
BLOCCHI DI FLUSSO:
INPUT/OUTPUT
Input/output
175
THE SILLY PROGRAM
start
Sub main()
Read YEARS
DAYS = YEARS * 365
print DAYS
Dim YEARS,DAYS as Integer
YEARS = InputBox
DAYS = YEARS*365
PRINT DAYS
End sub
stop
176
ESEMPIO DI TRADUZIONE
Dim A, B, X as Integer
…….
If A = B Then
X=1
Else
X=2
Endif
…….
177
A: locazione 1000
4726
4730
4734
4738
4342
4346
4350
4354
4358
B: 1002
X: 1004
…….
LOAD 1000,R1
LOAD 1002,R2
LOAD 1004,R3
JNE R1,R2,4354
SET R3,1
JUMP 4358
SET R3,2
……..
178
ESEMPIO 1
Dire se un triangolo è equilatero, isoscele o scaleno
Sub Main()
Dim A, B, C As Integer
A = InputBox("Inserisci il lato A")
B = InputBox("Inserisci il lato B")
C = InputBox("Inserisci il lato C")
If A = B And B = C Then
Print "Triangolo Equilatero"
ElseIf A = B Or B = C Then
Print "Triangolo Scaleno"
End If
End Sub
179
ESEMPIO 2
Trasformare la propria media espressa in trentesimi in
centodecimi
Sub Main()
Dim A As Integer
A = InputBox("Dammi la tua media")
Print "La tua media espressa in centodecimi è"; A / 3*11
End Sub
180
ESEMPIO 3
Calcolare la media dei propri voti
Sub Main()
Dim Voto, NumeroVoti, Somma as Integer
Print “Inserisci i tuoi voti”
While Voto <> -1
Voto = InputBox (“Inserisci un voto (-1 per finire)”)
NumeroVoti = NumeroVoti + 1
Somma = Somma + Voto
Wend
Print “La tua media è”; Somma/NumeroVoti
181
ESEMPIO 4
Contare per quanti giorni la temperatura è stata superiore ai 30
gradi
Sub Main()
Dim Conta, Temperatura As Integer
Conta = 0: Temperatura = 0
Print "Inserisci una serie di temperature quotidiane (terminata da -400)"
While Temperatura <> -400
Temperatura = InputBox("Dammi un valore di temperatura")
If Temperatura > 30 Then
Conta = Conta + 1
End If
Wend
Print "Il numero totale di giorni afosi è "; Conta
End Sub
182
ESEMPIO 5
Calcolare se un certo anno sarà bisestile
Sub Main()
Dim Anno As Integer
Anno = InputBox("Inserisci l'anno")
If Anno Mod 4 = 0 Then
If Anno Mod 100 = 0 And Anno Mod 400 <> 0 Then
Print "Anno Non Bisestile"
Else
Print "Anno bisestile"
End If
Else
Esercizio: riscrivere il
Print "Anno Non bisestile"
Programma facendo uso
End If
di un unico IF
End Sub
183
Scarica

Raccolta dei lucidi - Dipartimento di Matematica e Informatica