Progettazione
degli algoritmi
A. Lorenzi – V. Moriggia
INFORMATICA. C++. TEORIA E AMBIENTE
DI PROGRAMMAZIONE
Atlas
Copyright © Istituto Italiano Edizioni Atlas
Metodologia generale
• Sviluppo del problema:
– Progettazione dell’algoritmo
– Programmazione
Progettazione dell’algoritmo
•
•
•
•
Testo del problema
Analisi dei dati
Procedimento risolutivo (ideazione)
Formalizzazione dell’algoritmo
– Pseudocodifica
– Diagramma a blocchi
Programmazione
•
•
•
•
•
Progetto dell’interfaccia grafica
Codifica
Testing
Debug
Rilascio dell’eseguibile
Analisi dei dati (1)
•
•
•
•
•
Dati di input
Dati di output
Variabili e costanti
Variabili di lavoro
Costanti
– In senso stretto (pi-greco)
– In senso lato (aliquota IVA)
Analisi dei dati (2)
• Tipi di dati:
–
–
–
–
–
Intero
Reale (non intero)
Stringa
Carattere
Booleano
• Scelta del tipo di dato: età, stipendi, prezzi,
CAP, telefono, PartitaIVA
Analisi dei dati (3)
• Dati primari (anno di nascita)
• Dati derivati (età =
anno attuale – anno di nascita)
• Identificatori
– Nomi significativi
– Parole uniche con iniziali maiuscole (CodiceProdotto)
Formalizzazione del problema
• Dati
• Relazioni tra essi
• Dal linguaggio naturale al linguaggio
formalizzato
Persona abita a …
Residenza
Persona alta o bassa
Statura
Superamento di una prova
Voto
Prodotto economico o costoso
Prezzo
Partita vinta o persa
Risultato
Procedimento risolutivo
• Descrizione discorsiva del procedimento
• Ideazione della soluzione
• Evidenziazione delle formule di calcolo
Rappresentazione dell’algoritmo(1)
• Linguaggio di pseudocodifica (o linguaggio di
progetto):
– formalizza l’algoritmo
– prepara alla codifica
– è indipendente dal linguaggio di programmazione
Rappresentazione dell’algoritmo(2)
• Diagramma a blocchi (flowchart):
– standard informatico
– rappresentazione più immediata e più efficace
– anche valore documentativo
Pseudocodifica
• Inizio, fine
• Input/output
– Immetti variabile
– Scrivi messaggio o variabile
• Assegnazione a sinistra:
– Asssegna a = 3
– Calcola area = base * altezza
• Verbi all’imperativo (esecutore)
• Commenti: (* … *) o //
Esempio
• Calcolo dell’area del triangolo
inizio
immetti base
immetti altezza
calcola area =base * altezza / 2
scrivi area
fine
Diagramma a blocchi
• Simboli standard ISO
inizio
immetti
assegnazione / calcolo
fine
scrivi
test
Diagramma a blocchi con Word
• Scheda Inserisci, Forme, Diagrammi di
Flusso
• Copia oggetto: tasto CTRL premuto e
trascinamento
• Scritta interna: tasto destro sulla forma,
Aggiungi/Modifica testo
• Allineamenti: Formato, Disponi, Allinea
• Colore e ombreggiature: Formato, Stili forma
Esempio
Programmazione tradizionale
Programmazione moderna
Documentazione
• Non un’attività conclusiva …
• … ma un’attività che accompagna le diverse
fasi dello sviluppo del problema
Generalizzazione dell’algoritmo
• Algoritmo esaustivo
• Strutture di controllo
– Sequenza
– Selezione
– Ripetizione
• Teorema di Bohm-Jacopini
Strutture in pseudocodifica
Strutture con diagramma a blocchi
Scarica

ProgettazioneAlgoritmi