fondamenti ciuto et alt., mcgraw-hill di informatica · comunicazione di dati ed informazioni...
TRANSCRIPT
HTML 1
Fondamenti di informatica
A.Gori - Fondamenti di informatica 1
di informatica
Alessandro [email protected]
informottica.webnode.it
Bibliografia”Introduzione ai Sistemi Informatici” IV edizione, Sciuto et alt., McGraw-Hill
A.Gori - Fondamenti di informatica 2
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 3
Parole Chiave
AlgoritmoCodifiche e LinguaggiProgramma
A.Gori - Fondamenti di informatica 4
InputOutput
Ogni problema di elaborazione della informazione è caratterizzato da:
• Un insieme di dati di partenza• Un’elaborazione dei dati
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 5
• Un elaborazione dei dati• Un risultato in risposta
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 6
HTML 2
Schema di riferimento delle attività di un generico sistema di elaborazione:
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 7
INPUT OUTPUTELABORAZIONE
Sistemi di Elaborazione
Strettamento connesso all’elaborazione di informazioni è il problema della comunicazione di dati ed informazioni
A.Gori - Fondamenti di informatica 8
L’informazione presuppone <Comunicazione> tra un’entità Emittente ed un’entità Ricevente attraverso processi di codifica e di decodifica nonché tramite un insieme di regole.
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 9
Emittente Ricevente
Codifica Decodifica
INFORMAZIONE
La comunicazione (di informazione) tra due persone avviene attraverso un linguaggio e può subire una codifica ed una decodifica:
E i
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 10
Esempio:La persona emittente pensa una cosaLa codifica in una frase in un certo linguaggio (es. lingua italiana)Il ricevente l’ascolta e la decodifica per farla sua (ad es. tramite lo stesso tipo di linguaggio) ed utilizzarla (memorizzarla, elaborarla, …)
La comunicazione (di informazione) tra due sistemi diversi (ad es. l’uomo ed il computer) avviene con le stesse modalità viste prima ovviamente utilizzando mezzi diversi.
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 11
ESEMPIO:
L’uomo comunica al computer un’informazione tramite un linguaggio di programmazione (codifica)
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 12
( )
Il computer riceve l’informazione, decodificandola nel suo linguaggio (codici binari 0/1) in modo da poterla trattare in vario modo (memorizzare, elaborare, ecc.) e magari “ritornare” delle risposte
HTML 3
La comunicazione di informazione tra due sistemi deve avvenire seguendo delle regole precise:
si pensi alla sintassi del linguaggio umanosi pensi alla semantica (ossia quello che comunichiamo deve avere un significato per chi ci
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 13
g pascolta)si pensi alla sequenza logica di ciò che comunichiamo
Ecco che si introducono i concetti di:linguaggio di programmazione programma
Linguaggio di programmazione:Sistema di codifica del linguaggio naturale attraverso il quale possiamo comunicare informazioni ad un
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 14
comunicare informazioni ad un computer o, più in generale, ad un sistema di elaborazione
Programma:Sequenza di comandi o istruzioni elementari che possono essere
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 15
pcomprese (decodificate) ed eseguite (elaborate) da un sistema di elaborazione in modo automatico
Schema di riferimento delle attività di un generico sistema di elaborazione:
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 16
INPUT OUTPUTELABORAZIONE
Esempio:
3
5125?
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 17
Esempio:
3
51255^3
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 18
Concetto di Algoritmo
HTML 4
Esempio:
3
51255^3
Concetto di Algoritmo
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 19
Procedimento:1. Inserisci il dato A (5) BASE2. Inserisci il dato B (3) ESPONENTE3. Esegui A elevato a B4. Restituisci il risultato
Algoritmo:
insieme finito di azioni elementari (istruzioni) che devono essere eseguite in
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 20
(istruzioni) che devono essere eseguite in sequenza per portare a termine (risolvere) un determinato compito
TRATTAMENTO dell’INFORMAZIONE
Esempio: Ricetta di cucina (arrosto di vitello)
- Procurarsi tutta la lista degli ingredienti nei dosaggi richiesti (vitello, sale, olio, spezie, vino, burro, brodo,….)P i l t l li tt i d i ( i tti
A.Gori - Fondamenti di informatica 21
- Procurarsi la pentola e gli attrezzi da cucina (piatti, posate, ecc.)
- Mettere nella pentola due rametti di rosmarino e sale- Rosolare la carne in burro e olio ben caldi- Bagnare con il vino e lasciare evaporare- Aggiungere il brodo- Cuocere a fuoco lento per un’ora
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 22
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 23
ANALISIFORMALIZZAZIONE
Il processo di sviluppo di un programma
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 24
PROGRAMMAZIONETRADUZIONEESECUZIONE
HTML 5
A.Gori - Fondamenti di informatica 25
Descrizione del problemaAnalisi ed identificazione di una soluzione del problema (soluzione informale)Formalizzazione della soluzione tramite un
Il processo di sviluppo di un programma
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 26
ALGORITMO risolutivoScrittura di un programma in un linguaggio di programmazione Esecuzione del programma nel linguaggio macchina (tramite TRADUZIONE: interpreti o compilatori)
A.Gori - Fondamenti di informatica 27 A.Gori - Fondamenti di informatica 28
Problemi elementari terminali
Problemi non elementari: possono essere espressi tramite problemi elementari
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 29
Concetto di Programma e SottoProgramma
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 30
HTML 6
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 31
TRATTAMENTO dell’INFORMAZIONE
L’importanza della corretta sequenzialità dei passi di un
algoritmo
A.Gori - Fondamenti di informatica 32
algoritmo
Esempio: ALGORITMO DEL RISVEGLIO
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 33
Esempio
Definizione del problema:Una segretaria deve contattare telefonicamente una serie di clienti a cui deve lasciare un messaggio.La segretaria deve procurarsi la lista dei clienti ed il loro numero telefonico.Se risponde la persona desiderata, deve lasciare il messaggio e spuntare il cliente dall’elenco. Negli altri casi (telefono occupato, numero errato, cliente non risponde) deve annotare sull’elenco la it i i t t
A.Gori - Fondamenti di informatica 34
situazione incontrata
Dati del problema (dati di input)L’elenco dei clienti con la ragione sociale ed il numero di telefonoIl messaggio da comunicare
Risultati di risposta (dati di output)L’elenco dei clienti con l’indicazione dell’esito della telefonata
Esempio
Algoritmo
Per ogni cliente dell’elenco:• Leggere il numero telefonico
A.Gori - Fondamenti di informatica 35
• Comporre il numero• A seconda della situazione che si presenta, scrivere sull’elenco:
“occupato”, “non trovato”, “numero errato”, “ok”
Ripetere le operazioni precedenti finché i clienti dell’elenco sono finiti
Analisi e Programmazione
A.Gori - Fondamenti di informatica 36
HTML 7
Algoritmi e Programmi
A.Gori - Fondamenti di informatica 37
Esecuzione
Algoritmi e Programmi
A.Gori - Fondamenti di informatica 38
Algoritmi
A.Gori - Fondamenti di informatica 39
Descrizione degli Algoritmi
A.Gori - Fondamenti di informatica 40
Descrizione degli Algoritmi
A.Gori - Fondamenti di informatica 41
Descrizione degli Algoritmi
A.Gori - Fondamenti di informatica 42
HTML 8
Problema:
Data la seguente figura geometrica, calcolarne l’area totale (supponendo di non conoscere la formula dell’area del trapezio)
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 43
Problema:
Data la seguente figura geometrica, calcolarne l’area totale (supponendo di non conoscere la formula dell’area del trapezio)
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 44
DATI
r
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 45
B
b
h1
h2
Dobbiamo scomporre il problema P in più sottoproblemi
h2
r
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 46
P si scompone in:P1 +P2 +P3
B
b
h1
h2
P3 si può scomporre a sua volta in:P3.1 e Ph2
r
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 47
P3.2
B
b
h1
h2
(Se non si usa la formula del Trapezio)
bh2
r
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 48
(Senza usare la formula del Trapezio)
B
h1
A= ½ (II r2) + (b h2 ) + (b h1 ) + ½ (B-b) h1
HTML 9
Un algoritmo deve descrivere la soluzione non di uno specifico problema ma di una classe di problemi equivalenti
Sistemi di Elaborazione
A.Gori - Fondamenti di informatica 49
Es.: l’algoritmo precedente descrive la soluzione di ogni problema con quelle caratteristiche senza vincolarsi a dati specifici concetto di VARIABILE
Definizione intuitiva di algoritmo
Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo le quali e’ possibile
Algoritmo
A.Gori - Fondamenti di informatica 50
eseguendo le quali e possibile risolvere ogni istanza di un problema di un dato tipo
Una VARIABILE è una specie di contenitore identificato da un nome (identificatore) e che possiede un valore
A.Gori - Fondamenti di informatica 51
(identificatore) e che possiede un valore
B12
H16.5
Si dice che una VARIABILE è di un certo TIPO per indicare il tipo di valore che può assumere
A.Gori - Fondamenti di informatica 52
può assumere
Per “introdurre un valore nel contenitore” si adottano le cosiddette operazioni di assegnamento
A.Gori - Fondamenti di informatica 53
ope a o d asseg a e to
Es.B 12 B 12 x 5H1 6.5 H1 B x 3
A H1 x B
Inizio Leggi il valore del raggio ed assegnalo alla variabile R
A.Gori - Fondamenti di informatica 54
Calcola l’area del semicerchio ed assegnalo alla variabile P1
Es.R 6P1 (R ^ 2) * 3,14 / 2
HTML 10
Leggi il valore della base b del primo rettangolo ed assegnalo alla variabile b Leggi il valore dell’altezza h2 del primo rettangolo ed assegnalo alla variabile h2Calcola l’area del primo rettangolo ed
A.Gori - Fondamenti di informatica 55
Calcola l area del primo rettangolo ed assegnalo alla variabile P2
Es.b 7h1 4P2 b * h2
Leggi il valore della base B del secondo rettangolo ed assegnalo alla variabile BLeggi il valore dell’altezza h1 del secondo rettangolo ed assegnalo alla variabile h1Calcola l’area del secondo rettangolo ed
A.Gori - Fondamenti di informatica 56
Calcola l area del secondo rettangolo ed assegnalo alla variabile P31
Es.B 10h2 3P31 B * h1
…Calcola l’area del triangolo rettangolo ed assegnalo alla variabile P32
A.Gori - Fondamenti di informatica 57
Es.P32 ½ * (B – b) * h1
…Calcola l’area dell’intera figura ed assegnalo alla variabile A
A.Gori - Fondamenti di informatica 58
Es.A P1 + P2 + P31 + P32
…Visualizza il valore della variabile AFine
A.Gori - Fondamenti di informatica 59
P0: InizioP1: Leggi un valore dall’esterno ed assegnalo alla variabile XP2: Leggi un valore dall’esterno ed assegnalo alla variabile YP3: Calcola la differenza d tra x e y ( d x-y)P4: Valuta se d>0: in caso affermativo esegui il passo P5 altrimenti
Problema: Determinare il maggiore tra due numeri interi x e y
A.Gori - Fondamenti di informatica 60
P4: Valuta se d>0: in caso affermativo esegui il passo P5 altrimenti esegui il passo P6
P5: Stampa la frase “Il massimo è “ seguita dal valore contenuto in x e vai al passo P7
P6: Stampa la frase “Il massimo è “ seguita dal valore contenuto in y e vai al passo P7
P7: Fine
HTML 11
Problema: Determinare il maggiore tra due numeri interi x e y
Inizio
Leggi X e Y
D X-Y
Diagramma di flusso
A.Gori - Fondamenti di informatica 61
D X Y
D > 0 ?
Scrivi “Max è X” Scrivi “Max è Y”
Fine
V F
Diagramma di flusso
•Formalismo grafico per rappresentare un algoritmo
•Non completamente standardizzato•Blocchi connessi con frecce che indicano la sequenza
A.Gori - Fondamenti di informatica 62
qdelle azioni da svolgere
Inizio
Leggi X e Y
D X-Y
Diagramma di flusso
Operazione di I/OElaborazione
A.Gori - Fondamenti di informatica 63
D X Y
D > 0 ?
Scrivi “Max è X” Scrivi “Max è Y”
Fine
Selezione a due vie(blocco condizionale
o decisionale)
Descrizione degli algoritmi
Diagramma a blocchi (flow chart):rappresentazione grafica di unalgoritmo che indica il flusso delle
A.Gori - Fondamenti di informatica 64
operazioni descritte dall’algoritmo chedevono essere eseguite a partire daidati iniziali per ottenere i risultatifinali.
Blocchi elementari
begininput azione
Inizio
A.Gori - Fondamenti di informatica 65
end outputC
verofalso
Fine
Esercizio
Definire l’algoritmo che risolve una generica equazione di secondo grado
della forma:
A.Gori - Fondamenti di informatica 66
ax2+bx+c=0
HTML 12
1. Inizio dell’algoritmo2. acquisire dall’esterno i valori dei coefficienti a, b e c;3. calcolare il valore Δ=b2-4ac;4 se Δ<0 allora non esistono radici reali: eseguire 8;
Soluzione di ax2+bx+c=0
Algoritmo
A.Gori - Fondamenti di informatica 67
4. se Δ<0, allora non esistono radici reali: eseguire 8;5. se Δ=0, allora x1=x2=-b/2a : eseguire 7;6. se Δ>0, allora x1=(-b+√Δ)/2a e x2=(-b-√Δ)/2a ;7. comunicare all’esterno i valori di x1 ed x2 ;8. Fine dell’algoritmo.
Flow-Chartbegin
a, b, c
Δ=b2-4ac
V FΔ<0
A.Gori - Fondamenti di informatica 68
end
Δ<0
FVΔ=0x1=-b/2a
x2=-b/2a
x1=(-b+√Δ)/2a
x2=(-b-√Δ)/2a
radici non reali
x1, x2
Dati ed Istruzioni
A.Gori - Fondamenti di informatica 69
Descrizione degli Algoritmi
A.Gori - Fondamenti di informatica 70
Descrizione degli Algoritmi
A.Gori - Fondamenti di informatica 71
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 72
HTML 13
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 73
TRATTAMENTO dell’INFORMAZIONE
A.Gori - Fondamenti di informatica 74
Strutture di controllo
A.Gori - Fondamenti di informatica 75
Strutture di controllo
A< >0
A,B
Basic
A.Gori - Fondamenti di informatica 76
IF A< >0 THEN RIS=B/A
RIS=B/A
if (A!=0) {
RIS=B/A;
}
C
Strutture di controllo
A.Gori - Fondamenti di informatica 77
Strutture di controllo
BasicA< B
A.Gori - Fondamenti di informatica 78
…IF A< B THEN
RIS=B-AELSE
RIS=A-BEND IF…
RIS=B-A RIS=A-B
HTML 14
Strutture di controllo
CA< B
A.Gori - Fondamenti di informatica 79
…if (A< B){
RIS=B-A}else{
RIS=A-B}
RIS=B-A RIS=A-B
Strutture di controllo
A.Gori - Fondamenti di informatica 80
Strutture di controllo
Basic
W=0
A.Gori - Fondamenti di informatica 81
W=0WHILE A>0
W=W+1A=A-1
WEND…
A>0
A=A-1W=W+1
Strutture di controllo
C
W=0
A.Gori - Fondamenti di informatica 82
W=0;WHILE (A>0) {
W=W+1;A=A-1;
}…
A>0
A=A-1W=W+1
Strutture di controllo
A.Gori - Fondamenti di informatica 83
Strutture di controllo
W=0
A=A-1W=W+1
A.Gori - Fondamenti di informatica 84
W=0DO
W=W+1A=A-1
LOOP WHILE A>0…
BasicA>0
HTML 15
Strutture di controllo
W=0
A=A-1W=W+1
A.Gori - Fondamenti di informatica 85
W=0;do{
W=W+1;A=A-1;
}while (A>0)
C
A>0
A.Gori - Fondamenti di informatica 86
A.Gori - Fondamenti di informatica 87 A.Gori - Fondamenti di informatica 88
A.Gori - Fondamenti di informatica 89 A.Gori - Fondamenti di informatica 90
HTML 16
Proposizioni e Predicati
A.Gori - Fondamenti di informatica 91
Tavole di verità
A.Gori - Fondamenti di informatica 92
Somma di 3 numeri
A.Gori - Fondamenti di informatica 93
Esercizio
Fornire l’algoritmo per calcolare la somma di N numeri
A.Gori - Fondamenti di informatica 94
Soluzione
A.Gori - Fondamenti di informatica 95
Lo pseudo codice è una sorta di linguaggio che descrive un algoritmo attraverso istruzioni simili alle istruzioni di un linguaggio di programmazione.
Pseudo Codice
A.Gori - Fondamenti di informatica 96
Si descrivono algoritmi utilizzando pseudo codice perché passare dalla descrizione in pseudo codice alla effettiva descrizione in un linguaggio di programmazione è (o dovrebbe essere) semplice.
HTML 17
Pseudo Codice – Tipi di Istruzioni
A.Gori - Fondamenti di informatica 97
Pseudo Codice – Strutture di controllo
A.Gori - Fondamenti di informatica 98
Pseudo Codice – Somma di tre numeri
Leggi Var1
Leggi Var2
Leggi Var3
A.Gori - Fondamenti di informatica 99
Leggi Var3
Somma = Var1 + Var2 + Var3
Scrivi Somma
Pseudo Codice – Somma di N numeri
Leggi N
I = 0
Somma = 0
Finché I < N
{
A.Gori - Fondamenti di informatica 100
{
Leggi Var
Somma = Somma + Var
I = I + 1
}
Scrivi Somma
Approccio Top-Down
La programmazione top-down è una tecnica di programmazione per la realizzazione di programmi con la scomposizione iterativa di un problema in sotto-problemi.
A.Gori - Fondamenti di informatica 101
La programmazione top-down si presta molto bene ad essere abbinata alla definizione di algoritmi con i diagrammi di flusso.
•All’inizio il diagramma di flusso è rappresentato da un nodo che rappresenta la soluzione al problema
•Questo nodo viene scomposto in una rete di nodi in modo iterativo
Approccio Top-Down
A.Gori - Fondamenti di informatica 102
•La scomposizione termina quando i singoli nodi possono essere rappresentati da semplici sequenze di istruzioni del linguaggio di programmazione scelto
HTML 18
Approccio Top-Down
Somma di N numeri
A.Gori - Fondamenti di informatica 103
Approccio Top-Down
Somma di N numeri
A.Gori - Fondamenti di informatica 104
Approccio Top-Down
Somma di N numeri: fase di inizializzazione
A.Gori - Fondamenti di informatica 105
Approccio Top-Down
Somma di N numeri: fase di “lettura e somma di N numeri”
A.Gori - Fondamenti di informatica 106
Approccio Top-Down
Somma di N numeri: Completo!
A.Gori - Fondamenti di informatica 107 A.Gori - Fondamenti di informatica 108
HTML 19
A.Gori - Fondamenti di informatica 109