Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Documenti analoghi
Gestione dei compiti

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Le basi del linguaggio Java

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Esercizi Programmazione I

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Iterazione (introduzione)

Algoritmi di Ricerca. Esempi di programmi Java

Programmazione in Java (I modulo)

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Algoritmi di Ricerca. Esempi di programmi Java

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

C espressioni condizionali

Impariamo a programmare in. Lezione 6

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

LINGUAGGI DI PROGRAMMAZIONE!

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Lezione 6 Introduzione al C++ Mauro Piccolo

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

Tipi di dato primitivi

Laboratorio di Matematica e Informatica 1

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Il linguaggio JavaScript

Tipi di dato F n o d n am ent en ali

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Esercitazione n 2. Obiettivi

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Indice. Prefazione. 3 Oggetti e Java 53

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Fondamenti di Programmazione Recupero Primo Parziale 30 Gennaio 2008 Traccia A

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Esonero del corso di Programmazione a Oggetti

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

1.2f: Operazioni Binarie

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Istruzioni di ripetizione in Java 1

Programmazione con Java

Istruzioni Condizionali

Linguaggio C: Espressioni

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Concetti base programmazione. Antonio Gallo

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.

Esonero del corso di Programmazione a Oggetti

La codifica. dell informazione

Alberi Binario in Java

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:?

Le basi del linguaggio Java

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane

Calcolare x n = x x x (n volte)

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Fondamenti di Informatica

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Fondamenti di Programmazione. Sistemi di rappresentazione

$QDOLVLGHOSURJUDPPDTXDGUDWR

Le strutture di controllo

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea in Informatica

Costrutti di iterazione

Esempi di Problemi Iterativi

Espressioni. Espressioni. Valutazione di un espressione. Espressioni semplici

Sistemi di Numerazione

Esercizi di Algoritmi e Strutture Dati

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Rappresentazione dei Numeri

Il linguaggio C. Puntatori e dintorni

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 10 Novembre 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Cenni alla rappresentazione dei tipi dato primitivi

Programmazione di base

I costrutti del C. Le Strutture del C. Il costrutto if else (I) Il costrutto if else (II) Condizionali. if-else (else if) switch Iterative

La codifica. dell informazione

COGNOME NOME MATRICOLA DATA

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

Transcript:

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario a 8 bit in complemento a due 0100 1111 corrisponde al numero decimale 1. -78 2. 74 3. 84 4. 138 5. 79 0100 1111 in base 2 = 2^6 + 2^3 + 2^2 + 2^1 + 2^0 = 64 + 8 + 4 +2 + 1 = 79 in base 10 Domanda n. 2 Argomento: Rappresentazione dell'informazione

Domanda: Il numero binario a 8 bit in complemento a due 1111 1100 corrisponde al numero decimale 1. -3 2. 252 3. -4 4. -124 Applicando la definizione di complemento a due a 8 bit: 1111 1100 in base 2 = -2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 = -128 + 64 + 32 + 16 + 8 + 4 = -4 in base 10 In alternativa si calcoli l'inverso del numero: 0000 0011 + 1 = 0000 0100 in base due = 4 in base dieci. Domanda n. 3 Argomento: Rappresentazione dell'informazione Domanda: Quale e' la rappresentazione binaria (a 8 bit, in complemento a due) del numero -37? 1. 0101 1101 2. 0010 1011

3. 0010 0011 4. 1101 1011 5. il numero dato non puo' essere rappresentato in complemento a due a 8 bit Si calcoli la rappresentazione del numero decimale +37 e poi si applichi l'algoritmo per l'inversione del numero. 37 in base dieci = 32 + 4 + 1 = 0010 0101 in base 2; -37 in base dieci = 1101 1010 + 1 = 1101 1011 in base 2. Domanda n. 4 Argomento: Rappresentazione dell'informazione Domanda: Cambiando segno al numero binario in complemento a due 1111 1110 si ottiene: 1. 0000 0010 2. 0000 0001 3. 0111 1110 4. Viene generata una condizione di overflow (trabocco)

