14
Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica 1 58 Elementi di Informatica Prof. G. A. Di Lucca - Univ. del Sannio Concetto di Elaborazione Elaborazione di dati Trasformazione di dati L’ elaborazione avviene tramite la definizione ed esecuzione di determinate regole La elaborazione viene definita sulle informazioni ed eseguita sui dati Dato: (rappresentazione del) valore di un’informazione Dati Iniziali Dati Finali Elaborazione 59 Elementi di Informatica Prof. G. A. Di Lucca - Univ. del Sannio Concetto di Elaborazione Un semplice esempio: calcolare il perimetro di una stanza quadrata Tipo e valori iniziali delle informazioni con attributo Lato e Perimetro (indefinito inizialmente) 5 m Regola di elaborazione Perimetro = Lato x 4 Lato = 5 Perimetro = ? Attributi valore iniziale Lato = 5 Perimetro = 20 valore finale valori finali di Lato e di Perimetro tra cui il/i risultato/i una regola, eseguita da un esecutore Informazioni del problema: Lato (Iniziale / input) Intero Perimetro (Finale / output) Intero

Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

1

58 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Concetto di Elaborazione

Elaborazione di dati Trasformazione di dati

L’ elaborazione avviene tramite la definizione ed esecuzione di

determinate regole La elaborazione viene definita sulle informazioni ed eseguita sui dati

Dato: (rappresentazione del) valore di un’informazione

Dati Iniziali Dati Finali

Elaborazione

59 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Concetto di Elaborazione Un semplice esempio: calcolare il perimetro di una stanza quadrata

• Tipo e valori iniziali delle informazioni con attributo Lato e

Perimetro (indefinito inizialmente)

5 m

Regola di

elaborazione Perimetro = Lato x 4

Lato = 5

Perimetro = ?

Attributi valore iniziale

Lato = 5

Perimetro = 20

valore finale

• valori finali di Lato e di Perimetro – tra cui il/i risultato/i

• una regola, eseguita da un esecutore

Informazioni del problema:

Lato (Iniziale / input) Intero

Perimetro (Finale / output) Intero

Page 2: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

2

60 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

... alcune considerazioni e puntualizzazioni

• non confondere le informazioni Lato e Perimetro con i

valori che assumono

– Lato e Perimetro sono attributi

• non confondere i valori con la loro rappresentazione

• la regola è definita sulle informazioni (su Lato e

Perimetro), non sui loro valori

• l’elaborazione avviene sui valori delle informazioni

61 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

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 (composta da azioni elaborative semplici)

• la semplicità o la complessità di una azione elaborativa dipende dalle capacità dell'ESECUTORE

• la trasformazione F più che una regola, in generale, costituisce un procedimento

Page 3: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

3

62 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

... Procedimento: un insieme di azioni elaborative che vanno

eseguite secondo un definito ordine ...

... una azione elaborativa ‘semplice’ per un esecutore, può risultare ‘complessa’ per un diverso esecutore,

… in funzione delle capacità dell’esecutore, un’azione elaborativa può richiedere la sua scomposizione in azioni elaborative più semplici, e la eventuale organizzazione di queste ultime in un diverso procedimento

63 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

ALGORITMO

Termine, originariamente, usato per indicare un procedimento

matematico per risolvere un problema

L'informatica lo eredita ... con qualche variante semantica;

… una definizione informale:

Un algoritmo è una sequenza finita di azioni elaborative (o di “passi di elaborazione”) che risolve automaticamente un problema

Page 4: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

4

64 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

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)

• tempo: ogni azione elaborativa si completa in un tempo finito

NB: nelle tecnologie informatiche il concetto di infinito è una astrazione teorica non modellabile e quindi intrattabile

ALGORITMO

65 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

AUTOMATICAMENTE

• esiste una macchina che può eseguirlo in modo autonomo

• 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): a parità di dati iniziali una stessa

elaborazione deve produrre sempre gli stessi risultati

Page 5: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

5

66 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo • Sequenza finita di istruzioni,

• comprensibili da un esecutore (si può trattare di uno strumento

automatico),

• che descrive come realizzare un compito

(come risolvere un “problema”).

• Alcuni esempi

– Istruzioni di montaggio di un elettrodomestico

– Uso di un terminale Bancomat

– Calcolo del massimo comune divisore di numeri naturali

– Come realizzare una pietanza (ricetta di cucina)

67 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmi ed esecutori • La descrizione di un algoritmo (metodo di soluzione di un problema)

dipende dalle capacità dell’esecutore

• Esempio:

Calcolo della superficie di un cerchio

– esecutore con un livello medio di scolarità ⇒ “determinare la superficie s di un cerchio di cui è noto il raggio r”;

– esecutore che non conosce come calcolare l’area del cerchio ⇒ “la superficie di un cerchio è s = π r2”;

– esecutore che non conosce ⇒ … ⇒ “eleva al quadrato il raggio e quindi moltiplica il risultato per 3.1415”;

– … ⇒ “moltiplica il raggio per se stesso e poi il risultato per 3.1415”;

Page 6: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

6

68 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmi ed esecutori

