La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro."— Transcript della presentazione:

1 BIOINFO3 - Lezione 151 ISTRUZIONI UnISTRUZIONE è un ordine fornito ad una entità esecutrice di eseguire unAZIONE Ad esempio, possiamo dire ad un nostro amico di porgerci un libro, oppure dire alla nostra televisione di mostrarci il primo canale… Lesecutore 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. luomo, il computer) ESECUTORE istruzioneazione

2 BIOINFO3 - Lezione 152 PROGRAMMI 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 istruzione 1 azione 1 istruzione 2 istruzione n ……….. azione 2 ……. azione n PROGRAMMA PROCESSO

3 BIOINFO3 - Lezione 153 IL 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

4 BIOINFO3 - Lezione 154 ALGORITMO 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 dellalgoritmo, cioè la sua traduzione in un linguaggio comprensibile dal computer

5 BIOINFO3 - Lezione 155 SOLUZIONE DI UN PROBLEMA Lapproccio 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 lintero problema nella sua complessità si tentano di risolvere i singoli sottoproblemi più semplici problema sottoproblema 1 sottoproblema 2 sottoproblema n

6 BIOINFO3 - Lezione 156 FLOW-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 (unistruzione), connessi tra loro da archi orientati, che permettono di identificare lordine in cui effettuare le azioni

7 BIOINFO3 - Lezione 157 INIZIO E FINE Linizio e la fine di un algoritmo in un flow-chart sono rappresentati da un blocco di tipo ovale. Allinterno 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 lesecuzione dellalgoritmo INIZIO FINE

8 BIOINFO3 - Lezione 158 AZIONE GENERICA Quando vogliamo rappresentare lesecuzione di una azione generica si usa un blocco rettangolare. Allinterno del blocco è indicata lazione. Nella maggior parte dei casi lazione consiste nellassegnare 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 listruzione (effettuata loperazione) varrà 4 AZIONE A=A+1

9 BIOINFO3 - Lezione 159 TEST I test permettono di definire esecuzioni alternative. A seconda del risultato di unespressione 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 lespressione logica indicata. Se questa è VERA si prosegue per il percorso indicato con vero, se FALSA si prosegue per laltro percorso TEST vero falso

10 BIOINFO3 - Lezione 1510 INPUT Se desideriamo passare allalgoritmo un valore (che quindi potrà variare da esecuzione ad esecuzione) si disegna un parallelogramma Normalmente allinterno 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 dellalgoritmo. In questesempio possiamo chiamare PESO la variabile a cui assegnare il valore ricevuto dallesterno PESO

11 BIOINFO3 - Lezione 1511 OUTPUT 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. Cera 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 linput

12 BIOINFO3 - Lezione 1512 UN ESEMPIO Vogliamo disegnare un semplice flow-chart che prepari una dieta personalizzata in base al peso di una persona, fornito in input

13 BIOINFO3 - Lezione 1513 UN ALTRO ESEMPIO Leggere un numero in input. Se pari dividerlo per 2, se dispari moltiplicarlo per 2. Stampare il risultato

14 BIOINFO3 - Lezione 1514 ESEMPI DI ESECUZIONE inizio 5 a a pari? 5 pari? falso a=a*2=5*2=10 stampare a 10 fine inizio 8 a a pari? 8 pari? vero a=a/2=8/2=4 stampare a 4 fine

15 BIOINFO3 - Lezione 1515 UN ALTRO ESEMPIO Leggere dei numeri dallinput e sommarli finchè non viene letto un numero negativo. Stampare il numero dei numeri letti e la loro somma e media.

16 BIOINFO3 - Lezione 1516 ESECUZIONE inizio n=0, s=0 3 a a<0? 3<0? falso n=n+1=0+1=1 s=s+a=0+3=3 7 a a<0? 7<0? falso n=n+1=1+1=2 s=s+a=3+7=10 -1 a a<0? -1<0? vero n>0? 2>0? vero m=s/n=10/2=5 stampare n,s,m fine

17 BIOINFO3 - Lezione 1517 ESERCIZIO Provate voi adesso: Leggere dei numeri da input fino a trovarne uno uguale a 0. Stampare il valore massimo dei numeri letti

18 BIOINFO3 - Lezione 1518 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

19 BIOINFO3 - Lezione 1519 RIEPILOGO Istruzioni Programmi Algoritmi e soluzione di problemi Flow-Chart: blocchi di inizio e fine, di azione, di test, di input e output


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

Presentazioni simili


Annunci Google