BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di...

19
BIOINFO3 - Lezione 15 1 ISTRUZIONI ISTRUZIONI Un’ISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire un’AZIONE Ad esempio, possiamo dire ad un nostro amico di porgerci un libro, oppure “dire” alla nostra televisione di mostrarci il primo canale… L’esecutore potrà essere in grado di svolgere solo un insieme limitato di azioni (es. la TV, un frullatore), oppure potrà essere GENERAL PURPOSE, cioè capace di eseguire una grande varietà di azioni (es. l’uomo, il computer) ESECUTORE istruzi one azione

Transcript of BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di...

Page 1: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 11

ISTRUZIONIISTRUZIONI

Un’ISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire un’AZIONE

Ad esempio, possiamo dire ad un nostro amico di porgerci un libro, oppure “dire” alla nostra televisione di mostrarci il primo canale…

L’esecutore potrà essere in grado di svolgere solo un insieme limitato di azioni (es. la TV, un frullatore), oppure potrà essere GENERAL PURPOSE, cioè capace di eseguire una grande varietà di azioni (es. l’uomo, il computer)

ESECUTOREistruzione azione

Page 2: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 22

PROGRAMMIPROGRAMMI

Una sequenza di istruzioni forma un PROGRAMMA. La sequenza delle azioni corrispondenti è chiamata PROCESSO

Es: Televisione: mostrami il canale 1, poi alza il volume, poi abbassa la luminosità

ESECUTORE

istruzione1 azione1istruzione2

istruzionen

……….. azione2…….azionen

PROGRAMMA PROCESSO

Page 3: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 33

IL COMPUTERIL COMPUTER

Il computer è un esecutore general purpose in grado di accettare istruzioni fornitegli utilizzando un particolare LINGUAGGIO.

E’ inoltre incredibilmente veloce e preciso. Bisogna però sempre ricordarsi che è in grado di eseguire solo ed esattamente quanto gli viene richiesto. Non ha alcuna capacità di capire quello che sta facendo, né tantomeno verificare se ciò corrisponde esattamente ai nostri desideri

Page 4: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 44

ALGORITMOALGORITMO

Con il termine ALGORITMO si indica la sequenza di azioni necessarie (o le corrispondenti istruzioni) per risolvere un particolare problema.

Differenza tra PROCESSO e ALGORITMO (sempre che esista una tale differenza). Il termine algoritmo è spesso usato infatti tranquillamente come sinonimo sia di processo sia di programma

La differenza, comunque, è un po’ sottile. Un processo è un insieme generico di azioni, eventualmente anche fini a se stesse. Un algoritmo è invece finalizzato alla soluzione di un particolare problema. Un programma rappresenta una implementazione dell’algoritmo, cioè la sua traduzione in un linguaggio comprensibile dal computer

Page 5: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 55

SOLUZIONE DI UN PROBLEMASOLUZIONE DI UN PROBLEMA

L’approccio tipicamente utilizzato (in informatica) per risolvere un problema e quindi per sviluppare un algoritmo (eventualmente tradotto poi in un programma scritto in un qualche linguaggio di programmazione) è detto TOP-DOWN.

Il problema è spezzato in diversi sottoproblemi e anziché risolvere l’intero problema nella sua complessità si tentano di risolvere i singoli sottoproblemi più semplici

problema

sottoproblema1 sottoproblema2 sottoprobleman

Page 6: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 66

FLOW-CHARTFLOW-CHART

Una notazione usata per descrivere un algoritmo è quella cosiddetta dei FLOW-CHART (diagrammi di flusso).

Un diagramma di flusso descrive il “flusso” delle azioni da svolgere rappresentandolo in una forma grafica.

In questa notazione si disegnano dei blocchi, ciascuno dei quali rappresenta una azione (un’istruzione), connessi tra loro da archi orientati, che permettono di identificare l’ordine in cui effettuare le azioni

Page 7: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 77

INIZIO E FINEINIZIO E FINE

L’inizio e la fine di un algoritmo in un flow-chart sono rappresentati da un blocco di tipo ovale.

All’interno del blocco normalmente è scritto se si tratta di un blocco di INIZIO o di FINE. Il significato è ovvio: un blocco di inizio è sempre il primo blocco di un flow-chart, mentre un blocco di fine fa terminare l’esecuzione dell’algoritmo

INIZIO

FINE

Page 8: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 88

AZIONE GENERICAAZIONE GENERICA

