Fondamenti di Programmazione A
Docente: Prof. Gianfranco Rossi

Programma del corso
Anno accademico 2016-17


Fondamenti di programmazione

  • Ciclo di sviluppo dei programmi (cenni)  [5, par. 1.2, 2.1.1]. "Programming-in-the-large" vs. "Programming-in-the-small" [6, cap. 7 fino a p. 206].
  • Problemi e algoritmi - La nozione di algoritmo. I diagrammi di flusso. Risoluzione di semplici problemi.
  • Linguaggi e ambienti di programmazione. Ambiente di sviluppo integrato (IDE) [3a].
  • Descrizione della sintassi di un linguaggio: grammatiche (cenni) [v. ad es. qui]). Diagrammi sintattici [v. ad es. qui] e BNF [v. ad es. qui].
  • Espressioni: sintassi, albero di derivazione e sintattico, valutazione (associativita' e precedenza), tipo.
  • Astraszioni nei linguaggi di programmazione: su dati, operazioni, controllo.
  • Tipi di dato: definizione, tipi semplici e strutturati, primitivi e definiti da utente. Costruttori di tipo. Strutture dati astratte e concrete. Compatibilita' e conversioni di tipo.
  • Nomi, ambienti e regole di "scope": struttura a blocchi, ambiente locale e non-locale, variabili globali.
  • Programmazione strutturata [3b] - Strutture di controllo. Teorema di Bohm-Jacopini. Statement goto. Sviluppo "top-down" e "bottom-up" (cenni).
  • Ricorsione - Definizioni e funzioni ricorsive. Esempi. Implementazione ricorsione (cenni).

  •  
    Il linguaggio C++
     
  • Dichiarazione di variabile. Tipi semplici primitivi: valori, costanti, operazioni. Dichiarazione di costante.
  • Input/output di base. Operatori >> e <<. Input/output a caratteri (funzioni get e put).
  • Assegnamento e statement composto. Espressioni.
  • Statement per il controllo di sequenza: if, switch, while, do_while, for, break. Esempio. Verifica dell'input.
  • Tipi strutturati. Array: dichiarazione, selezione elementi, memorizzazione, operazioni. Array bi-dimensionali. Matrici. Esempi operazioni su matrici e vettori (in partic., ordinamento per selezione [3c]). Stringhe: realizzazione tramite array, operazioni, funzioni di libreria. struct: dichiarazione, selezione elementi, operazioni. Tabelle: definizione, realizzazione tramite array di struct.
  • Dichiarazione e chiamata di funzione. Passaggio parametri: per valore, per riferimento. Passaggio parametri di tipo array. Funzioni void.
  • Strutturazione di un programma e regole di "scope".
  • Input/output su file. Creazione ed apertura di uno stream. Lettura/scrittura tramite >> e << e a caratteri.
  • Puntatori ed allocazione dinamica della memoria (operatore new). Operazioni su puntatori. Puntatori ed array. Liste concatenate.
  • Sviluppo di semplici programmi nel frammento imperativo del C++. Utilizzo di funzioni di libreria.

  •  
     

    Materiale didattico