5. Nessuna delle precedenti Si applichi l'algoritmo di inversione (complemento a 2). Domanda n. 5 Argomento: Variabili e tipi Domanda: In Java il tipo di dati fondamentali char: 1. e' un numero intero compreso fra 0 e 127 estremi inclusi 2. e' un numero intero compreso fra 0 e 1023 estremi inclusi 3. e' un numero intero compreso fra 0 e 65535 estremi inclusi 4. non e' un numero intero 5. nessuna delle precedenti affermazioni e' corretta Il tipo di dati fondamentali char in Java e' un numero intero positivo espresso a 16 bit. Domanda n. 6 Argomento: Iterazioni, array e stringhe

Domanda: Il seguente frammento di codice in Java: final int A = 0; int b = A++; System.out.println(b); 1. compila e in esecuzione invia a standard output il numero 1 2. compila ma in esecuzione genera un'eccezione 3. compila e in esecuzione invia a standard output il numero 0 4. genera un errore di compilazione 5. nessuna delle precedenti affermazioni e' corretta La variabile A e' una costante, quindi non puo' essere modificata nell'enunciato A++. Domanda n. 7 Argomento: Variabili e tipi Domanda: Il seguente frammento di codice

public class X {... private double y; } 1. rende la variabile di esemplare y accessibile da qualsiasi metodi di qualsiasi classe 2. rende la variabile di esemplare y accessibile da tutte le classi che usano esemplari della classe X 3. rende la variabile di esemplare y accessibile solo dai metodi della classe X 4. rende costante la variabile di esemplare y 5. nessuna delle precedenti affermazioni e' corretta Le variabili di esemplare private sono visibili solo nella classe in cui sono definite. Domanda n. 8 Argomento: Variabili e tipi Domanda: Qual e' il significato della parola chiave this in un metodo di esemplare in Java 1. il motodo stesso

2. la classe a cui appartiene il metodo 3. il parametro implicito della chiamata al metodo 4. il costruttore predefinito della classe 5. nessuna delle precedenti affermazioni e' corretta Indica il parametro implicito della chiamata al metodo. Domanda n. 9 Argomento: Iterazioni, array e stringhe Domanda: Il metodo seguente public static int method(string s) { return 2 * s.length(); } 1. genera uno o piu' errori in compilazione 2. lancia un'eccezione se riceve come parametro il valore null

3. lancia un'eccezione se riceve come parametro la stringa vuota 4. non lancia mai eccezioni 5. nessuna delle affermazioni precedenti e' corretta L'invocazione di un metodo non statico con parametro implicito pari a null provoca sempre l'eccezione NullPointerException. Nel caso specifico, s.length() lancia l'eccezione NullPointerException se s = null. Domanda n. 10 Argomento: Logica booleana Domanda: Quale delle espressioni logiche in Java sotto riportate e' equivalente alla seguente?!(a >= 0 a <= 10) 1. a < 0 a > 10 2. a <= 0 && a >= 10 3. a >= 0 a <= 10 4. a > 0 && a < 10

5. nessuna delle precedenti risposte e' corretta Si applichino le leggi di De Morgan:!(a >= 0 a <= 10)equivale a (a < 0 && a > 10) Domanda n. 11 Argomento: Logica booleana Domanda: Negando la seguente espressione logica in Java mediante la legge di De Morgan si ottiene: (a!b) && (!a && b) 1. (a!b) (!a && b) 2. (a &&!b) (!a b) 3. (!a && b) (a!b) 4. (!a && b) && (a!b) 5. nessuna delle precednti risposte e' corretta

Si applichino le leggi di De Morgan:!((a!b) && (!a && b)) equivale a (!a && b) (a!b) Domanda n. 12 Argomento: Logica booleana Domanda: Quale delle espressioni logiche sotto riportate e' equivalente alla seguente?!((a > 0) && (a < 10)) 1. a <= 0 && a >= 10 2. a < 0 a > 10 3. a <= 0 a >= 10 4. a < 0 && a > 10 5. nessuna delle precedenti risposte e' corretta Si applichino le leggi di De Morgan:!((a > 0) && (a < 10)) equivale a a <= 0 a >= 10 Domanda n. 13 Argomento: Logica booleana