• La descrizione della soluzione di un problema deve essere comprensibile all’esecutore, ovvero adeguarsi alle capacità/abilità dell’esecutore

• Se troppo complessa (non comprensibile) per l’esecutore:

– si scompone il problema originario in sottoproblemi ;

– ovvero in problemi ciascuno più semplice del problema totale

– si prosegue nella scomposizione fino a giungere a problemi problemi elementarielementari (o primitiviprimitivi), cioè problemi che possono essere risolti direttamente dall’esecutore mediante la descrizione di azioni elaborative che l’esecutore riesce a comprendere ed eseguire

69 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

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:

… una sequenza di azioni, ciascuna comprensibile ed eseguibile

dall’esecutore

Page 7: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

7

70 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

…. E se l’esecutore non sa accendere il fornello del gas?

…. Scomposizione in azioni più semplici:

• prendere l’accendigas

• avvicinare l’accendigas al fornello

• girare la chiavetta del gas verso destra

• 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’

Un esempio di algoritmo

71 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Un esempio di algoritmo Calcolare l’area di un terreno agricolo avente la forma riportata in figura

A

B

C

Calcola l’area del trapezio A

Calcola l’area del triangolo B

Calcola l’area del rettangolo C

Somma le tre aree calcolate

Area_trapezio = [(Bmag + bmin) * h]/2

Area_triangolo = (Base * h)/2

Area_rettangolo = Base * h

Area_terreno = Area_trapezio + Area_triangolo + Area_rettangolo

Decomposizione in problemi più semplici

Page 8: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

8

72 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Un esempio di algoritmo Calcolare l’area di un terreno agricolo avente la forma riportata in figura

Calcola l’area del trapezio Tp1

Calcola l’area del trapezio Tp2

Calcola l’area del parallelogramma P1

Somma le aree calcolate

Area_trapezio = [(Bmag + bmin) * h]/2

Area_parallelogramma = Base * h

Area_terreno=Area_Tp1+Area_Tp2+Area_Tr1+Area_Tr2+ Area_P1

Decomposizione in problemi più semplici ... più soluzioni per uno stesso problema ...

Calcola l’area del triangolo Tr1

P1

Tr1

Tp1

Tp2

Tr2 Calcola l’area del triangolo Tr2

73 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo

• Un algoritmo è:

– Definito da un soggetto descrittoredescrittore

• richiede un’attività di descrizione del problema e della sua soluzione, scomponendola fino a giungere a una successione di istruzioni elementariistruzioni elementari (ciascuna associata al corrispondente problema elementare) da eseguirsi per la soluzione;

– Eseguito da soggetto esecutoreesecutore

• richiede l’esecuzione delle azioni elementariazioni elementari associate alle istruzioni elementari identificate. Le azioni elementari vanno eseguite secondo la sequenza definita perché, in generale, ognuna di esse opera su dati prodotti dalle azioni eseguite precedentemente.

Page 9: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

9

74 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Istruzioni e azioni elementari

• Ogni istruzione elementare è associata ad un’azione

elementare, o ad una successione di azioni elementari, che

può essere direttamente compiuta dall’esecutore.

• Le azioni elementari vengono interpretate in termini

funzionali, come delle entità che trasformano i dati che

ricevono in ingresso (input) in risultati (output), con ciò

prescindendo dalle modalità con cui tale trasformazione

viene effettuata, cioè assumendo un modello “a scatola

nera” (black box).

75 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo

• Dati un problema P e un esecutore E, l’algoritmo definisce una soluzione effettiva del problema P per l’esecutore E, ovvero una sequenza finita di istruzioni elementari tale che:

– l’esecutore è in grado di interpretare, associando a ciascuna di esse

l’azione (o la successione di azioni) che deve compiere per eseguirla

– la successione di azioni risultante dall’interpretazione delle istruzioni costituisca una procedura effettiva per l’esecutore stesso terminante in un tempo finito

• In generale, possono esistere diverse soluzioni effettive (algoritmi) dello stesso problema per lo stesso esecutore

Page 10: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

10

76 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Proprietà di un algoritmo Un algoritmo, e quindi ciascuna istruzione che lo compone, deve

soddisfare le seguenti proprietà:

• Finitezza – L’algoritmo/l’azione deve concludersi in un tempo finito

• Osservabilità – L’algoritmo/l’azione deve avere un effetto osservabile, cioè deve produrre qualcosa

• Riproducibilità – a partire dallo stesso stato iniziale, la stessa azione deve produrre sempre lo stesso

risultato

• Correttezza – L’algoritmo perviene alla soluzione del compito cui è preposto, senza difettare di alcun

passo fondamentale

• Efficienza – L’algoritmo perviene alla soluzione del problema usando la minima quantità di risorse

fisiche disponibili

• tempo di esecuzione, memoria, …

77 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Rappresentazione degli algoritmi

• Algoritmo formulato per essere comunicato tra esseri umani

– sintetico e intuitivo

– rappresentato in linguaggi informali o semi-formali (linguaggio naturale, diagrammi di flusso, …)

• Algoritmo formulato per essere eseguito automaticamente

