1
- Calcolo automatico
• un insieme di Dati Iniziali
• un Insieme di regole (programma)
• un Esecutore (macchina) che esegue le istruzioni producendo dati intermedi e dati finali (risultati)
A partire da un insieme di Dati Iniziali, la Macchina esegue il programma e produce un insieme di Dati Finali
- Approccio teorico: modello (astrazione della realtà) - per analizzare, simulare, studiare, progettare, ...
- Approccio tecnico: realizzazione degli strumenti dell’informatica
Informatica
2
Concetto di Elaborazione
Il concetto astratto di elaborazione è quello di trasformazione di dati
Un semplice problema: calcolare il perimetro di una stanza quadrata
• valori iniziali di L e di P (indefinito)
• valori finali di L e di P
• una regola, eseguita da un esecutore
L = 5 P = ? 5 m
P= L x 4
L = 5
P = 20
Regola
3
... alcune considerazioni e puntualizzazioni
• non confondere lato e perimetro con i valori che assumono
• non confondere i valori con la loro rappresentazione
• la regola é definita su lato ed perimetro , non sui loro valori
Dato: è la rappresentazione del valore di "un oggetto"
la elaborazione viene fatta sui dati
Es. : Ordinare alfabeticamente un elenco di nomi
... non tutti i "problemi" sono di tipo matematico ....
Elenco ordinato Elenco da
ordinare
Mario Paolo Gennaro Anna Antonio
Anna Antonio Francesco Gennaro Mario
5
Y=F(X)
X insieme dei dati iniziali Y insieme dei dati finali
F regola di trasformazione dei dati (da X a Y)
Modello di Elaborazione
• F definisce la AZIONE ELABORATIVA che deve essere fatta sui dati per ottenere la trasformazione desiderata
• una azione elaborativa può essere semplice (atomica) o complessa (da decomporre in azioni elaborative semplici)
• la semplicità o la complessità di una azione elaborativa dipende dall'ESECUTORE
• la trasformazione F più che una regola, in generale, costituisce un procedimento
6
... ovvero la regola di fatto evoca un PROCEDIMENTO costituito da un insieme di azioni elaborative che vanno eseguite secondo un definito ordine ...
... una azione elaborativa semplice per noi, può richiedere la sua scomposizione in azioni elaborative più semplici e la eventuale organizzazione di queste ultime in un procedimento se l'esecutore é un altro
7
ALGORITMO
Termine, preesistente l’era dell’informatica, usato per indicare un procedimento matematico per risolvere un problema
L'informatica lo eredita ... con qualche variante semantica; una definizione informale:
L'algoritmo è una sequenza finita di azioni elaborative (o di “passi di elaborazione”) che risolve automaticamente un problema
il concetto di sequenza si riferisce all'ordine in cui le azioni elaborative debbono essere eseguite
SEQUENZA
La sequenza deve essere FINITA con riferimento allo spazio ed al tempo
• spazio: numero finito di azioni elaborative (passi)
9
AUTOMATICAMENTE
• esiste una macchina che può eseguirlo
• la macchina una volta avviata è in grado di evolvere da sola realizzando la elaborazione
• il procedimento descritto dall'algoritmo è
DETERMINISTICO: la sequenza è rigidamente fissata e niente è lasciato al caso, a fattori probabilistici
10
Un esempio di algoritmo
• accendere il fornello del gas
• prendere una padella, un uovo e 20 g. di burro
• mettere il burro nella padella
• mettere la padella sul fuoco
• quando il burro si è sciolto,
• rompere il guscio dell’uovo
• far cadere delicatamente nella padella l’albume ed il tuorlo
• quando l’albume è ben rappreso spegnere il fuoco Cucinare un uovo al
burro:
11
Un esempio di algoritmo
…. E se l’esecutore non sa accendere il fornello del gas?
…. Scomposizione in azioni più semplici:
•prendere l’accendigas
•girare la chiavetta del gas verso sinistra
•avvicinare l’accendigas al fornello
•premere il pulsante dell’accendigas per innescare la scintilla
•quando compare la fiamma non premere più il pulsante dell’accendigas
•allontanare l’accendigas dal fornello
•regolare l’intensità della fiamma sul valore ‘medio’
Linguaggio e Programma
Un algoritmo viene descritto tramite un LINGUAGGIO Il linguaggio di descrizione di un algoritmo deve essere
comprensibile all’esecutore, ovvero alla macchina automatica che lo esegue
Un PROGRAMMA è la descrizione formalizzata di un algoritmo, espressa in un linguaggio di programmazione
13
Un semplice esempio
L’esecutore è un operatore con limitate capacità intellettive:
• sa leggere ed interpretare le semplici istruzioni indicate in una lista riportata su un foglio;
• sa usare una semplice calcolatrice;
• sa leggere i valori iniziali da usare da appositi fogli;
• sa prendere nota e trascrivere i risultati intermedi e finali dell’elaborazione su appositi fogli
14
1
0.
2 3
5
4 6
7 8 9
0 . =
+ - * / C
1. Inizia operazioni 2. Prendi la misura del lato e copiala in L 3. Azzera la calcolatrice 4. Leggi valore in L e copialo sulla calcolatrice 5. Premi tasto *
6. Premi tasto 4 7. Premi tasto =
8. Leggi dato su calcolatrice e copialo in P
9. Leggi valore in P e forniscilo come risultato 10. Termina operazioni
L = 5
P=20
5
20
Dati iniziali
Risultati
15
inoltre, acquisizione del programma e sua memorizzazione sul foglio di lavoro
operazioni di ingresso, i dati vengono acquisiti dall'esterno e memorizzati sul foglio di lavoro
operazioni di trasferimento dei dati dal foglio di lavoro alla calcolatrice e viceversa
operazioni aritmetiche e logiche, eseguite dalla calcolatrice operazioni di uscita, i dati relativi ai risultati vengono letti dal foglio di lavoro e trasferiti all'esterno