Quando vogliamo rappresentare l’esecuzione di una azione generica si usa un blocco rettangolare.

All’interno del blocco è indicata l’azione. Nella maggior parte dei casi l’azione consiste nell’assegnare ad una VARIABILE il risultato di una ESPRESSIONE calcolata in quel momento.

Esempio: “ricava il valore della variabile A, somma 1 a questo valore ed assegna il risultato alla variabile A stessa”

Se prima del blocco la variabile A valeva 3, una volta eseguita l’istruzione (effettuata l’operazione) varrà 4

AZIONE

A=A+1

Page 9: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 99

TESTTEST

I test permettono di definire esecuzioni alternative.

A seconda del risultato di un’espressione logica (che quindi sarà o VERO o FALSO) è possibile scegliere quale delle due esecuzioni alternative dovrà essere effettivamente intrapresa.

Arrivati al blocco di test, rappresentato da un rombo, viene valutata l’espressione logica indicata. Se questa è VERA si prosegue per il percorso indicato con “vero”, se FALSA si prosegue per l’altro percorso

TEST

vero

falso

Page 10: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1010

INPUTINPUT

Se desideriamo passare all’algoritmo un valore (che quindi potrà variare da esecuzione ad esecuzione) si disegna un parallelogramma

Normalmente all’interno del blocco è indicato il nome della variabile destinata a ricevere il valore di input

Ad esempio in un algoritmo che prepara la dieta di una persona un dato di input potrebbe essere il peso della persona (che è un parametro variabile da persona a persona e anche nel tempo, per la stessa persona) da fornire di volta in volta ad ogni differente esecuzione dell’algoritmo. In quest’esempio possiamo chiamare PESO la variabile a cui assegnare il valore ricevuto dall’esterno

PESO

Page 11: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1111

OUTPUTOUTPUT

In questo caso la simbologia è piuttosto varia.

All`inizio si usavano blocchi diversi a seconda del tipo di apparecchiatura che portava in output i risultati.

C’era un simbolo per le stampanti, un simbolo per il video, un simbolo per il disco, uno per il nastro magnetico, uno per le schede perforate e così via…

Oggi preferibilmente viene usato invece lo stesso simbolo a parallelogramma usato per l’input

Page 12: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1212

UN ESEMPIOUN ESEMPIOVogliamo disegnare un semplice flow-chart che prepari una dieta personalizzata in base al peso di una persona, fornito in input

Page 13: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1313

UN ALTRO ESEMPIOUN ALTRO ESEMPIO

Leggere un numero in input. Se pari dividerlo per 2, se dispari moltiplicarlo per 2. Stampare il risultato

Page 14: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1414

ESEMPI DI ESECUZIONEESEMPI DI ESECUZIONE

inizio

5a

a pari? 5 pari? falso

a=a*2=5*2=10

stampare a 10

fine

------------------------

inizio

8a

a pari? 8 pari? vero

a=a/2=8/2=4

stampare a 4

fine

Page 15: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1515

UN ALTRO ESEMPIOUN ALTRO ESEMPIO

Leggere dei numeri dall’input e sommarli finchè non viene letto un numero negativo. Stampare il numero dei numeri letti e la loro somma e media.

Page 16: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1616

ESECUZIONEESECUZIONE

inizion=0, s=03aa<0? 3<0? falson=n+1=0+1=1s=s+a=0+3=37aa<0? 7<0? falson=n+1=1+1=2s=s+a=3+7=10-1aa<0? -1<0? veron>0? 2>0? verom=s/n=10/2=5stampare n,s,m 2 10 5fine

Page 17: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1717

ESERCIZIOESERCIZIO

Provate voi adesso: Leggere dei numeri da input fino a trovarne uno uguale a 0. Stampare il valore massimo dei numeri letti

Page 18: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1818

Esercizio 11. Disegnare un flow-chart per risolvere il seguente problema. Leggere da input due numeri a e b. Se i due numeri sono uguali stampare “NUMERI UGUALI”. Altrimenti stampare “NUMERI DIVERSI”

Esercizio 12. Leggere una frase f da input. Leggere un numero n da input. Stampare n volte la frase f

Page 19: BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro.

BIOINFO3 - Lezione 15 1919

RIEPILOGORIEPILOGO

•Istruzioni

•Programmi

•Algoritmi e soluzione di problemi

•Flow-Chart: blocchi di inizio e fine, di azione, di test, di input e output