Laboratorio di Programmazione & Informatica 1
A.A. 2019-2020
Diario delle lezioni
In questa pagina sono elencati gli argomenti trattati in ogni lezione.
I codici C mostrati come esempi e i file powerpoint mostrati a lezione si trovano nella scheda file del canale Generale del corso su Teams.
I testi degli esercizi assegnati in laboratorio si trovano nella sezione "Laboratorio".
Data Ora Argomento MAR 3/3/20 9-11 Lez1 Presentazione del corso.
Introduzione all'informatica e centralità del concetto di algoritmo. L'algoritmo di Euclide in linguaggio C. Esempi di applicazione. (Slides).
Lettura di approfondimento.MAR 3/3/20 14-16 Lab1 Il primo (classico!) programma in C: Scrivere un messaggio sullo schermo.
Il concetto di variabile in un programma. Identificatori per le variabili.
Il secondo programma: "Sommare due numeri interi e scrivere il risultato sullo schermo.
Il terzo programma (variante): "Richiedere due numeri interi all'utente e stampare sullo schermo la loro somma".
LABORATORIO 1: Esercizi PropostiGIO 5/3/20 9-11 Lezione cancellata per sospensione didattica frontale GIO 5/3/20 11-13 Lezione cancellata per sospensione didattica frontale MAR 10/3/20 9-11 Lezione cancellata per sospensione didattica frontale
MAR 10/3/20 14-16 Lezione cancellata per sospensione didattica frontale GIO 12/3/20 9-11 Lezione cancellata per sospensione didattica frontale GIO 12/3/20 11-13 Lezione cancellata per sospensione didattica frontale MAR 17/3/20 9-11 Lez2 Analisi dettagliata di un semplice programma.
Sintassi per gli identificatori e per la dichiarazione di variabili. Istruzione di assegnamento. Esempio: Scambiare il valore di due variabili.
Espressioni aritmetiche e logiche. Operatori aritmetici, condizionali e logici in C. La programmazione strutturata e il controllo del flusso di un programma. Il Teorema di Bohm e Jacopini.
La struttura di selezione if e la struttura di ripetizione while . Istruzioni composte. Sintassi delle istruzioni if e while .
MAR 17/3/20 14-16 Lab2 Analisi di semplici programmi che utilizzano la struttura di selezione if e la struttura di ripetizione while. Esercizi Proposti GIO 19/3/20 9-11 Lez3 Rappresentazione dei dati in C. I 5 tipi elementari char, int, float, double e i modificatori short, long, long long, signed, unsigned . Rappresentazione numeri in sistema binario, (decimale) e esadecimale. Occupazione in memoria dei vari tipi di dati. Problemi di approssimazione nella rappresentazione dei numeri reali.
Operatore unario sizeof( ) e costanti predefinite sui limiti dei tipi elementari.
Esempio: visualizzazione occupazione in memoria dei vari tipi di dati e dei valori max e min gestiti dal compilatore.[tipididati.c sizetipididati.c]
Parametri di conversione per printf e scanf dei vari tipi di dati. Funzioni getchar( ),putchar( ). Problemi possibili nell'input di caratteri alternato a input numerici [charInput1.c].
Operatore di casting. Codifica delle informazioni non numeriche: codice ASCII e sue estensioni.
Esempio: stampa dei valori char corrispondenti ai numeri da 0 ... 255. [tipochar3.c]
Esempio: conversione caratteri da maiuscolo a minuscolo operando sul valore ASCII. [MaiusMinus.c]
La struttura di selezione if ...else . Esempi di utilizzo di strutture if ...else nidificate. Il problema del dangling else (else appeso). Problema: trovare il max tra 3 numeri utilizzando 2 confronti. Problema: ordinare 3 numeri utilizzando 3 confronti.GIO 19/3/20 11-13 Lab3 Analisi di semplici programmi che utilizzano la struttura di selezione if ... else .
Esempio: calcolo del primo e secondo massimo tra n numeri in input. Esercizi PropostiMAR 24/3/20 9-11 Lez4 La struttura di ripetizione do ...while . Equivalenza tra le due strutture di ripetizione introdotte. Operatori di incremento e decremento ++, --. Operatori di assegnamento +=, -=, *=. La ripetizione definita: la struttura for . Esempi. Equivalenza tra le strutture di ripetizione introdotte.
Definire strutture di ripetizione nidificate. Esempi.
MAR 24/3/20 14-16 Lab4 Correzione esercizi del Lab3.
Analisi di semplici programmi che utilizzano le strutture di ripetizione while, do..while, for.
Esercizi PropostiGIO 26/3/20 9-11 Lez5 Usi particolari dei cicli for quando mancano alcune condizioni. Esempi. Uscita forzata da una istruzione: break e continue . Uscita forzata da un programma: exit e return . La struttura di selezione switch . Esempi. GIO 26/3/20 11-13 Lab5 Correzione esercizi del Lab4.
Analisi di semplici programmi che utilizzano la struttura di selezione switch . Esercizi PropostiMAR 31/3/20 9-11 Lez6 Definizione di funzioni nei programmi in C. Sintassi. Meccanismo del passaggio dei parametri e variabili locali alle funzioni. Esempio quadratiVari.c .
MAR 31/3/20 14-16 Lab6 Correzione esercizi del Lab5.
Risoluzione dettagliata dell'esercizio proposto per calcolare tutti i numeri primi minori di 1000. Esercizi PropostiGIO 2/4/20 9-11 Lez7 Parametri e variabili locali di una funzione. Stack delle chiamate di funzione.
Funzioni ricorsive. Esempi. Le torri di Hanoi: l'algoritmo ricorsivo e dimostrazione che la complessità è esponenziale. Esempio di implementazione in C.GIO 2/4/20 11-13 Lab7 Esempio di implementazione in C per il problema delle torri di Hanoi. Correzione dell'esercizio Lab06_3.
Esercizi Proposti