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