Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Realizzazione software
Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro elaborazione 2. Realizzazione algoritmo con un particolare linguaggio (traduzione) Fondamenti di Informatica
2
Fondamenti di Informatica
Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari Il modo di esprimere la sequenza dei passi elementari deve essere standardizzato Fondamenti di Informatica
3
Proprietà degli algoritmi
L'algoritmo è caratterizzato da: finitezza: composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte non ambiguità: i risultati non variano in funzione della macchina/persona che esegue l'algoritmo (deterministico) realizzabilità: deve essere eseguibile con le risorse a disposizione Fondamenti di Informatica
4
Fondamenti di Informatica
Algoritmo Per definire un algoritmo è necessario: condurre un'attenta analisi del problema individuare i possibili ingressi precisare le uscite definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione è conveniente suddividere il problema in piccoli sottoproblemi Fondamenti di Informatica
5
Rappresentazione degli algoritmi
Si fa riferimento ai diagrammi di flusso (flow chart) Sono rappresentazioni grafiche dei passi elementari; visione globale del problema Strumento efficace per descrivere un algoritmo (più della descrizione a parole, troppo generica o appesantita da troppi dettagli) Le operazioni base sono 4 Fondamenti di Informatica
6
Fondamenti di Informatica
Operazioni base Le operazioni primarie sono: Trasferimento di informazioni lettura dati, scrittura risultati, visualizzazione dati intermedi Esecuzione di calcoli Assunzione di decisioni Esecuzione di iterazioni ripetizione di sequenze di operazioni Sono rappresentate da forme geometriche diverse Fondamenti di Informatica
7
Simboli convenzionali
ingresso/uscita inizializzazione documento elaborazione inizio/fine input manuale elab. predefinita connessioni disco decisione mem. sequenziale Fondamenti di Informatica
8
Fondamenti di Informatica
Esempi Diagramma di flusso per: somma di N dati media di N dati calcolo del fattoriale calcolo della radice quadrata approssimata calcolo dei primi N numeri primi inserimento/ricerca di un elemento in un albero binario Fondamenti di Informatica
9
Tecniche di programmazione
Programmazione top-down: scomposizione iterativa del problema in sottoproblemi i sottoproblemi devono essere indipendenti ed avere interfacce ben definite visibilità dei dettagli di ogni sottoproblema Programmazione strutturata Fondamenti di Informatica
10
Programmazione strutturata
Teoria nata nel 1965 Basata su eliminazione dei salti incondizionati e -più generalmente- sulla definizione di restrizioni Rendono la scrittura dei programmi e la loro manutenzione più semplici Migliorano la leggibilità dei programmi Fondamenti di Informatica
11
Teorema di Jacopini-Bohm
Per costruire un programma sono necessari 3 soli blocchi: 1. blocco di elaborazione è assimilabile ad una sola istruzione o un solo blocco con un ingresso e una uscita 2. meccanismo di ripetizione (o loop) 3. meccanismo di decisione binaria Fondamenti di Informatica
12
Strutture per il controllo di flusso
While-Do I I O O Fondamenti di Informatica
13
Strutture per il controllo di flusso
Repeat-Until I I O O Fondamenti di Informatica
14
Strutture per il controllo di flusso
If-Then-Else I I O O Fondamenti di Informatica
15
Teorema di Jacopini-Bohm
All'interno di ogni blocco si nasconde un ciclo o una biforcazione Il programma risulta quindi composto da una sequenza di blocchi, senza controlli di flusso Simile alla programmazione top-down dove, però, i blocchi non devono essere indipendenti e omogenei Fondamenti di Informatica
16
Fondamenti di Informatica
Scelta dell'algoritmo Non esistono strutture (dati e di controllo) preferite: la loro scelta dipende dal tipo di linguaggio in cui si codifica l'algoritmo La scelta dell'algoritmo ottimo dipende dal linguaggio a disposizione: occorre conoscere bene il linguaggio e le primitive che esso offre Fondamenti di Informatica
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.