Domande d'esame: Laboratorio di Informatica
Di cosa parla
- Variabili: Elementi fondamentali con nome, tipo e valore, occupano spazio in RAM.
- Funzioni: Sezioni di codice per compiti specifici, accettano argomenti e producono un risultato o un effetto. In C, includono un'intestazione (tipo di ritorno, nome) e un corpo (istruzioni). Gestiscono argomenti formali e reali, e hanno variabili con scope locale.
- Record di Attivazione e Stack: Durante la chiamata di una funzione, viene creato un "record di attivazione" nello stack di memoria, gestito con politiche LIFO (Last In, First Out) tramite operazioni di push e pop.
- Vettori (Array) e Matrici: Sequenze di elementi dello stesso tipo, indicizzati da 0. Le matrici sono vettori di vettori.
- Strutture Record (Struct): Permettono di raggruppare dati di tipo diverso sotto un unico nome, con campi specifici. Possono essere annidate e manipolate come unità.
- Allocazione Dinamica della Memoria e Puntatori: I puntatori memorizzano indirizzi di altre variabili, consentendo l'allocazione dinamica di memoria (es. con
malloc) e la modifica di variabili esterne alle funzioni. - Liste Concatenate: Strutture dati dinamiche dove ogni elemento (nodo) contiene un puntatore al successivo, con
NULLche indica la fine della lista. - Funzioni Ricorsive: Funzioni che chiamano sé stesse, risolvendo problemi suddividendoli in casi più semplici fino a raggiungere un caso base.
- Strutture di Controllo (Cicli):
- While: Esegue un blocco di istruzioni finché una condizione è vera.
- For: Ciclo più conciso che integra inizializzazione, condizione e incremento in un'unica istruzione.
- Generazione Numeri Casuali: Le funzioni
rand()esrand()(contime.h) permettono di generare sequenze di numeri pseudo-casuali. - Parametri da Riga di Comando:
argc(numero di argomenti) eargv(array di stringhe) consentono ai programmi C di interagire con la riga di comando. - Costanti Simboliche: Direttive del preprocessore (es.
#define) per associare valori fissi a simboli. - Architettura del Calcolatore: Concetti chiave come CPU (unità di elaborazione), RAM (memoria di lavoro), BUS (canale di comunicazione), CLOCK (sincronizzazione) e unità di I/O.
- Bit e Byte: Il bit è la più piccola unità di informazione (0 o 1); il byte è una sequenza di 8 bit.
- Sistema Operativo: Un insieme di programmi che gestisce le risorse hardware e software, agendo da intermediario tra utente e calcolatore. Funzioni principali includono la gestione dei processi, della memoria, dell'I/O e del filesystem.
- Algoritmi: Procedimenti finiti, chiari e non ambigui per risolvere problemi. Concetti di costo computazionale (tempo e spazio) e correttezza. Esempi includono
mergesort(ordinamento) e ricerca binaria. - Rappresentazione Numerica: Interi e reali sono rappresentati in binario, con i numeri reali che utilizzano una notazione in virgola mobile (mantissa ed esponente).
- Pseudocodice: Notazione intermedia tra linguaggio naturale e linguaggio di programmazione, usata per abbozzare algoritmi.
- Macchina di Turing: Un modello teorico astratto di calcolo, fondamentale per la teoria dell'informatica e i limiti della computabilità.
- Standard Input/Output: Canali predefiniti per l'interazione del programma (input da tastiera, output su schermo).