GLI ALGORITMI Appunti preparati dalla prof ssa Maria

  • Slides: 14
Download presentation
GLI ALGORITMI Appunti preparati dalla prof. ssa Maria D’Angelo

GLI ALGORITMI Appunti preparati dalla prof. ssa Maria D’Angelo

L’ALGORITMO L’ algoritmo è un insieme finito di operazioni, che devono essere eseguite per

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 Risultati attesi Algoritmo Output

L’ESECUTORE Gli algoritmi sono espressi mediante un linguaggio e sono realizzati da un esecutore.

L’ESECUTORE Gli algoritmi sono espressi mediante un linguaggio e sono realizzati da un 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.

Nell’elaboratore gli algoritmi per la soluzioni di particolari problemi sono espressi mediante un linguaggio

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) 1) Definizione del problema

METODOLOGIA DI LAVORO Risoluzione di un problema Prima fase: 1) 1) Definizione del problema 2) 2) Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo aa disposizione cioè in in ingresso 3) 3) Descrizione dei risultati da da ottenere cioè in 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

IL DIAGRAMMA A BLOCCHI Il diagramma a blocchi è uno schema grafico; esso permette

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. Ingresso e uscita Inizio Leggi base altezza Scrivi area sì condizione Area =base * altezza condizione no Fine

Esempio di algoritmo sequenziale Si vuole calcolare il prodotto dei due numeri: num 1

Esempio di algoritmo sequenziale Si vuole calcolare il prodotto dei due numeri: num 1 e num 2. ALGORITMO Prodotto() Leggi(num 1) Leggi(num 2) prod=Prodotto(num 1, num 2) Scrivi(prod); UD 1: concetti e ruoli dell'informazione

Esempio di algoritmo sequenziale Esempio: Date le misure dei due cateti di un triangolo

Esempio di algoritmo sequenziale 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.

l. E sei caratteristiche dell’algoritmo Non Ambiguo Deterministico Finito Generale Riproducibile Esaustivo

l. E sei caratteristiche dell’algoritmo Non Ambiguo Deterministico Finito Generale Riproducibile Esaustivo

Collega la caratteristica alla definizione CARATTERISTICA 1. Non Ambiguo 2. Deterministico 3. Finito DEFINIZIONE

Collega la caratteristica alla definizione CARATTERISTICA 1. Non Ambiguo 2. Deterministico 3. Finito DEFINIZIONE a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. b) L’algoritmo deve coprire tutti i casi possibili. c) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. DEFINIZIONE a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. d) Ogni istruzione dell’algoritmo a) L’algoritmo deve coprire tutti i casi possibili. 4. Generale deve produrre un risultato a) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. osservabile. a) Ogni istruzione dell’algoritmo deve produrre un risultato osservabile. e) I interpretabili passi costituenti l’algoritmo a) I passi costituenti l’algoritmo devono essere in modo diretto e univoco dall'esecutore, sia esso umano odevono artificiale. essere interpretabili in a)5. Riproducibile L'algoritmo deve essere composto da un modo numerodiretto finito diepassi e richiedere una univoco quantità finita di dati in ingresso. 6. Esaustivo dall'esecutore, sia esso umano o artificiale. f) L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso.

soluzioni CARATTERISTICA 1. Non Ambiguo 2. Deterministico 3. Finito 4. Generale 5. Riproducibile 6.

soluzioni CARATTERISTICA 1. Non Ambiguo 2. Deterministico 3. Finito 4. Generale 5. Riproducibile 6. Esaustivo DEFINIZIONE 1 e a) L’algoritmo deve essere utilizzabile per ogni problema della stessa classe. 2 c b) L’algoritmo deve coprire tutti i casi possibili. 3 f 4 a 5 d 6 b c) Avendo in ingresso gli stessi dati l’algoritmo deve produrre gli stessi risultati. d) Ogni istruzione dell’algoritmo deve produrre un risultato osservabile. e) I passi costituenti l’algoritmo devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale. f) L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso.

12 Il ciclo for Nella struttura del ciclo for: azione di inizializzazione condizione di

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 Esempio di uso del ciclo for Sommare separatamente i numeri pari e quelli

13 Esempio di uso del ciclo for 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; }

SITOGRAFIA www. ba. infn. it/~pierro/Didattica/ssis/42 A/ferilli/pierro-algoritmo 03. ppt www. unisa. it/secure/get/file/prima_parte_introduzione. . . ppt/id/2241

SITOGRAFIA www. ba. infn. it/~pierro/Didattica/ssis/42 A/ferilli/pierro-algoritmo 03. ppt www. unisa. it/secure/get/file/prima_parte_introduzione. . . ppt/id/2241 www. mat. unisi. it/personalpages/simi/computer%20 casa/. . . /informatica. pp