Lezioni Svolte
- 6 marzo 2019. Lezione 1.
- Introduzione al Corso. L'algoritmo euclideo delle sottrazioni successive. Problemi e algoritmi. Problemi facili, difficili, e indecidibili. Macchine di Turing. Dalle Macchine di Turing ai calcolatori elettronici moderni: l'architettura di von Neumann, i linguaggi, i compilatori. Ciclo editing-compiling-debugging.
- Il primo programma in C. Compilare ed eseguire CiaoMondo.
- Lucidi, introduzione. Lucidi, parte 1. Lucidi, parte 2.
- 13 marzo 2019. Lezione 2.
- Primi passi. Struttura del sorgente. Output formattato con printf. Le quattro operazioni in C.
- Tipi e variabili. I 4 tipi fondamentali: char, int, float, double. Codice ASCII. Codifiche in virgola mobile.
- Overflow e Underflow. Massimi e minimi valori rappresentabili. Precisione della rappresentazione dei numeri reali.
- Lucidi, parte 1. Lucidi, parte 2.
- Codice degli esempi discussi a lezione.
- 20 marzo 2019. Lezione 3.
- Operatori ed espressioni. Gli operatori aritmetici, relazionali e logici del linguaggio C. Le espressioni e il loro tipo. Valutazione delle espressioni. Condizioni vere e false.
- Dichiarazioni e assegnamenti. Dichiarazione e inizializzazione. Semantica operazionale degli assegnamenti.
- Programmazione strutturata. Sequenza, Iterazione e Selezione. Primi cenni alla gestione del flusso del controllo: le istruzioni while, do-while e if-else.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 27 marzo 2019. Lezione 4.
- Programmazione strutturata. Gestione del flusso del controllo: le istruzioni do-while, else-if, switch, break e for.
- Incrementi e assegnazioni. Post- e pre-incrementi. Operatore di assegnazione += e simili.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 3 aprile 2019. Lezione 5.
- Introduzione agli array. Dichiarazione e allocazione degli array. Uso degli array. Le stringhe in C: array di char.
- Introduzione alle funzioni. Dichiarazione e implementazione delle funzioni in C. Chiamate alle funzioni.
- Il campo di visibilità degli identificatori in C. Variabili locali e globali.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 10 aprile 2019. Lezione 6.
- Introduzione ai puntatori. Concetti fondamentali. Referencing e Dereferencing. Tipo e dichiarazione dei puntatori. Puntatori NULL. Assegnazioni fra puntatori.
- Puntatori ed array. Differenze. Uso.
- Inizializzazione degli array.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 17 aprile 2019. Lezione 7.
- Ancora sui puntatori. Puntatori come parametri delle funzioni: condividere memoria fra le funzioni di un programma. Array come parametri delle funzioni.
- Input/Output standard. I flussi di dati stdin e stdout. Leggere tipi primitivi con getchar e scanf. Leggere stringhe con fgets.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 15 maggio 2019. Lezione 8.
- Ricorsione. La ricorsione come controparte computazionale dell'induzione. Implementazione delle funzioni ricorsive. Cenni al record di attivazione.
- Array di puntatori. Sintassi e usi tipici. Array di puntatori a char.
- Passaggio degli argomenti dalla riga di comando. Il prototipo completo di main. Uso ed esempi.
- Input/Output standard da file. Il tipo FILE. Operazioni sui file: apertura, lettura, scrittura, aggiornamento, chusura. Lettura carattere per carattere. Lettura riga per riga.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 29 maggio 2019. Lezione 9.
- Strutture. Tipi di dati strutturati e il costrutto struct. Definizione di tipi strutturati. Dichiarazione, assegnamento, inizializzazione, passaggio dei parametri. Allocazione dinamica della memoria: introduzione.
- Lucidi.
- Codice degli esempi discussi a lezione.
- 5 giugno 2019. Lezione 10.
- Allocazione dinamica della memoria. Allocazione statica e dinamica. Le funzioni malloc, calloc, realloc e free. Cenni all'implementazione delle liste.
- Lucidi, Parte 1.
- Codice degli esempi discussi a lezione.
- Complementi finali. Array multidimensionali come parametri delle funzioni. Il preprocessore: direttive di inclusione e macro. Conversioni di tipo implicite ed esplicite; casting.
- Lucidi , Parte 2.
- Codice degli esempi discussi a lezione.
Anni accademici precedenti