• Non ci sono risultati.

Fond. di Informatica V.O. (foglio 1); 15-07-2003

N/A
N/A
Protected

Academic year: 2021

Condividi "Fond. di Informatica V.O. (foglio 1); 15-07-2003"

Copied!
2
0
0

Testo completo

(1)

Cognome__________________ Nome__________________ Matricola________________

Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica

Fond. di Informatica V.O. (foglio 1); 15-07-2003

Regole del Gioco: 1.Scrivere le proprie risposte nei riquadri contenuti in questo foglio; solo le risposte scritte nei riquadri saranno valutate. 2. Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la calcolatrice.

Domanda 1 (5 punti) - Indicare che cosa viene visualizzato sullo schermo dall’esecuzione della seguente applicazione Java.

class Esame {

public static void main(String[] args) { boolean a, b, c;

a=true;

b=true;

c=(a && !b) || (!a && b);

System.out.println("INIZIO: a vale "+a+", b vale "+b+", c vale "+c);

while ( a == b ) {

System.out.println(" CICLO: a vale "+a+", b vale "+b+", c vale "+c);

a = (b && c) || (!b && !c);

b = (a && b) || (!a && !b);

c = (a && !b) || (!a && b);

}

System.out.println(" FINE: a vale "+a+", b vale "+b+", c vale "+c);

} }

Risposta

INIZIO: a vale ________ , b vale ________ , c vale ________

CICLO: a vale ________ , b vale ________ , c vale ________

CICLO: a vale ________ , b vale ________ , c vale ________

FINE: a vale ________ , b vale ________ , c vale ________

Domanda 2 (5 punti) - Ogni risposta esatta: +1, non data:0 , sbagliata: –1

Indicare in fondo a questo foglio se le seguenti affermazioni sono vere (con una croce su [V]) o false (con una croce su [F]):

1. Una classe può contenere la definizione di più metodi che hanno lo stesso nome, purché i vari metodi abbiano prototipo diverso

2. La sintassi dell’istruzione do-while è do istr while (cond);, in cui cond deve essere una espressione di tipo boolean e istr deve essere sintatticamente una singola istruzione

3. Nell’assegnazione a=b/c, il significato del simbolo / (divisione intera oppure divisione razionale) viene determinato sulla base del tipo di a

4. Nell’istruzione if (C1) if (C2) A else B (in cui C1 e C2 sono condizioni e A e B sono istruzioni), la parte else B è relativa alla prima istruzione condizionale, ovvero viene eseguita se e solo se C1 vale false

Gli errori di semantica vengono sempre riconosciuti e segnalati dal compilatore Risposta

1. [V] [F] 3. [V] [F]

2. [V] [F] 4. [V] [F]

(2)

Cognome__________________ Nome__________________ Matricola________________

Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica

Fond. di Informatica II / Fond. di Informatica (V.O. foglio 2); 15-07-2003

Regole del Gioco: 1.Scrivere le proprie risposte nei riquadri contenuti in questo foglio; solo le risposte scritte nei riquadri saranno valutate. 2. Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la calcolatrice.

Domanda 1 (5 punti) - Descrivere l’applicazione dell’algoritmo di bubble sort bidirezionale al seguente array di interi (al fine di ordinare l’array in modo crescente), mostrando lo stato dell’array dopo

l’esecuzione di ciascuna passata dell’algoritmo:

Array da ordinare (stato iniziale): 11 3 17 1 0 52 5 24 10 9

Domanda 2 (5 punti) - Ogni risposta esatta: +1, non data:0 , sbagliata: –1

Con riferimento alla definizione del seguente metodo e alla sua complessità rispetto alla lunghezza N dell’array dati, indicare se le seguenti affermazioni sono vere (con una croce su [V]) o false (con una croce su [F]):

/* 1 */ /* Calcola il numero di coppie di dati diversi. */

/* 2 */ public static int dsicordanze(int[] dati) { /* 3 */ // pre: dati!=null

/* 4 */ int diff; // numero di discordanze di dati /* 5 */ int i, k; // indici per la scansione di dati /* 6 */ diff = 0;

/* 7 */ for (i=0; i<dati.length; i++)

/* 8 */ for (k=i+1; k<dati.length; k++) /* 9 */ if (dati[i]!=dati[k])

/* 10 */ diff++;

/* 11 */ return diff;

/* 12 */ }

1. La condizione k<dati.length (linea 8) è una operazione dominante del metodo [V] [F]

2. La condizione dati[i]!=dati[k] (linea 9) è una operazione dominante del metodo [V] [F]

3. L’operazione k=i+1 (linea 8) viene eseguita N volte [V] [F]

4. L’operazione diff=0 (linea 6) viene eseguita N volte [V] [F]

5. Il metodo ha costo asintotico quadratico (O(N

2

)) [V] [F]

Riferimenti

Documenti correlati

Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la

Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la

Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la

Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la

Prima di consegnare il foglio scrivere il proprio nome, cognome e matricola sul foglio stesso.3.Non si può parlare, non si possono consultare appunti, non si può usare la

Regole del Gioco: 1.Scrivere le proprie risposte nei riquadri contenuti in questo foglio; solo le risposte scritte nei riquadri saranno valutate.. Prima di consegnare il

Scrivere un metodo di classe, di nome inizializza , che prende come argomento (parametro formale) un array di array di String ed inizializza tutti i suoi elementi con la

Con riferimento alle classi LinkedList e Node studiate a lezione, scrivere il metodo public void addToHead (Object obj) della classe LinkedList, che consente di aggiungere un