Domanda: Con riguardo alla seguente espressione logica quali affermazioni sono vere: ((a && b) (!a &&!b)) ==!((a b) && (!a!b)) 1. e' sempre verificata, indipendentemente dai valori da a e b 2. la relazione e' sempre verificata perche' le espressioni a destra e a sinistra dell'uguale valgono entrambe true per qualsiasi valore delle variabili a e b 3. la relazione e' sempre verificata perche' le espressioni a destra e a sinistra dell'uguale valgono entrambe false per qualsiasi valore delle variabili a e b 4. la relazione non e' mai verificata perche' l'espressione a sinistra vale true mentre quella a destra vale false per qualsiasi valore delle variabili a e b 5. la relazione non e' mai verificata perche' l'espressione a sinistra vale false mentre quella a destra vale true per qualsiasi valore delle variabili a e b 6. mancano dati per eseguire il calcolo Le espressioni a destra e sinistra sono coincidente: si applichi De Morgan. Domanda n. 14 Argomento: Logica booleana Domanda: Relativamente all'espressione booleana seguente, dire quali delle seguenti

affermazioni sono vere: ((!a &&!b) (a && b)) == ((!a b) && (a!b)) 1. vale true qualsiasi siano i valori di a e b 2. vale false qualsiasi siano i valori di a e b 3. dipende da b: se b vale true, allora l'espressione vale false, altrimenti vale true 4. dipende da b: se b vale true, allora l'espressione vale true, altrimenti vale false 5. nessuna delle precedenti risposte e' corretta a b!a&&!b a&&b (!a &&!b) (a && b) ------------------------------------------------ 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 -------------------------------------------------- a b!a b a!b (!a b) && (a!b) ------------------------------------------------ 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 -------------------------------------------------- Domanda n. 15 Argomento: Iterazioni, array e stringhe

Domanda: Quale frammento di codice e' equivalente al seguente ciclo while? int i = 0; while(i < k) i++; 1. int i = 0; do { i++; } while (i < k) 2. int i; for(i = 0; i < k ; i++); 3. int i = 0; while(i!= k) i++; 4. nessuna delle risposte precedenti e' corretta Si veda la definizione di ciclo for. Domanda n. 16 Argomento: Iterazioni, array e stringhe Domanda: Quale frammento di codice e' equivalente al seguente ciclo for? int i; for(i = 0; i < k; i++); 1. int i = 0; do { i++; } while (i < k);

2. int i = 0; if (i < k) do { i++; } while (i < k); 3. int i = 0; while(i!= k) i++; 4. int i = 0; while(i < k) i++; 5. nessuna delle precedenti risposte e' corretta Si veda la definizione di ciclo for. Domanda n. 17 Argomento: Iterazioni, array e stringhe Domanda: Quale frammento di codice e' equivalente al seguente ciclo do? int i = 0; int j = 0; do { j = i++; } while (i < n); 1. int j = 0; for (int i = 0; i < n; i++) { j = i++; } 2. int i = 0; int j = i++; while(i < n) { j = i++;}

3. int i = 0; int j = 0; while(i < n) { j = i++; } 4. nessuna delle precedenti risposte e' corretta Si veda la definizione di ciclo do. Domanda n. 18 Argomento: Variabili e tipi Domanda: Qual e' la sequenza corretta di istruzioni di assegnazione per scambiare i valori contenuti nelle due variabili m e n? 1. m = n; n = m; 2. tmp = n; n = m; m = tmp; 3. tmp = n; m = tmp; n = m; 4. tmp = m; n = tmp; m=n; 5. nessuna delle precedenti risposte e' corretta

Provare per credere! Domanda n. 19 Argomento: Logica booleana Domanda: I due enunciati seguenti int x; int y;... if (x / y > 0 && y!= 0)... if (y!= 0 && x / y > 0)... 1. sono equivalenti 2. hanno un comportamento diverso quando y vale 0 3. hanno un comportamento diverso quando x e' positivo 4. Nessuna delle precedenti risposte e' corretta Il primo enunciato genera l'eccezione ArithmeticException quando y vale 0, il secondo non genera eccezioni quando y = 0 (cortocircuito!). Domanda n. 20 Argomento: Iterazioni, array e stringhe

