Programmazione strutturata (30 ore) Prerequisiti: nessuno. Obiettivi: imparare i principi della programmazione strutturata e di progettazione TOP-DOWN del software.
1. Cenni sulla progettazione del software; progettazione strutturata (Architectural design, progettazione TOP-DOWN) e progettazione Object Oriented.
2. Princìpi di programmazione strutturata:
- algoritmo, definizione del algoritmo,
- flow-chart (diagramma a blocchi, diagramma di flusso),
- blocchi grafici elementari e schemi di composizione elementari:
- sequenza,
- selezione (utilizzo del predicato o controllo),
- iterazione (ciclo, loop), iterazione per vero e per falso; controllo in alto (in testa) e controllo in basso (in coda),
- le regole di composizione di algoritmi strutturati.
3. Struttura di scelta multipla switch-case.
4. Variabili semplici, tipi di dato, costanti (literlas) numeriche ed alfanumeriche (stringhe costanti), operatore di assegnazione.
5. Operatori aritmetici, relazionali (di confronto) e logici.
6. Variabili a seconda la funzione svolta: contatore, variabile d'appoggio, accumulatore (totalizzatore), switch (flag).
7. Pseudocodifica, esempio del linguaggio Pascal.
8. Array (vettore, matrice, tabella). Dichiarazione di un array, dimensione dell'array, elementi (item) di un array (variabili indicizzate).
9. Ordinamento (sort) di un array di numeri e di un array di stringhe, algoritmo bubble sort.
10. Variabili strutturate (record); tabelle, campi (chiavi), cenni sulle operazioni fondamentali sulle tabelle: ricerca, inserimento, eliminazione, sostituzione; ricerca binaria in un array ordinato.
11. Procedure (subroutines e funzioni), parametri formali, argomenti e valori restituiti; codice di ritorno.
12. Passaggio dei parametri alle procedure per valore e per riferimento.
13. Files: supporti fisici, tipi di organizzazione, metodi di accesso: SAM, DAM, ISAM, VSAM.
14. Lettura dei dati da un file sequenziale e caricamento di un array.
15. Ulteriori nozioni sulla strutturazione dei programmi, sottosistemi (procedure) di acquisizione di dati, di ricerca nei files e nelle tabelle, ecc.