– preciso ed eseguibile

– codificato in linguaggi comprensibili dagli esecutori automatici (linguaggio macchina o linguaggio di programmazione di alto livello)

Page 11: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

11

78 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo, Linguaggio, 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

Un PROGRAMMA è una sequenza finita di ‘frasi’ (istruzioni) ciascuna

esprimente operazioni che l’esecutore può comprendere ed eseguire

Il PROGRAMMA che deve essere eseguito è memorizzato nei registri

della memoria dell’esecutore

Il linguaggio deve essere ‘non ambiguo’, ovvero ciascuna frase

costruita con esso deve evocare un’unica azione elaborativa

Che bella fiera ! ... Mi piace la pesca ... Schiacciati dalle imposte ...

Pagare la mora ... Immerso nello stagno ...

79 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo, Linguaggio, Programma

• Un Programma deve soddisfare le 5 proprietà di un algoritmo

… finitezza, osservabilità, riproducibilità, efficienza, correttezza

• Lo stato iniziale, del contesto in cui è eseguito, può condizionare

la correttezza dell’esecuzione … (precondizioni)

– Esempio: indicazioni di un itinerario

• … per raggiungere a piedi la stazione di Benevento dal Duomo:

proseguire diritto e poi svoltare nella prima strada a destra ...

• … si è assunto che la persona sia posizionata in un certo modo (ad es.

il duomo è alla sua sinistra);

se la stessa istruzione è eseguita da una persona posizionata in modo

differente (es. il duomo è alla sua destra, o in un’altra strada, o non a

piedi) il risultato, eseguendo le stesse istruzioni, non sarà quello di

raggiungere la stazione …

Page 12: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

12

80 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo e Programma

• Un algoritmo descrive il metodo generale per risolvere una

determinata classe di problemi, un programma è la sua

descrizione specifica per un dato esecutore

• Un programma è un algoritmo che è stato specializzato per la

risoluzione, sotto specifiche circostanze, di una specifica classe

di problemi da parte di un determinato tipo di esecutore e

descritto utilizzando uno specifico linguaggio comprensibile a

quell’esecutore

81 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Modello di Elaborazione

Dati Iniziali Dati Finali

Esecutore

Programma

Page 13: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

13

82 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Un semplice esempio

Un esecutore con limitate capacità operative:

• sa leggere ed interpretare le istruzioni indicate in una lista riportata

su un foglio;

• sa leggere da/scrivere su appositi fogli i valori iniziali da usare;

• sa usare una semplice calcolatrice;

• sa leggere e trascrivere su appositi fogli i risultati intermedi e finali

dell’elaborazione

• Deve essere risolto il problema di calcolare il perimetro di una

stanza quadrata

83 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

Risultati

P

Dati iniziali

L 5

20

1

0.

2 3

5 4 6

7 9 8

0 = .

+ - * / C

L = 5

P =20

1. Inizia operazioni calcola

‘perimetro stanza quadrata’

2. Prendi la misura del

lato e scrivila sul foglio L

3. Azzera la calcolatrice

4. Leggi il valore sul foglio L

e copialo sulla calcolatrice

5. Premi il tasto * della calcolatrice

6. Premi il tasto 4 della calcolatrice

7. Premi tasto = della calcolatrice

8. Leggi dato su calcolatrice e

copialo sul foglio P

9. Leggi valore sul foglio P e

forniscilo come risultato

10. Termina operazioni

0.

5.

5.

20.

4.

Il Perimetro

è 20 metri

Page 14: Concetto di Elaborazione - unisannio.it · Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

Elementi di Informatica a.a. 2015/16 - Prof. G.A. Di Lucca

Dipartimentodi Ingegneria Università del Sannio - CdL Ingegneria Energetica

14

84 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

L 5

P 20

1

0.

2 3

5 4 6

7 9 8

0 = .

+ - * / C

1. Inizia operazioni per calcolare

‘perimetro stanza quadrata’

2. Prendi la misura del

lato e scrivila sul foglio L

3. Azzera la calcolatrice

4. Leggi il valore sul foglio L

e copialo sulla calcolatrice

5. Premi il tasto * della calcolatrice

6. Premi il tasto 4 della calcolatrice

7. Premi tasto = della calcolatrice

8. Leggi dato su calcolatrice e

copialo sul foglio P

9. Leggi valore sul foglio P e

forniscilo come risultato

10. Termina operazioni

Registri

•Dati

•Istruzioni

Controllore Elaborazione Interprete/Esecutore istruzioni

Esecutore operazioni

Ambiente di Elaborazione

Principali elementi caratterizzanti

85 Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio

inoltre, acquisizione del programma e sua memorizzazione nei registri

operazioni di ingresso: i dati vengono acquisiti dall'esterno e

memorizzati nei registri

operazioni di trasferimento: dei dati tra registri o altri

componenti

operazioni aritmetiche e logiche: eseguite da appositi

componenti

operazioni di uscita, i dati relativi ai risultati vengono letti dai

registri e trasferiti all'esterno

Ambiente di Elaborazione

Principali Tipi di Operazioni