Domanda: Il confronto lessicografico fra due stringhe richiede un numero di confronti tra singoli caratteri 1. almeno uguale alla lunghezza della stringa piu' lunga 2. almeno uguale alla lunghezza della stringa piu' corta 3. almeno uguale alla somma delle lunghezze delle due stringhe 4. nessuna delle precedenti affermazioni e' corretta Il confronto lessicografico procede confrontando coppie di caratteri e termina quando i caratteri di una coppia sono diversi oppure quando sono statie saminati tuuti i caratteri di una delle due stringhe. Ad esempio il confronto fra le stringhe "lupo" e "luna" richiede di confrontare tre caratteri: 'l'<->'l', 'u'<->'u', 'p'<->'n', Il confronto fra le stringhe "lupo" e "lepre" richiede di confrontare 2 caratteri: 'l'<->'l', 'u'<->'e'. Domanda n. 21 Argomento: Variabili e tipi Domanda: Qual e' l'effetto del seguente frammento di codice String s = "21.0"; if (s!= null) { double x = Double.parseDouble(s); double y = x / 3.0;

} System.out.println("risultato: " + y); 1. compila ed esegue correttamente, stampando la stringa "risultato: 7.0" 2. errore in compilazione 3. compila correttamenete ma l'esecuzione provoca la generazione di un'eccezione 4. nessuna delle precedenti Compila ed esegue senza generare eccezioni. Provare per credere! Domanda n. 22 Argomento: Logica booleana Domanda: Quale dei seguenti enunciati esegue il confronto lessicografico fra due stringhe s1 e s2: 1. s1 == s2 2. s1 = s2 3. s1.equals(s2)

4. s1.compareto(s2) 5. s1.length() == s2.length() 6. nessuna delle precedenti risposte e' corretta L ordine lessicografico viene stabilito dal metodo compareto() Domanda n. 23 Argomento: Iterazioni, array e stringhe Domanda: Il seguente frammento di codice in Java: int n = 4; int p = 1; while (n > 0) { p *= n; } System.out.println("risultato: " + p); 1. compila, ma in esecuzione ciclo all'infinito 2. compila e in esecuzione invia a standard output il numero n^p, ovvero 4^1 = 4 3. compila e in esecuzione invia a standard output la somma dei numeri da 1 a 4

4. non compila; il ciclo while deve essere sostituito con un ciclo for 5. nessuna delle precedenti affermazioni e' corretta Cicla all'infinito perche' la variabile di ciclo n non viene mai decrementata. Domanda n. 24 Argomento: Iterazioni, array e stringhe Domanda: Il seguente frammento di codice in Java: int n = 4; int p = 1; while (n > 0) { p *= n; n--; } System.out.println("risultato: " + p); 1. compila, ma in esecuzione cicla all'infinito 2. compila e in esecuzione invia a standard output il prodotto dei numeri da 1 a 4 3. compila e in esecuzione invia a standard output la somma dei numeri da 1 a 4

4. non compila; il ciclo while deve essere sostituito con un ciclo for 5. nessuna delle precedenti affermazioni e' corretta Calcola 4*3*2*1 ovvero 4!. Domanda n. 25 Argomento: Iterazioni, array e stringhe Domanda: Il seguente frammento di codice in Java: int i = 0; for(i = 0; i < k; i++) ; System.out.println("risultato: " + i); 1. compila, ma in esecuzione ciclo all'infinito 2. compila e in esecuzione invia a standard output la somma dei numeri da 1 a k 3. compila e in esecuzione invia a standard output il numero k - 1 se k >= 0, il numero 0 se k < 0 4. compila e in esecuzione invia a standard output il numero k se k >= 0, il numero 0 se k < 0

5. non compila; il ciclo for deve essere sostituito con un ciclo while 6. nessuna delle precedenti affermazioni e' corretta e k <= 0 il ciclo for non viene eseguito e il frammento stampa 0, se k > 0 i esce dal ciclo quando assume il valore k.