1
CORSO DIINTRODUZIONE
ALL’INFORMATICA
Ing. Giovambattista IanniE-Mail: [email protected]
Indirizzo: Dipartimento di Matematica,
Università della Calabria
87036 Rende (Cosenza)
Tel. Ufficio: 0984 - 496430
2
PROGRAMMA DEL CORSO
LEZIONI Introduzione Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet) Elementi di Programmazione
3
PROGRAMMA DEL CORSO
LABORATORIOAmbiente Operativo WindowsElaborazione dei TestiStrumenti e Servizi InternetFogli Elettronici
4
Prove di Accertamento:
• Scritto (teoria) +
• Prova Pratica (laboratorio)
5
TESTI CONSIGLIATI:
Sciuto, Bonanno, Fornaciari, Mari Introduzione ai Sistemi Informatici
McGraw-Hill 1997
Curtin, Foley, Sen, Morris Informatica di Base McGraw-Hill 1999
6
INTRODUZIONEAGLI ALGORITMI
7
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?
8
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?
9
ALGORITMOSequenza finita di mosse che risolve in un tempo finito unaclasse di problemi.
CodificaFase di scrittura di un algoritmo attraverso un insiemeordinato di frasi (“istruzioni”), scritte in un qualchelinguaggio di programmazione, che specificano leazioni da compiere.
EsecuzioneL'esecuzione delle azioni nell'ordine specificato dall'algoritmoconsente di ottenere, a partire dai dati di ingresso, irisultati che risolvono il problema.
ALCUNI CONCETTI CHIAVE
10
ESECUZIONE
11
• Ogni elaboratore è una macchina in grado di eseguireazioni elementari su dati• L'esecuzione delle azioni elementari è richiestaall'elaboratore tramite comandi chiamati istruzioni• Le istruzioni sono espresse attraverso frasi di unopportuno linguaggio di programmazione• Un programma non è altro che la formulazione testualedi un algoritmo in un linguaggio di programmazione
ALGORITMO E PROGRAMMA
12
ESEMPIO DI PROGRAMMA
Sub SOMMA( )Dim A, B as IntegerA = InputBox("Immetti un numero")B = InputBox(“Immetti un secondo
numero”)Print “Somma:”; A+B
End Sub
13
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.
14
ALGORITMI EQUIVALENTIDue algoritmi si dicono equivalenti quando:• hanno lo stesso dominio di ingresso;• hanno lo stesso dominio di uscita;• in corrispondenza degli stessi valori nel dominio diingresso producono gli stessi valori nel dominio diuscita.
15
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 1Somme successive:12x12 = 12+12+…+12=144
Algoritmo 2“somma e shift”: 12x 12= 2412= 144
16
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
17
RAPPRESENTAZIONE DELLE INFORMAZIONI
18
RAPPRESENTAZIONE DELLE INFORMAZIONI
Idea di fondo: Usare presenza/assenza di carica elettricapassaggio/non passaggio di corrente/luce
BInary digiT (cifra binaria): il BIT
Usiamo cioe’ una rappresentazione binaria(a due valori) dell’informazione
19
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
20
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
21
ESEMPIO:
Per rappresentare 57 informazioni diversedobbiamo usare gruppi di almeno 6 bit. Infatti:
26 = 64 > 57Cioe’ un gruppo di 6 bit puo’ assumere 64 configurazioni diverse:
000000 / 000001 / 000010 …/ 111110 / 111111
22
IL BYTE:In informatica ha assunto particolare importanza il concetto di:
byte = 8 bit = 28 = 256 inf. diverseIl byte e’ usato come unita’ di misura per indicare le dimensioni della memoria, la velocita’ di trasmissione, la potenza di un elaboratoreUsando sequenze di byte (e quindi di bit) si possono rappresentare caratteri, numeri immagini, suoni.
23
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)– … .. .. .. .. .. ...
24
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.
25
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;...
26
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)
27
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.
28
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.
29
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).
30
CONVERSIONE DA BASE 10 A 2
Dividere il numero per 2 ripetutamente finche` il risultato non e` 0
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
31
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.
32
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
33
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)
34
RAPPRESENTAZIONE DI NUMERI FRAZIONARI IN
VIRGOLA FISSAUn numero frazionario e’ rappresentato come
una coppia di numeri interi: la parte intera e
la parte decimale.
12,52 <12; 52>
<1100; 110100>
35
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
36
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)
37
NUMERI FLOATING POINT
Con lo stesso metodo possiamo rappresent. Numeri molto grandi. Ad esempio, con 8 bit:
5 bit di mantissa: 11111 = 313 bit di esponente: 111 = 3
11111111 = 31 * 107 = 310 milioni
Mentre, con la notazione classica, con 8 bitrappresentiamo al massimo il n. 255
38
NUMERI FLOATING POINT
Ma allora, perche; non usare sempre la notazione floating point?
Perche’ si perde in precisioneEsempio: 5 cifre (decimali) : 4 per la mantissa, 1 per l’esponente. Rappresentare
312,45<3124; -1> = [312,4 .. 312,5]???
39
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
40
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 diversiSufficienti per l’alfabeto anglosassone
41
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)
42
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)
NUMERI IN ASCII
43
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
44
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)
45
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)
46
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.
47
CODIFICA VETTORIALEDELLE IMMAGINI
Istruzioni su come disegnare l’immaginep.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)
48
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
49
CODIFICA DEI SUONIL’onda sonora viene misurata (campionata)ad intervalli regolari
Minore e l’intervallo di campionamento emaggiore e la qualita’ del suono
CD musicali: 44000 campionamenti al secondo, 16 bit per campione.
50
CODIFICA DEI SUONI
Alcuni formati:
• ---.mov
• ---.wav
• ---.mpeg, ---.avi,
• formato midi usato per l’elaborazione
della musica al computer
51
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, ...
52
LA STRUTTURA DEI FILE (?)E’ meglio vedere un file come una sequenza di byte. E’ il programma che usail file a gestirne il contenuto in modo corretto.
Ad esempio, nei file di testo quando viene incontrato il byte = <new line> si devonovisualizzare i caratteri successivi nellariga sottostante.
53
ARCHITETTURA DEI CALCOLATORI
54
ARCHITETTURA DEI COMPUTER(L’HARDWARE!!!)
Processore (CPU)
Memoria 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,…)
55
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
56
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
57
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.
58
LA MEMORIA PRINCIPALE(LA RAM)
00101111
11001101
01010100
…………..
10000110
0
11111101
1
2
3
65.536
...
59
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
– …..
60
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
61
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)
62
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)
63
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)
64
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).
65
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)
66
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
67
MEMORIA PRIMARIA VS
MEMORIA SECONDARIA
RAM HARD DISK
veloce (nanosec) lenta (microsec)
piccola (Megabyte) grande (Gigabyte)
volatile permanente
Notate che, in teoria, il computer potrebbe funzionare con la sola ram o il solo harddisk
68
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
69
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,
70
LE ISTRUZIONI MACCHINA
Codice istruzione | argom. 1 | argom. 2
•16 o 32 bit di lunghezza
•gli argomenti possono mancare
71
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
72
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)
73
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
74
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
75
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)
76
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
77
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.
78
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
79
UN PROGRAMMA IN LINGUAGGIO MACCHINA (ASSEMBLER)
LOAD 3568 R1
LOAD 3574 R2
ADD R1 R2
STORE R1 3568
JUMP 1000
…….
1000
STORE R1 3568
1004
1008
1012
1016
80
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)
81
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
82
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
83
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
84
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.
85
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
86
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’)
87
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.
88
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
89
LA CIPOLLA DEL SISTEMA OPERATIVO
INTERFACCIA COMANDI
GESTIONE MEMORIA/RISORSE
KERNEL(machine dependent)
90
TIPI DI SISTEMI OPERATIVI:
Mono-utente o Multi-utente (Mono/multi-user)
Mono o Multi-programmati (Mono/multi-tasking)
Distribuiti ( o di rete)
91
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)
92
Reti di Calcolatori
93
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).
94
TIPI DI RETI LOCALI: LINEARI(ETHERNET, APPLETALK)
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
PC1 PC2 PC3 PC4
95
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
96
TIPI DI RETI LOCALI: AD ANELLO
La tecnica token-ring viene usata per la comunicazione tra gli elaboratori.
PC2
PC3
PC4
PC1
97
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.
TOKEN RING
98
TIPI DI RETI LOCALI: PUNTO A PUNTO
Ottima tolleranza ai guasti; ma altissimi costi per i collegamenti ( O(n2)) Utilizzabile solo per reti con pochissimi nodi.
PC1 PC2
PC3 PC4
99
TIPI DI RETI LOCALI: A STELLA
HUB: dispositivo hardware specializzato che smista le comunicazioni dei computer
PC2PC1
PC4PC3 hub
100
TIPI DI RETI LOCALI: A TOPOLOGIA MISTA
hub
101
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.
102
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 (sub-tree) 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
103
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
104
PROTOCOLLO DICOMUNICAZIONE
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
105
PROTOCOLLO DICOMUNICAZIONE
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
106
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.
107
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
108
IL MODEM
COMPUTER MODEMSegnale digitale
MODEMCOMPUTERSegnale digitale
Segnaleanalogicolinea telef.
109
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)
110
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
111
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
112
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
113
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)
114
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
115
INDIRIZZAMENTO IN INTERNET
All’interno dei domini vi sono i sotto-domini, sotto-sotto-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)
116
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 .it192 = sotto-dominio .unito239 = rete locale del Dip. di Informatica1 = il computer pianeta
117
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.
118
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
119
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)
120
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)
121
Windows95 Unix
si
no
TELNET
122
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)
123
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)
124
Windows95 Unix
si
si
File Transfer Protocol
125
FTP ANONIMO:
user-id (login): anonymous Password: [email protected]
Con ftp anonimo non si possono modificare o rimuovere file o directory remote
126
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
127
CHAT
Evoluzione del servizio TALK Salotti Virtuali Conversazioni “Molti a Molti” Uno dei servizi piu’ usati della rete
128
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 ... ....
129
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]
130
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
131
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
132
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...)
133
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 news-servers
Alcuni gruppi vengono oscurati Alcuni gruppi sono moderati I messaggi durano un tempo limitato
134
World Wide Web (WWW o Web)
“ragnatela” mondiale di documenti
organizzati secondo un modello ipertestuale
135
Organizzazione di un testo
lettura sequenziale
pag1
pag2
pag3
pag4
pag7
pag5
pag6
136
Organizzazione di un ipertesto
nodi (pagine)
link
anchor
137
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
138
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
139
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
140
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)
HTML
141
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)
142
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)
Client-server
143
server
client
clientclient
clientserver
client
Client-server
server
144
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
145
gli indirizzi per “trovare” i documenti nel Web sono detti Uniform Resource Locator (URL) e identificano in modo univoco i nodi (i documenti)
http://www.unito.it è l’indirizzo della home-page dell’Università di Torino
protocollo://
Uniform Resource Locator
http://www.cisi.unito.it/ateneo/lettere/index.html è l’indirizzo della home-page della Facoltà di Lettere
/pathnameindirizzo internet del nodo
146
WWW Virtual library http://www.w3.org
Navigare nel Web
Yahoo http://www.yahoo.com http://www.yahoo.it
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
Lycos http://www.lycos.it
Virtual Tourist I e II http://wings.buffalo.edu/world/ http://wings.buffalo.edu/world/vt2/
147
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
148
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
149
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
150
ELEMENTI DI PROGRAMMAZIONE
151
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
152
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’)
153
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,...
154
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
155
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
156
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.
157
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.
158
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.
159
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
160
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.
161
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;
162
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
163
ESEMPIO D’USO DI VARIABILI
Program SILLY
begin
Variables: YEARS,DAYS, type integer;
read YEARS from input;
DAYS := YEARS * 365;
print DAYS;
end
164
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
165
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”
166
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
167
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR. (Visual Basic)
Azioni ripetute:
While (PIPPO < 100)
PIPPO = PIPPO - 1
SOMMA = SOMMA + PLUTO
Wend
168
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
169
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
170
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
171
BLOCCHI DI FLUSSO:INIZIO E FINE ALGORITMO
START
STOP
172
BLOCCHI DI FLUSSO:UNA O PIU AZIONI ELEMENTARI
PIPPO = PIPPO + 1
PLUTO = 0
173
BLOCCHI DI FLUSSO:BLOCCO CONDIZIONALE
Diagramma 1 Diagramma 2
condizioneFT
174
BLOCCHI DI FLUSSO:BLOCCO DI RIPETIZIONE
Diagramma 1
condizione
T
F
175
BLOCCHI DI FLUSSO:INPUT/OUTPUT
Input/output
176
THE SILLY PROGRAM
start
Read YEARS
DAYS = YEARS * 365
print DAYS
stop
Sub main()Dim YEARS,DAYS as Integer
YEARS = InputBoxDAYS = YEARS*365PRINT DAYS
End sub
177
ESEMPIO DI TRADUZIONE
Dim A, B, X as Integer
…….
If A = B Then
X = 1
Else
X = 2
Endif
…….
178
A: locazione 1000 B: 1002 X: 1004
4726 …….
4730 LOAD 1000,R1
4734 LOAD 1002,R2
4738 LOAD 1004,R3
4342 JNE R1,R2,4354
4346 SET R3,1
4350 JUMP 4358
4354 SET R3,2
4358 ……..
179
ESEMPIO 1Dire 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
180
ESEMPIO 2Trasformare 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
181
ESEMPIO 3Calcolare 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
182
ESEMPIO 4Contare 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 è "; ContaEnd Sub
183
ESEMPIO 5Calcolare 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 Print "Anno Non bisestile" End If
End Sub
Esercizio: riscrivere ilProgramma facendo usodi un unico IF