INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello funzionale di sistema informatico Definizione di algoritmo Caratteristiche salienti degli algoritmi Elementi degli algoritmi Linguaggi di descrizione degli algoritmi Elementi e regole di composizione degli schemi a blocchi (flow-chart) Dire che cos è lo pseudocodice e discuterne le differenze con gli schemi di flusso Presentare il formato dell operazione di assegnamento e discuterne la funzionalità 2 --- Dire le caratteristiche generali della rappresentazione binaria delle informazioni Elencare e commentare brevemente le principali codifiche binarie Descrivere la codifica binaria di interi in complemento a due Adottando la normale codifica binaria scrivere la rappresentazione binaria con 8 bit del valore decimale (negativo) 45 indicando tutti i passaggi per ottenerla 1
Determinare la rappresentazione decimale del seguente numero rappresentato in complemento a due su 8 bit, indicando tutti i passaggi per ottenerla 11100100 Dire le principali caratteristiche della codifica floating point 3 --- Indicare i principali operatori logici, i simboli delle corrispondenti porte logiche e le relative tabelle di verità Dire che cosa si intende per tabella della verità di una funzione logica. Disegnare la tabella della verità della funzione F = (A +!B) *!C + C Dire che cosa sono e come funzionano i registri Disegnare lo schema dell architettura tipica di un calcolatore e commentare le funzionalità del Bus di sistema Disegnare lo schema dell architettura tipica di un calcolatore e commentare le funzionalità della memoria di lavoro Disegnare lo schema dell architettura tipica di un calcolatore e commentare le funzionalità della CPU Disegnare lo schema dell architettura tipica di un calcolatore e commentare le funzionalità delle interfacce con le periferiche Presentare la struttura e la funzionalità della memoria di lavoro di un calcolatore Presentare la struttura interna semplificata di una CPU, commentando le funzioni degli elementi interni Presentare il bus di sistema discutendo le funzioni dei vari (gruppi di) segnali precisando qual è l unità sorgente e quale destinazione e lo scopo di ognuno di essi Presentare sinteticamente le principali caratteristiche delle memorie di massa Descrivere come avviene l esecuzione di un programma in linguaggio macchina 2
Dire sinteticamente le caratteristiche del linguaggio macchina Dire sinteticamente le caratteristiche del linguaggio assembler 4 --- Descrivere sinteticamente le principali funzioni del Sistema Operativo Presentare sinteticamente le fasi e gli strumenti per la generazione di un programma eseguibile Dire qual è il ruolo del Compilatore, le informazioni che riceve in ingresso e quelle che emette in uscita Indicare le principali categorie di errori nei programmi, come vengono rilevati e come vengono corretti Presentare un sintetico confronto tra le caratteristiche dei linguaggi di programmazione di basso livello e di alto livello Dire che cosa si intende per variabile nell ambito dell informatica, e quali sono le sue principali caratteristiche Dire che cos è il tipo di una variabile Dire che cosa sono le costanti simboliche e discutere i principali motivi per il loro uso rispetto alle costanti esplicite Dire quali sono le fasi necessarie per la corretta gestione delle variabili di condizione di un costrutto iterativo Caratteristiche degli array e meccanismi di accesso ai singoli elementi Caratteristiche dei record (struct) e meccanismi di accesso ai singoli elementi Discutere vantaggi e rischi nell uso dei puntatori 5 --- 6 --- 3
7 --- 8 --- 4
Raccolta domande fatte nelle prove scritte Prima prova in itinere 24-11-00 1. punti 3 Scrivere e commentare la definizione di algoritmo. 2. punti 3 Adottando la normale codifica degli interi, scrivere la rappresentazione binaria con 8 bit, del valore decimale (negativo) 37, mostrando tutti i passaggi per ottenerla. 3. punti 3 Dire qual è il ruolo della memoria di lavoro di un calcolatore. 4. punti 3 Dire qual è il ruolo di un compilatore, precisando quali informazioni esso riceve in ingresso e quali emette in uscita. Seconda prova in itinere 08-02-01 1. punti 30 Precisare e commentare la differenza tra i parametri formali e i parametri attuali dei sottoprogrammi. 2. punti 30 Indicare come avviene nel linguaggio C il passaggio di parametri per indirizzo e indicare in quali casi e per quali motivi è opportuno o necessario utilizzare questa modalità. 3. punti 30 Dire che cosa si intende per algoritmo ricorsivo. Elencare e commentare le caratteristiche necessarie per la correttezza di un algoritmo ricorsivo. 4. punti 30 Per rappresentare sequenze di informazioni omogenee si possono utilizzare gli array oppure le strutture a lista con allocazione dinamica. Discutere vantaggi e svantaggi delle due possibilità. 5
Recupero prova 1 23-02-01 1. punti 30 Dire che cosa si intende per pseudocodice e perchè viene utilizzato. 2. punti 30 Adottando la normale codifica degli interi, scrivere la rappresentazione binaria con 8 bit, del valore decimale (negativo) 45, mostrando tutti i passaggi per ottenerla. 3. punti 30 Disegnare lo schema di un tipico calcolatore (Von Neumann) commentando le funzionalità dei blocchi funzionali. 4. punti 30 Presentare sinteticamente fasi e strumenti per lo sviluppo di programmi eseguibili. Recupero prova 2 23-02-01 1. punti 30 Precisare e commentare la differenza tra i sottoprogrammi di tipo funzione e di tipo procedura. 2. punti 30 Dire che cosa è e quali informazioni contiene nel linguaggio C il record di attivazione di una funzione. 3. punti 30 Dire, motivandolo, se è corretta o meno la seguente implementazione con una funzione ricorsiva dell algoritmo ricorsivo di calcolo del fattoriale. int fatt (int numero) { int risultato; if (numero <=1) risultato = 1; else risultato = fatt (numero); return (risultato); } 4. punti 30 Descrivere il funzionamento delle funzioni di libreria C per la gestione dinamica della memoria malloc ( ) e free ( ). 6
RECUPERO 12-09-01 1. punti 30 Scrivere e commentare la definizione di algoritmo. 2. punti 30 Dire che cosa si intende per tabella della verità di una funzione logica. Disegnare la tabella della verità della funzione F = (A +!B) *!C + C 3. punti 30 Disegnare lo schema di un tipico calcolatore (Von Neumann) commentando le funzionalità del BUS di sistema. 4. punti 30 Dire come viene gestito e che cosa contiene il record di attivazione di una funzione. 5. punti 30 Confrontare le caratteristiche e le modalità di uso delle liste (a puntatori) e degli array. 6. punti 30 Commentare le principali proprietà dei file. Recupero prove 1 e 2 19-09-01 1. punti 30 Dire come si possono descrivere gli algoritmi. 2. punti 30 Adottando la normale codifica degli interi scrivere la rappresentazione binaria con 16 bit del valore decimale (negativo) 61. 3. punti 30 Disegnare lo schema di un tipico calcolatore (Von Neumann) e descrivere le funzioni della memoria di lavoro. 4. punti 30 Precisare e commentare la differenza tra sottoprogrammi di tipo funzione e di tipo procedura. 5. punti 30 Discutere le caratteristiche necessarie per la correttezza di un algoritmo ricorsivo. 6. punti 30 Descrivere le funzioni del linguaggio C per la gestione dinamica della memoria. 7
Prima prova in itinere 23-11-01 1. punti 30 Disegnare e commentare l architettura generale di un calcolatore. 2. punti 30 Discutere le caratteristiche generali della rappresentazione binaria delle informazioni e indicare le principali codifiche binarie con (sinteticamente) le loro caratteristiche. 3. punti 30 Descrivere le regole di composizione degli elementi degli schemi a blocchi (flow-chart). 4. punti 30 Indicare e discutere i tipi di errori che si possono trovare nei programmi. Seconda prova in itinere 08-02-02 1. punti 33 Discutere le motivazioni per cui la ricorsione richiede il meccanismo dei record di attivazione per l esecuzione dei sottoprogrammi. 2. punti 32 Dire che cosa sono i file e descrivere le loro caratteristiche generali. Discutere analogie e differenze nelle caratteristiche e nell impiego dei file e degli array. 4. punti 32 Dire come sono organizzate le liste dinamiche e quali operazioni vanno eseguite per una loro gestione a coda (FIFO). 8
Recupero prove 1 e 2 01-03-02 Scrivere e commentare la definizione di algoritmo. 2. punti 33 Dire che cosa si intende per tabella della verità di una funzione logica. Disegnare la tabella della verità della funzione F = (A +!C) *!B + C Disegnare lo schema di un tipico calcolatore (Von Neumann) commentando in particolare le funzionalità della CPU. 4. punti 32 Precisare e commentare la differenza concettuale e di impiego tra i sottoprogrammi funzionali e i sottoprogrammi procedurali. 5. punti 33 Discutere le caratteristiche necessarie perchè l esecuzione di un algoritmo ricorsivo abbia termine. 6. punti 32 Discutere la gestione dinamica della memoria e descrivere le funzioni offerte dal linguaggio C per tale gestione. 9
Prima prova in itinere 15-11-02 Dire che cosa si intende per pseudocodice e discutere analogie e differenze con gli schemi a blocchi (flow chart). 2. punti 32 Discutere le caratteristiche generali della rappresentazione binaria delle informazioni e indicare le principali codifiche binarie con (sinteticamente) le loro caratteristiche. Presentare la struttura e la funzionalità della memoria di lavoro di un calcolatore. 4. punti 33 Dire quali sono i ruoli del Preprocessore del linguaggio C e del Compilatore, precisando quali informazioni ricevono in ingresso e quali emettono in uscita Seconda prova in itinere 31-01-03 Dire come viene gestito e che informazioni contiene il record di attivazione di un sottoprogramma nel linguaggio C 2. punti 33 Dire che cosa si intende per algoritmo ricorsivo. Elencare e commentare le caratteristiche di un algoritmo ricorsivo necessarie per la sua terminazione. 3. punti 32 Descrivere il funzionamento delle funzioni di libreria C per la gestione dinamica della memoria malloc ( ) e free ( ). 4. punti 33 Scrivere con pseudocodice le procedure di inserimento e di estrazione di un elemento da una lista dinamica semplice secondo la modalità LIFO = Last In First Out, precisando i parametri formali adottati. 10
Recupero prima prova in itinere 14-02-03 Presentare gli elementi e le regole di composizione degli schemi di flusso (flow chart). 2. punti 32 Dire quali sono le proprietà della rappresentazione binaria in complemento a 2 e qual è il campo di valori rappresentabili con N bit. Disegnare in forma semplificata (a blocchi) l architettura interna di una tipica CPU, indicando le funzioni dei vari blocchi. 4. punti 33 Descrivere gli strumenti che consentono di produrre un programma eseguibile. Recupero seconda prova in itinere 14-02-03 Precisare e commentare la differenza tra i parametri formali e i parametri attuali nell esecuzione dei sottoprogrammi 2. punti 32 Descrivere e commentare le regole di visibilità degli identificatori nel linguaggio C Dire che cosa si intende per ricorsione e precisare le caratteristiche del linguaggio C che la consentono. 4. punti 33 Evidenziare e commentare le analogie e le differenze tra array, file e liste dinamiche. 11
Recupero 19-09-03 Dire che cosa sono e come si possono descrivere gli algoritmi. 2. punti 32 Disegnare lo schema di un tipico calcolatore (Von Neumann) e descrivere i contenuti e le funzioni della memoria di lavoro. Precisare e commentare la differenza tra sottoprogrammi di tipo funzione e di tipo procedura. 4. punti 33 Descrivere le funzioni del linguaggio C per la gestione dinamica della memoria e le relative modalità d uso. 12
Prima prova in itinere 21-11-03 Dare la definizione di algoritmo e descrivere sinteticamente le caratteristiche più significative degli algoritmi 2. punti 32 Adottando la normale codifica binaria scrivere la rappresentazione binaria con 8 bit dei valori decimali (negativi) 39 e 139 indicando tutti i passaggi per ottenerla Presentare la struttura e la funzionalità dell unità di elaborazione (CPU) di un calcolatore. 4. punti 33 Presentare sinteticamente le fasi attraverso cui si genera un programma eseguibile e i relativi strumenti informatici di supporto. 13