• Non ci sono risultati.

Concetto di Elaborazione Elaborazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Concetto di Elaborazione Elaborazione"

Copied!
14
0
0

Testo completo

(1)

Elementi di Informatica 60 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 da eseguirsi secondo un definito ordine

La elaborazione viene definita sulle informazioni ed eseguita sui dati Dato: (rappresentazione del) valore di un’informazione

Dati Iniziali Dati Finali

Elaborazione

Concetto di Elaborazione

Un semplice esempio: calcolare il perimetro di una stanza quadrata

• Tipo e valori iniziali delle informazioni con attributo Lato e

5 m

Regola di

elaborazione Perimetro = Lato x 4 Lato = 5 Perimetro = ? Attributi

valore iniziale

Lato = 5 Perimetro = 20

valore finale Informazioni del problema:

Lato (Iniziale /input) Tipo: numero Intero Perimetro (Finale /output) Tipo: numero Intero

(2)

Elementi di Informatica 62 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, sui dati

Elementi di Informatica 63 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

(3)

Elementi di Informatica 64 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

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

(4)

Elementi di Informatica 66 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

Elementi di Informatica 67 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

(5)

Elementi di Informatica 68 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 mobile – Uso di un terminale Bancomat

– Calcolo del massimo comune divisore di numeri naturali – Come realizzare una pietanza (ricetta di cucina)

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”;

(6)

Elementi di Informatica 70 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 conoscenze/capacità dell’esecutore

• L’esecutore deve conoscere le azioni da svolgere e gli elementi/oggetti a cui applicarle

• Se il problema è complesso:

– 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

elementari (o primitivi), cioè problemi che possono essere risolti direttamente dall’esecutore mediante la descrizione di algoritmi che l’esecutore riesce a comprendere ed eseguire

Elementi di Informatica 71 Prof. G. A. Di Lucca - Univ. del Sannio

Un esempio di algoritmo

• inizio operazioni

• accendere il fornello del gas

• prendere una padella, un uovo e 10 g. di burro

• mettere il burro nella padella

• mettere la padella sul fuoco

• aspettare che il burro si è sciolto,

• rompere il guscio dell’uovo

• versare delicatamente nella padella l’albume ed il tuorlo

• aspettare che l’albume sia ben rappreso

• spegnere il fuoco

• versare l’uovo fritto in un piatto

• fine operazioni

Cucinare un uovo fritto al burro:

… sequenza di azioni, ciascuna comprensibile ed eseguibile dall’esecutore

… accendere, prendere, mettere, aspettare, rompere, versare, spegnere, ...

... fornello, padella, uovo, burro, piatto, ...

(7)

Elementi di Informatica 72 Prof. G. A. Di Lucca - Univ. del Sannio

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

…. Scomposizione in azioni più semplici di “accendere il fornello del gas”:

• prendere l’accendigas

• avvicinare l’accendigas al fornello

• girare la chiavetta del gas verso sinistra

• premere il pulsante dell’accendigas per innescare la scintilla

• Aspettare che compare la fiamma

• Smettere di premere il pulsante dell’accendigas

• allontanare l’accendigas dal fornello

• regolare l’intensità della fiamma sul valore ‘medio’

Un esempio di algoritmo

Algoritmo

• Lo stato iniziale, del contesto in cui è eseguito, può condizionare la correttezza dell’esecuzione …

• … nell’esempio precedente si è dato per scontato che:

• il fornello fosse spento ...

• l’accendino funziona ;

• ….

Vanno specificate le eventuali precondizioni …

(8)

Elementi di Informatica 74 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

Elementi di Informatica 75 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

(9)

Elementi di Informatica 76 Prof. G. A. Di Lucca - Univ. del Sannio

Algoritmo

• Dati un problema P e un esecutore E, l’algoritmo definisce una soluzione effettiva della classe dei problemi 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 più elementari) 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

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

(10)

Elementi di Informatica 78 Prof. G. A. Di Lucca - Univ. del Sannio

Rappresentazione degli algoritmi

• Algoritmo formulato per essere comunicato tra/eseguito da esseri umani

– sintetico e intuitivo

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

• Algoritmo formulato per essere eseguito da macchine automaticamente

– preciso ed eseguibile

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

Elementi di Informatica 79 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 (il linguaggio ‘naturale’ non lo è)

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

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

(11)

Elementi di Informatica 80 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

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

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

… deterministico, non ambiguità …

Modello di Elaborazione

Dati Iniziali Dati Finali

Esecutore

Programma

(12)

Elementi di Informatica 82 Prof. G. A. Di Lucca - Univ. del Sannio

Un semplice esempio

Un esecutore con le seguenti conoscenze/capacità operative:

• sa leggere ed interpretare le istruzioni indicate in una lista scrita 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, espresso in metri, di una stanza quadrata

Elementi di Informatica 83 Prof. G. A. Di Lucca - Univ. del Sannio

Risultati

P

Dati iniziali

L 5

20

1

0.

2 3

5

4 6

7 8 9

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

(13)

Elementi di Informatica 84 Prof. G. A. Di Lucca - Univ. del Sannio

L 5

P 20

1

0.

2 3

5

4 6

7 8 9

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

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

(14)

Elementi di Informatica 86 Prof. G. A. Di Lucca - Univ. del Sannio

L'esecutore di un programma e` un elaboratore elettronico:

• necessario conoscere l'insieme di istruzioni che esso è in grado di interpretare ed eseguire

• necessario conoscere quali sono tipi di informazioni che è in grado di rappresentare

Ciascun tipo di elaboratore possiede un proprio insieme di istruzioni rappresentate in linguaggio macchina (sequenze di bit)

Un Linguaggio di Programmazione permette di descrivere un programma con un linguaggio non ambiguo più vicino a quello naturale; un tale programma è poi automaticamente tradotto in quello in linguaggio macchina che l’elaboratore eseguirà

Algoritmo e Programma

Riferimenti

Documenti correlati

E’ possibile semplificare il circuito riducendo il numero di gate utilizzati. In

Esame di Sistemi di Elaborazione.

Se, invece, si fa clic sulla freccia a destra della casella, si può scegliere nel menu a discesa un valore di ingrandimento (ad esempio, 150%, 100%, 75%) o la porzione di documento

• Formula soddisfacibile: esiste una interpretazione per cui la formula è vera (“piove e non piove”), insoddifacibile altrimenti (“piove o fa-caldo”)2. • Ogni

• Una procedura di inferenza che applica la regola di risoluzione con una opportuna strategia è completa per dimostrare, attraverso il metodo di refutazione, qualsiasi formula

Per il progetto dei filtri numerici passa-banda, ottenuto con il banale metodo di piazzare opportunamente poli e zeri della H(z), i criteri da seguire sono simili a quelli visti per

Riassumendo, quindi, la DTFT (cioè l’operazione di finestratura e successivo campionamento di s(t)) ci può dare una accettabile approssimazione dello spettro 4 di s(t), a patto

• un segnale reale causale, la cui X(z) ha un solo polo (necessariamente reale), decade a 0 dopo un certo tempo se il polo si trova all’interno del cerchio di raggio unitario,