Home page  Libri di testo  Programma  Diario lezioni Laboratorio Test ed Esami
Informatica 1

Laboratorio di Programmazione & Informatica 1
Laboratorio di Programmazione Strutturata
A.A. 2025-2026

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 Lezioni del corso su Teams.
I testi degli esercizi assegnati in laboratorio si trovano nella sezione "Laboratorio".



Data
Ora
Argomento
Lun 29/9/25
9-11
Lab1 Conoscenza del laboratorio e trascrittura di semplici programmi e loro compilazione. Vedi Esercizi Proposti Codice Lab01
Lun 29/9/25
14-16
Lez1 Presentazione del corso.
Introduzione all'informatica e centralità del concetto di algoritmo. L'algoritmo di Euclide: dalla descrizione in linguaggio naturale alla codifica in linguaggio C. Instruzioni di input e output, assegnamento e operatori aritmetici.
MAR 30/9/2025
9-11
Lab2 Vedi Esercizi Proposti Codice Lab02
Mar 30/9/25
14-16
Lez2 Il concetto di variabile in un programma. Sintassi per gli identificatori e per la dichiarazione di variabili. Istruzione di assegnamento.
Espressioni aritmetiche e logiche. Operatori aritmetici, condizionali e logici in C. Sintassi dell'istruzione di selezione if Istruzioni composte. Esempi.
La struttura di ripetizione while . Somiglianze e differenze tra struttura di selezione if e la struttura di ripetizione while .
Esempio di ciclo con contatore o con condizione logica.
LUN 6/10/25
9-11
Lab3 Vedi Esercizi Proposti Codice Lab03
LUN 6/10/25
14-16
Lez3 Correzione esercizi di laboratorio.
La programmazione strutturata e il controllo del flusso di un programma. Il Teorema di Boehm e Jacopini.
La struttura di selezione if ...else . Esempi di utilizzo di strutture if ...else nidificate. Il problema del dangling else (else appeso).
La struttura di ripetizione do ...while . Equivalenza tra le due strutture di ripetizione introdotte.
Esempio: Scambiare il valore di due variabili.
MAR 7/10/25
9-11
Lab4 Vedi Esercizi Proposti Codice Lab04
MAR 7/10/25
14-16
Lez4 Operatori di incremento e decremento ++, --. Operatori di assegnamento +=, -=, *=.
La ripetizione definita: la struttura for . Esempi. Equivalenza tra le strutture di ripetizione introdotte. 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 .
LUN 13/10/25
9-11
Lab5 Vedi Esercizi Proposti Codice Lab05
LUN 13/10/25
14-16
Lez5 Precisazioni su come usare i cicli per controllare la correttezza dell'input.
Correzione esercizi laboratorio.
La struttura di selezione switch . Esempi.
Rappresentazione dei dati in C. I 5 tipi elementari char, int, float, double . Rappresentazione numeri in sistema binario, (decimale) e esadecimale. Occupazione in memoria dei vari tipi di dati.
Operatore unario sizeof( ). Il tipo char. Parametri di conversione per printf e scanf per il tipo char. Funzioni getchar( ),putchar( ). Problemi possibili nell'input di caratteri alternato a input numerici. Codifica delle informazioni non numeriche: codice ASCII e sue estensioni. Esempi.
MAR 14/10/25
9-11
Lab6 Vedi Esercizi Proposti Codice Lab06
MAR 14/10/25
14-16
Lez6 Introduzione alle funzioni nei programmi in C. Sintassi. Meccanismo del passaggio dei parametri e variabili locali alle funzioni. Funzioni void. Esempio: analisi del file quadratiVari.c
Correzione gli esercizi del laboratorio.
LUN 20/10/25
9-11
Lab7 Vedi Esercizi Proposti Codice Lab07
LUN 20/10/25
14-16
Lez7 Analisi dettagliata degli esercizi del laboratorio Lab07_1,2,3.
Definizione formale di funzioni nei programmi in C. Sintassi. Meccanismo del passaggio dei parametri e variabili locali alle funzioni.
Funzioni della libreria matematica. Generatore di numeri casuali. Esempi: dado1.c, dado2.c,lancidado.c.
Correzione degli esercizi della settimana precedente.
MAR 21/10/25
9-11
Lab8 Vedi Esercizi Proposti Codice Lab08
MAR 21/10/25
14-16
Lez8 Funzioni ricorsive. Vantaggi e svantaggi. Esempi. La struttura dati array in C. Dichiarazione e inizializzazione di array. Allocazione della memoria per una variabile di tipo array. Passaggio di array a funzioni.
Esempio: file Vettori.cpp .
LUN 27/10/25
9-11
Lab9 Vedi Esercizi Proposti Codice Lab09
LUN 27/10/25
14-16
Lez9 Riepilogo sulla struttura dati array. Riflessioni sull'utilizzo di array in casi particolari. Calcolo frequenza lanci di un dado. Il crivello di Eratostene. Esempi.
MAR 28/10/2025
9-11
Lab10 Vedi Esercizi Proposti Codice Lab10
MAR 28/10/2025
14-17
Lez10 Tipo di dati "stringhe" come array di char . Esempi di inizializzazione, stampa e copia. Esempi.
Array bidimensionali (matrici). Esempi.
Correzione esercizi di laboratorio.
LUN 3/11/25
9-11
Lab11 Vedi Esercizi Proposti Codice Lab11
LUN 3/11/25
14-16
Lez11 Introduzione alle variabili puntatore. Esempi. Operatori & e *.
Correzione esercizi di laboratorio.
MAR 4/11/25
9-11
Lab12 Vedi Esercizi Proposti Codice Lab12
MAR 4/11/25
14-17
Lez12 Variabili puntatore. Esempi di variabili puntatore. Assegnazione di variabili puntatore. Funzioni malloc e free . Aritmetica sui puntatori. Esempi di definizione di array attraverso la funzione malloc. Puntatori e loro relazioni con gli array. Esempi di stampa degli indirizzi degli elementi di un array. (file provapunt.c e vettoripunt.c )
Correzione esercizi di laboratorio.
10-11 nov. 2025
Pausa didattica
MAR 11/11/25
14-16
   Prova valida per voto esame
