GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo
L’ALGORITMO L’ algoritmo è un insieme finito di operazioni, che devono essere eseguite per portare a termine un dato compito e risolvere un problema. Esempi di algoritmo: Le istruzioni per usare un elettrodomestico Le istruzioni per fare il caffè Le regole per eseguire la divisione tra due numeri Dati iniziali Input Soluzione adottata Soluzione adottata Algoritmo Risultati attesi Output
L’ESECUTORE Deve esistere un esecutore (uomo o macchina) in grado di eseguire ogni operazione. L’esecutore deve terminare il suo lavoro in un numero finito di passi. Gli algoritmi sono espressi mediante un linguaggio e sono realizzati da un esecutore.
Nell’elaboratore gli algoritmi per la soluzioni di particolari problemi sono espressi mediante un linguaggio di programmazione. Linguaggio di programmazione = linguaggio formale che l’elaboratore e’ in grado di comprendere. Un programma e’ la descrizione di un algoritmo ed e’ costituito da una sequenza di istruzioni che il calcolatore e’ in grado di comprendere ed eseguire.
METODOLOGIA DI LAVORO Risoluzione di un problema Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita Seconda fase: 1)Definizione delle azioni da intraprendere 2)Definizione dell’esatta sequenza delle azioni da compiere (fasi) per ottenere la soluzione del problema Seconda fase: 1)Definizione delle azioni da intraprendere 2)Definizione dell’esatta sequenza delle azioni da compiere (fasi) per ottenere la soluzione del problema Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita Prima fase: 1)Definizione del problema 2)Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione cioè in ingresso 3)Descrizione dei risultati da ottenere cioè in uscita
IL DIAGRAMMA A BLOCCHI Il diagramma a blocchi è uno schema grafico; esso permette un visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni. I diagrammi a blocchi sono formati da simboli di forma diversa, ciascuno con un proprio significato; all’interno di ogni simbolo è presente un breve testo sintetico. Per unire fra loro i vari simboli si usano delle frecce. condizione sìno Ingresso e uscita Inizio Fine Leggi base altezza Scrivi area Area =base * altezza
Esempio di algoritmo sequenziale UD 1: concetti e ruoli dell'informazione Si vuole calcolare il prodotto dei due numeri: num1 e num2. ALGORITMO Prodotto() Leggi(num1) Leggi(num2) prod=Prodotto(num1,num2) Scrivi(prod);
Esempio: Date le misure dei due cateti di un triangolo rettangolo, si vuole calcolare la misura del perimetro del triangolo Dati iniziali sono: Cateto 1 Cateto 2 Risultato finale: perimetro Per il calcolo del perimetro abbiamo bisogno dell’ipotenusa che possiamo calcolare a partire dai cateti (teorema di Pitagora). L’ipotenusa è una variabile di lavoro Per fare in modo che l’esecutore acquisisca i dati possiamo usare le istruzioni del tipo: leggi, acquisisci, accetta. Per fare in modo che l’esecutore comunichi i dati possiamo usare le istruzioni del tipo: scrivi, comunica, mostra. Esempio di algoritmo sequenziale
Non Ambiguo Deterministico Finito Generale Riproducibile Esaustivo lE sei caratteristiche dell’algoritmo
DEFINIZIONE a)L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. a)L’algoritmo deve coprire tutti i casi possibili. a)Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. a)Ogni istruzione dell’algoritmo deve produrre un risultato osservabile. a)I passi costituenti l’algoritmo devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale. a)L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso. CARATTERISTICA DEFINIZIONE 1. Non Ambiguo a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. 2. Deterministico b) L’algoritmo deve coprire tutti i casi possibili. 3. Finito c) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. 4. Generale d) Ogni istruzione dell’algoritmo deve produrre un risultato osservabile. 5. Riproducibile e) I passi costituenti l’algoritmo devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale. 6. Esaustivo f) L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso. Collega la caratteristica alla definizione
CARATTERISTICA DEFINIZIONE 1. Non Ambiguo 1e a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. 2. Deterministico 2c b) L’algoritmo deve coprire tutti i casi possibili. 3. Finito 3f c) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. 4. Generale 4a d) Ogni istruzione dell’algoritmo deve produrre un risultato osservabile. 5. Riproducibile 5d e) I passi costituenti l’algoritmo devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale. 6. Esaustivo 6b f) L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso. soluzioni
12 Il ciclo for Nella struttura del ciclo for: azione di inizializzazione condizione di ripetizione corpo del ciclo azione di continuazione Sintassi: for (Inizializzazione; Condizione; Continuazione) Blocco istruzioni fine del for
13 Sommare separatamente i numeri pari e quelli dispari compresi tra 1 e 100 (codifica in Javascript) var sompari= 0, somdispari = 0; var num; for (num=1; num<=99; num=num+2) { somdispari = somdispari + num; sompari = sompari + num+1; } Esempio di uso del ciclo for
SITOGRAFIA