Paniere di "Algoritmi e strutture dati" - Ingegneria informatica dell'automazione
Prof: Vecchio Massimo - Lezione 002
Lingaggi di programmazione
01. Che differenza c'è tra un linguaggio di programmazione interpretato e uno compilato?
- Un linguaggio interpretato viene prima tradotto in linguaggio macchina
- Un linguaggio compilato viene prima tradotto in linguaggio macchina
- Nessuna di queste risposte
- Non esistono differenze
Lezione 003
Linguaggi e macchine virtuali
01. Cosa si intende per linguaggio intermedio?
- Un processo in cui il codice sorgente è trasformato in un linguaggio molto vicino al linguaggio macchina, in modo da poter essere eseguito da una macchina virtuale
- Un processo in cui il codice macchina è trasformato in un linguaggio molto ad alto livello, in modo da poter essere letto con facilità dal programmatore
- Nessuna di queste risposte
- Un processo in cui tutte le variabili di un programma vengono trasferite nello stack di una macchina virtuale per poter essere poi utilizzate
02. Cosa è la Java Virtual Machine?
- Una classe principale
- Nessuna di queste risposte
- Una classe derivata
- Una macchina a stati finiti
03. Quali dei seguenti è un principio fondamentale della programmazione ad oggetti?
- L'esistenza di un costrutto nativo del linguaggio che realizzi una interfaccia (interface in Java)
- Nessuna di queste risposte
- Il polimorfismo
- La possibilità nativa del linguaggio di utilizzare modificatori di accesso (public, private, protected in Java)
04. Che tipo di linguaggio di programmazione è Java?
- Nessuna di queste risposte
- È puramente compilato
- È puramente interpretato
- È un linguaggio semi-compilato (o anche semi-interpretato)
Lezione 004
Classi e oggetti
01. Cosa è un oggetto?
- Nessuna di queste risposte
- Un oggetto è la realizzazione (istanza) di una classe
- Un oggetto non ha membri propri
- Un oggetto è la descrizione astratta di un tipo di dato
02. Cosa è una classe?
- Una classe è la realizzazione (istanza) di un metodo
- Una classe è la descrizione astratta di un tipo di dato
- Nessuna di queste risposte
- Una classe è un costrutto necessario per definire un metodo in Java
03. Che differenza c'è tra una classe ed un oggetto?
- Un oggetto è la descrizione astratta di un tipo di dato; una classe è la realizzazione (istanza) di un oggetto
- Nessuna di queste risposte
- Oggetti e classi sono sinonimi
- Una classe è la descrizione astratta di un tipo di dato; un oggetto è la realizzazione (istanza) di una classe
04. Si faccia un esempio di creazione di un oggetto in Java usando l'operatore appropriato
- Integer a = new Integer(3);
- New a = Integer(3);
- Nessuna di queste risposte
- Integer a = 3;
Lezione 005
Package e importazioni in Java
01. Come si importano i package in Java?
- Si possono importare solo registrando l'opportuno handler
- Nessuna di queste risposte
- Si possono importare solo da linea di comando
- Utilizzando la direttiva import
02. Cosa è un package in Java?
- Un package serve per poter istanziare un metodo
- Un package si può utilizzare solo dopo averne definito i modificatori di accesso
- Un package è uno strumento per raggruppare tipi in qualche modo legati fra di loro
- Nessuna di queste risposte
Lezione 006
Espressioni in Java
01. Si facciano esempi di espressioni in Java
- Nessuna di queste risposte
- a+b e (a-b*(1-4)) sono entrambe espressioni in Java
- (a-b*(1-4)), ma non a+b
- a+b, ma non (a-b*(1-4))
Lezione 007
Incapsulamento e accesso ai dati
01. In Java, se una variabile di istanza x viene dichiarata private all'interno di una classe Prova, allora:
- Il tipo di x deve essere necessariamente primitivo.
- Solo metodi appartenenti alla classe Prova possono accedere a x.
- Solo metodi statici appartenenti alla classe Prova possono accedere a x.
- Nessun metodo dichiarato prima di x può accedere a x.
02. Cosa si intende per incapsulamento dei dati?
- Nessuna di queste risposte
- Si definisce incapsulamento la tecnica di impedire all'utilizzatore il cambio delle variabili membro di una classe, in modo da rendere tali membri costanti durante tutta l'esecuzione del programma e facilitare la fase di debug
- Si definisce incapsulamento la tecnica di nascondere il funzionamento interno (deciso in fase di progetto) di una parte di un programma, in modo da proteggere le altre parti del programma dai cambiamenti che si produrrebbero in esse nel caso che questo funzionamento fosse difettoso, oppure si decidesse di implementarlo in modo diverso
- Si definisce incapsulamento la tecnica di nascondere l'interfaccia esposta di una classe (deciso in fase di progetto), in modo da proteggere le altre parti della classe dai cambiamenti che si produrrebbero in esse nel caso che questo funzionamento fosse difettoso, oppure si decidesse di implementarlo in modo diverso
Lezione 008
Ereditarietà e polimorfismo
01. Cosa si intende per ereditarietà?
- È un meccanismo che permette la definizione di classi (dette classi derivate) a partire da altre già definite (dette classi base)
- È un meccanismo che consente di fare overloading di metodi pubblici
- È un meccanismo che consente di fare overriding di metodi privati
- Nessuna di queste risposte
02. Cosa si intende per polimorfismo?
- È un meccanismo che permette ad uno stesso oggetto di esibire comportamenti (quindi funzionalità) di volta in volta differenti a runtime.
- Nessuna di queste risposte
- È un meccanismo che permette la definizione di classi (dette classi derivate) a partire da altre già definite (dette classi base)
- È un meccanismo che permette ad uno stesso oggetto di esibire comportamenti (quindi funzionalità) di volta in volta differenti a tempo di compilazione
Lezione 009
Interfacce e metodi generici
01. Cosa sono le interfacce in Java (costrutto interface)?
- Nessuna di queste risposte
- Le interfacce non definiscono un tipo
- Le interfacce definiscono un tipo
- Le interfacce realizzano una classe
Lezione 010
01. Cosa si intende per metodi generici in Java?
- Metodi che non hanno argomenti di ritorno
- Nessuna di queste risposte
- Metodi in cui il tipo dell'argomento di ritorno non è univoco
- Metodi che non hanno argomenti di input
Lezione 011
Strutture dati e tipi di dato astratto
01. Facendo esplicito riferimento al linguaggio Java, come si realizza una struttura dati?
- Nessuna di queste risposte
- Implementando una classe
- Implementando un metodo
- Importando un package
02. Per definire un tipo di dato astratto dobbiamo
- Definire l'insieme dei dati e l'insieme delle operazioni su di essi
- Assicurarci che l'insieme dei dati (il dominio) non sia vuoto
- Descrivere l'implementazione delle operazioni sui dati (metodi)
- Descrivere le strutture dati che conterranno i dati stessi
03. Con riferimento al linguaggio di programmazione Java, quale delle seguenti affermazioni è corretta?
- Il tipo di dato astratto è indipendente dalla specifica implementazione
- Cambiando l'implementazione di un metodo di interfaccia del server, devo andare a modificare anche il codice nel client
- Nessuna di queste risposte
- Tipo di dato astratto e struttura dati sono sinonimi
04. Quali delle seguenti definizioni rappresenta un tipo di dato astratto?
- Un insieme di interi
- Un vettore di n numeri con l'operazione di estrazione del massimo valore
- Un insieme di interi con l'operazione di estrazione del massimo valore
- Nessuna di queste risposte
05. Cosa si intende per tipo di dato astratto?
- Un tipo di dato astratto è un modello di struttura dati che specifica le operazioni che possono essere eseguite su tali tipi
- Nessuna di queste risposte
- Un tipo di dato astratto è un modello di struttura dati che specifica le caratteristiche che gli oggetti di quel tipo avranno
- Un tipo di dato astratto è un modello di struttura dati che specifica le caratteristiche che gli oggetti di quel tipo avranno, più le operazioni che possono essere eseguite su tali tipi
Lezione 012
Array in Java
01. Come si accede all'elemento i-esimo di un array vec in Java?
- a=int vec[i];
- a=vec_i
- a=vec(i);
- a= vec[i];
02. Come si crea un nuovo array di 5 elementi in Java?
- int[] vec =new int[5];
- int vec =new vec[4];
- vec= new int[5];
- int vec =new vec[5];
03. Cosa è un array?
- Un contenitore di elementi non omogenei
- Nessuna di queste risposte
- Un contenitore di elementi (omogenei e non omogenei)
- Un contenitore di elementi omogenei
Lezione 013
Liste e ricerca
01. La ricerca in una lista
- Richiede in media tempo lineare
- Richiede in media tempo logaritmico
- Richiede in ogni caso tempo lineare
- Richiede in ogni caso tempo costante
02. Cosa è una lista concatenata semplice (o collegata o semplicemente concatenata)?
- Un modo unico per istanziare sequenze di elementi omogenei
- Un metodo astratto
- Un modo diverso di istanziare un array
- Nessuna di queste risposte
03. Come avviene la ricerca di un elemento in una lista?
- Con un accesso casuale alla struttura
- Con un accesso sequenziale alla struttura
- Nessuna di queste risposte
- Può avvenire sia con accesso casuale che sequenziale alla struttura
04. Qual è il tempo di esecuzione di una operazione search in una Lista collegata di n elementi?
- O(sqrt(n) )
- O(n2)
- O(n)
- O(logn)
05. La ricerca in una lista
- Richiede in media tempo lineare
- Richiede in media tempo logaritmico
- Richiede in ogni caso tempo costante
- Richiede in ogni caso tempo lineare
Lezione 014
Pile e code
01. In una pila (stack) gli elementi vengono estratti utilizzando una politica
- Nessuna di queste risposte
- LIFO
- Dipende dai casi
- FIFO
02. Quale delle seguenti affermazioni è vera?
- Pile e code rappresentano esattamente la stessa struttura dati
- In una pila, inserimenti e cancellazioni avvengono allo stesso estremo
- Nessuna di queste risposte affermazioni è vera
- In una coda, inserimenti e cancellazioni avvengono allo stesso estremo
03. La struttura di dati "coda" (o "queue")
- Si può realizzare solo con una lista collegata
- Realizza una politica FIFO.
- Serve per gestire le chiamate non ricorsive.
- Nessuna di queste risposte
04. La struttura di dati "pila" (o "stack")
- Realizza una politica FIFO.
- Si può realizzare solo con una lista collegata
- Serve per gestire le chiamate non ricorsive.
- Può essere realizzata facilmente con un array.
05. Che somiglianze ci sono tra una pila e una coda?
- Entrambe le strutture dati possono essere realizzati con lo stesso tipo di dato astratto
- Nessuna di queste risposte
- Entrambi i tipi di dato astratto possono essere realizzati con la stessa struttura dati
- Non ci sono somiglianze
06. In una coda (queue) gli elementi vengono estratti utilizzando una politica
- Nessuna di queste risposte
- FIFO
- Dipende dai casi
- LIFO
07. Che differenze ci sono tra una pila e una coda?
- La differenza sta nella struttura dati utilizzata
- La pila realizza una politica FIFO, la coda una politica LIFO
- La pila realizza una politica LIFO, la coda una politica FIFO
- Nessuna di queste risposte
08. Cosa è una pila (stack)?
- Un sinonimo di array
- Nessuna di queste risposte
- Una struttura dati
- Un tipo di dato astratto
09. Cosa è una coda (queue)?
- Nessuna di queste risposte
- Un sinonimo di lista concatenata
- Una struttura dati
- Un tipo di dato astratto
Lezione 015
Liste posizionali e indirizzamento
01. Cosa è una lista posizionale?
- È un tipo di dato astratto che realizza un contenitore di puntatori/reference ad elementi esterni alla lista
- Nessuna di queste risposte
- È una struttura dati implementata internamente come un array di interi.
- È un tipo di dato astratto che realizza un contenitore di posizioni, ciascuna delle quali memorizza una posizione
Lezione 016
Tabelle hash e gestione delle chiavi
01. L'indirizzamento aperto (open addressing)
- È una tecnica di gestione della RAM
- Indica che un indirizzo di memoria contiene un indirizzo
- È una tecnica di scansione delle liste
- È una tecnica di gestione delle tabelle hash
02. Cosa è il tipo di dato astratto Mappa?
- È un tipo di dato astratto che permette di gestire collezioni di valori a cui vengono associati chiavi prese da un dominio totalmente ordinato
- È un tipo di dato astratto che permette di gestire collezioni di chiavi a cui vengono associati valori presi da un dominio ordinato
- È un tipo di dato astratto in cui le chiavi corrispondono agli indici dell'array in cui memorizzare i valori mappati
- Nessuna di queste risposte
03. Quando si verifica una collisione in hash table?
- Quando a chiavi diverse corrisponde lo stesso valore della funzione di hash
- Si verifica quando a chiavi diverse corrispondono valori diversi della funzione di hash
- Si verifica quando il valore della chiave coincide con quello della funzione di hash
- Si verifica quando alla stessa chiave corrispondono valori diversi della funzione di hash
04. Le tecniche hash
- Hanno prestazioni che dipendono dal rapporto tra numero delle posizioni occupate e numero delle posizioni disponibili
- Hanno prestazioni che dipendono dal rapporto tra numero di scambi e numero di confronti
- Hanno prestazioni che dipendono solo dalla quantità di memoria allocata
- Richiedono grandi quantità di memoria
05. Un docente utilizza il numero di matricola (5 cifre decimali) come chiave in una tabella hash per memorizzare i suoi 200 studenti. Qual è il fattore di carico della tabella (espresso in percentuale!)?
- Nessuna di queste risposte
- 0,02
- 0,002
- 20,0002
06. Quale delle seguenti è una definizione di collisione?
- Si ha collisione quando a chiavi diverse corrispondono valori diversi della funzione hash
- Si ha collisione quando alla stessa chiave possono corrispondere valori diversi della funzione hash
- Si ha collisione quando il valore della chiave coincide con quello della funzione hash
- Si ha collisione quando a chiavi diverse corrisponde lo stesso valore della funzione hash
07. Un docente utilizza il numero di matricola (5 cifre decimali) come chiave in una tabella hash per memorizzare i suoi 400 studenti. Qual è il fattore di carico della tabella (espresso in percentuale!)?
- 0,0004
- 0,04
- 0,4
- 0,004
Lezione 017
Alberi e strutture dati
01. Si definisca il tipo di dato astratto Albero
- Nessuna di queste risposte
- Per albero si intende un grafo non diretto, non necessariamente connesso se aciclico
- Per albero si intende un grafo non diretto, connesso e aciclico
- Per albero si intende un grafo diretto e connesso
02. Cosa è un albero binario?
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Paniere di algoritmi e strutture dati - risposte multiple
-
Paniere algoritmi e strutture dati - risposte multiple
-
Paniere Algoritmi e strutture di dati (2025) - Risposte multiple e aperte
-
Paniere Algoritmi e strutture dati - risposte multiple