LUN 17/11/25
9-11
Lab13 Vedi Esercizi Proposti Codice Lab13
LUN 17/11/25
14-16
Lez13 Cenni su analisi della complessità di un algoritmo. Notazione O e Ω per indicare limiti superiori e inferiori della complessità di algoritmi e problemi. Esempi di tempi di calcolo in relazione alle funzioni f(n)= n, nlogn, n^2, n^3, 2^n.
Il gioco "indovina il numero" e un algoritmo di complessità logaritmica per risolverlo. Le torri di Hanoi: l'algoritmo ricorsivo e dimostrazione che la complessità è esponenziale.
MAR 18/11/25
9-11
Lab14 Vedi Esercizi Proposti Codice Lab14
MAR 18/11/25
14-16
Lez14 Lettura e scrittura su file di testo e ascii.
LUN 24/11/25
9-11
Lab15 Richiami sul passaggio di puntatori come parametri alle funzioni.
Vedi Esercizi Proposti Codice Lab15
LUN 24/11/25
14-16
Lez15 Osservazioni e commenti sul problema del baricentro di un vettore dal punto di vista della complessità degli algoritmi proposti in laboratorio.
Le strutture in C: dichiarazioni di variabili tipo struct . Inizializzazioni di variabili struct. Operazioni su variabili struc, operatore punto e operatore freccia. Parola chiave typedef .
Esempio di una struttura che rappresenta una carta da gioco. Programma che inizializza un mazzo di carte e poi lo "mescola". (file mazzoDiCarte.c). Esempio di programma che simula un piccolo campionato di 6 squadre e determina il vincitore.
Il problema del searching . Operazioni di ricerca su un array: ricerca sequenziale e ricerca binaria (in versione iterativa e ricorsiva). Calcolo della complessitita' come numeri di confronti effettuati nel caso peggiore.
MAR 25/11/25
9-11
Lab16 Vedi Esercizi Proposti Codice Lab16
MAR 25/11/25
14-16
Lez16 Il problema dell'ordinamento. Algoritmi di ordinamento su vettori. Algoritmo SelectionSort come iterazioni di ricerca del minimo o del massimo. Dimostrazione della correttezza e analisi della complessità a partire dalla complessità dell'algoritmo che calcola il minimo tra n numeri.
Algoritmo BubbleSort. Dimostrazione della correttezza e analisi della complessità.
Algoritmo InsertionSort. Dimostrazione della correttezza e analisi della complessità. La tecnica algoritmica del divide et impera e una sua applicazione al problema dell'ordinamento: l'algoritmo MergeSort . Descrizione informale, codice C e calcolo esplicito dei confronti effettuati. Analisi complessità.
L'algoritmo QuickSort . Descrizione informale e codice C.
LUN 1/12/25
9-11
Lab17 Vedi Esercizi Proposti Codice Lab17 CANCELLATO
LUN 1/12/25
14-16
Lez17 Strutture autoreferenzianti per creare strutture dati dinamiche. Definizione di un nodo-lista. Definizione di una lista come puntatore ad un nodo-lista. Stampa di una lista. Operazioni di inserimento in testa e in coda in versione con lista passata per riferimento. Esempi.
MAR 2/12/25
9-11
Lab18 Vedi Esercizi Proposti Codice Lab18
MAR 2/12/25
14-16
Lez18 Le stringhe e funzioni principali dalla libreria string.h. Esempi.
LUN 8/12/25
NO Lezione (Festa dell'Immacolata)
MAR 9/12/2024
9-11
Lab19 Vedi Esercizi Proposti Codice Lab19
MAR 9/12/2025
14-16
Lez19 La struttura dati "pila" (stack). Implementazione usando un vettore. Esempi.
LUN 15/12/25
9-11
Lab20 Vedi Esercizi Proposti Codice Lab20
LUN 15/12/25
14-16
Lez20 Riepilogo su definizione di una lista come puntatore ad un nodo-lista e alle operazioni di stampa e inserimento in testa e in coda. Funzione per inserire un elemento in una lista mantenendola ordinata. Operazioni di cancellazione di un elemento in versione con lista passata per riferimento o per valore.
Analisi e correzione degli esercizi "ruota mezza lista" (lab19_2) e "intersezione e unione di insiemi" (lab20_1).
MAR 16/12/25
9-11
Lab21
MAR 16/12/25
14-16
Lez 21
22/12/25-6/1/26
Pausa vacanze di Natale
LUN 12/1/26
9-11
Lab22 SIMULAZIONE DI UNA PROVA D'ESAME
LUN 12/12/26
14-16
Lez 22 Correzione degli esercizi della mattina e ripilogo sulle liste.
MAR 13/1/2026
9:00 - 13:00
    PRE-APPELLO