Gli Algoritmi Prof Salvatore Venticinque Prof Massimiliano Rak
- Slides: 38
Gli Algoritmi Prof. Salvatore Venticinque Prof. Massimiliano Rak Elementi di Programmazione A. A. 2016 -2017
Terminologia Informazione Un'informazione è uno scambio di conoscenza. L’informazione riguarda il contesto in cui i dati sono raccolti, la loro codifica in forma intelligibile ed in definitiva il significato attribuito a tali dati. Dato Un dato è una descrizione elementare, spesso codificata, di un'entità, di un fenomeno, di una transazione, di un avvenimento o di altro. Ogni tipo di dato dipende dal codice e dal formato impiegati.
Terminologia Rappresentazione Un codice è una rappresentazione di un insieme di simboli in grado di rappresentare l'informazione che viene così codificata. Elaborazione Il processo di trasformazione dei dati che conduce alla produzione di nuovi dati (ed eventualmente di nuove informazioni)
Algoritmo Definizione del IX secolo di Mohammed Ibn Musa Abu Gefar Al-Khuwarizmi: Algoritmo: una qualsiasi procedura effettiva che indichi le istruzioni da eseguire per ottenere a partire dai dati di cui si dispone i risultati volute Per noi informatici … Algoritmo: Una sequenza finita di passi che portano alla realizzazione di un compito
Algoritmi, Linguaggi ed Esecutori • Gli Algoritmi sono espresso attraverso un Linguaggio che permette di descrivere i passi che compongono l’algoritmo. • Un Esecutore effettua I passi dell’algoritmo per produrre I risultati attesi.
Linguaggi di programmazione • Linguaggio di programmazione C • Linguaggio Assembler • Linguaggio macchina Ma anche • Diagrammi di flusso • pseudo codice • Linguaggi visuali Chi è l’esecutore?
Un Esempio di Algoritmo: Somma con pallottoliere Inizializza il pallottoliere • Sposta tutte le palline a destra • Inserisci il primo addendo spostando a sinistra sulla prima riga un numero di palline pari all’addendo • Inserisci il secondo addendo spostando a sinistra sulla seconda riga un numero di 3 2 palline pari all’addedndo 1
Un Esempio di Algoritmo: Somma con pallottoliere Passo 1: Sposta a destra una pallina sulla prima riga Passo 2: Sposta a sinistra una pallina sulla terza riga Passo 3: Ritorna a Passo 1 se hai palline a sinistra sulla prima riga Passo 4: Sposta a destra una pallina sulla seconda riga Passo 5: Sposta a sinistra una pallina sulla terza riga Passo 6: Ritorna a Passo 4 se hai palline a sinistra sulla seconda riga FINE 3 2 1
Un Esempio di Algoritmo: Somma con pallottoliere Risultato finale: Numero di palline a sinistra sulla terza riga • Chi è l’esecutore? • Che linguaggio abbiamo usato? • Quali sono i problemi di questo algoritmo? 3 2 1
Diagrammi di Flusso • I Diagrammi di flusso sono un linguaggio grafico per la rappresentazione di un algoritmo • Il diagramma è compost da blocchi che rappresentano I passi dell’algoritmo • I blocchi hanno forme diverse in base al significato • I blocchi contengono testo che dscrive il passo da eseguire • CHI è l’esecutore? • Utili per descrivere un algoritmo più che per eseguirlo…
Diagrammi di Flusso • Blocchi Start e Stop vengono utilizzati per indicare da dove il diagramma inizia e quando il diagramma termina. Start Stop
Diagrammi di Flusso • I Blocchi Input e Output vengono utilizzati per indicare la richiesta di dati all’utente INPUT OUTPUT
Diagrammi di Flusso • I Blocchi Azione vengono utilizzati per indicare una operazione di elaborazione elementare Azione
Diagrammi di Flusso • I Blocchi Condizione vengono utilizzati per indicare una operazione di scelta • Ogni ramo di uscita rappresenta una scelta differente Condizione
Diagrammi di Flusso • I Blocchi connettore vengono utilizzati per indicare che due o più blocchi differenti portano allo stesso blocco
Diagramma di Flusso: Somma di due numeri Passo 1: Leggi A Passo 2: Leggi B Passo 3: Somma A e B Passo 4: Stampa il risultato Start Leggi A Leggi B R=A+B Stampa R Stop
Diagramma di Flusso: Stampa il maggiore di due numeri Start Passo 1: Leggi A Passo 2: Leggi B Passo 3: confronta A e B Passo 4: Se A>B stampa A, Leggi A Leggi B altrimenti stampa B Vero A>B Falso Stampa B Stampa A Stop
Diagrammi di Flusso: Strutture Avanzate • Il blocco sequenza viene utilizzato per indicare l’esecuzione consecutiva di blocchi. Azione 1 Azione … Azione n Sequenza
Diagrammi di Flusso: Strutture Avanzate • I blocchi If-Then e IF-Then-Else vengono utilizzati per I costrutti di selezione Condizione Sequenza If-Then-Else Sequenza If-Then
Diagrammi di Flusso: Strutture Avanzate • I blocchi while-do e repeat-until vengono utilizzati per le operazioni cicliche Condizione falso Sequenza vero While-do Condizione falso Repeat-until
Diagrammi di Flusso strutturati • Un Diagramma di Flusso si chiama strutturato se: • Ha un solo blocco START • Ha un solo blocco STOP • Utilizza solo sequenze o le strutture avanzate • • If-then-else While-do Repeat-until
Diagramma di Flusso non strutturato Diagramma di Flusso strutturato Sequenza Condizione Sequenza If-Then
Diagrammi di Flusso: Strutture Avanzate Diagramma di Flusso non strutturato Diagramma di Flusso strutturato Condizione Sequenza Stop
Teorema di Böhm-Jacopini Qualunque diagramma di flusso può essere trasformato in un diagramma di flusso strutturato equivalente • In altre parole è possibile realizzare ogni algoritmo utilizzando solo le strutture avanzate • I Diagrammi strutturati hanno il vantaggio di essere molto più intuitivi e comprensibili.
Diagrammi di Flusso non Strutturati: Problemi • Cosa fa programma? Start Leggi A, B, C D=0 F=A+B Vero D=0? Falso A=C B=F D=1 Stampa F Stop questo
Diagrammi di Flusso non Strutturati: Problemi • Cosa fa questo programma? • Stampa F=A+B+C … Start Leggi A, B, C D=0 F=A+B Vero D=0? Falso A=C B=F D=1 Stampa F Stop • L’uso di pogrammi non strutturati porta a codice non leggibile e spesso pieno di errori ….
Diagrammi Di Flusso ed Algoritm Concetti acquisiti • L’algoritmo definisce una sequenza di passi che permettono all’esecutore di ottenere un risultato in base ai dati di cui dispone • I Diagrammi di Flusso sono un linguaggio visuale per rappresentare algoritmi • I Diagrammi di Flusso strutturati utilizzano delle strutture avanzate per rappresentare I passi (selezione e cicli)
Fare clic per modificare lo stile del titolo Esempi di Algoritmi
Stampa in Ordine Richiedere in ingresso 3 numeri e stampare il massimo
Stampa il Massimo di tre Start Leggi A, B, C If-then-else Vero Max=A Vero A>C A>B Falso Vero Falso Max=C Max=B Stampa Max Stop If-then-else B>C Falso Max=C
Stampa in Ordine Richiedere in ingresso 10 numeri e stampare il massimo
Stampa il Massimo di 10 Start Count=1; Ma è un Diagramma di Flusso Strutturato? Leggi Max Count=Count+1; Leggi val Vero Max=Val; Vero Val>Max Falso Count<10 Falso Stampa Max Stop
Stampa il Massimo di 10 Start Count=1; Sequenza Leggi Max Count=Count+1; Sequenza Leggi val If-then Vero Max=Val; Vero Val>Max Falso Count<10 Falso Stampa Max Stop
Stampa il Massimo di 10 Start Count=1; Sequenza Leggi Max Count=Count+1; Repeat-until Leggi val Sequenza Vero Max=Val; Vero Count<10 Falso Stampa Max Stop Val>Max Falso
Stampa in Ordine Realizzare il Diagramma di Flusso dell’Algoritmo per il calcolo del Massimo Comun Divisore
Algoritmo Massimo Comun Divisore Teorema di Euclide: “ogni divisore comune di a e b è divisore di a, b e del resto r della divisione tra a e b (a mod b), se questo non è nullo” Soluzione di Euclide - Costruzione dell’algoritmo Dati due numeri a, b assumiamo che a sia sempre il maggiore Effettuiamo l’operazione r= a mod b se r=0 allor b è MCD di a Altrimenti calcoliamo r’= b mod r, se r’=0 allora r è divisore di b ed è MCD di a (non lo era b) Possiamo quindi procedere così fino a trovare il caso in cui l’operazione dia zero. Elementi di Programmazione
Massimo Comun Divisore Algoritmo: 1. acquisire due numeri a, b 2. se b>a scambiare a con b 3. se b= 0 MCD(a, b)=a e termina 4. r= a mod b 5. sostituire a con b, b con r ed andare al passo 3 Start Leggi a, b vero scambia a e b; b>a falso o b!=0 vero r=a mod b a=b; b=r; falso MCD=a Stop
Fine …
- Rak massimiliano
- Sistem abjad (alphabetical filing system)
- Massimiliano madonna
- Fiedler leadership
- Massimiliano tasini
- Massimiliano scopelliti
- Massimiliano tasini
- Massimiliano mascherini
- Massimiliano ferro
- Massimiliano marzocca
- Massimiliano marzocca
- Massimiliano stramaglia
- Urologia fatebenefratelli napoli
- Massimiliano dragoni
- Massimiliano marzocca
- Massimiliano bacchi
- Ospedale s salvatore pesaro
- Cofanaturo
- Salvatore pontarelli
- Direzione didattica traina misilmeri
- Claude monet ninfee
- Istituto comprensivo almenno san bartolomeo
- Vigilant compliance
- Salvatore davide porzio
- Natale del signore messa della notte
- Salvatore vitabile
- Salvatore guarnieri
- Salvatore de masi
- Salvatore spinello
- Profit management in managerial economics
- Salvatore fazio
- Salvatore danzeca
- Uomo del mio tempo
- Istituto comprensivo aurigemma
- Salvatore adamo j'aime
- Almenno san salvatore ic
- Ic bosco san salvatore telesino
- Salvatore novo
- Salvatore ali