• Non ci sono risultati.

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato.

N/A
N/A
Protected

Academic year: 2021

Condividi "Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato."

Copied!
2
0
0

Testo completo

(1)

Esame di Algoritmi e Strutture di Dati 1 Mercoled`ı 1 Settembre 2004

Nome:

Cognome:

Matricola:

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato.

Consegnare solo la bella copia e il testo del compito.

Non ` e possibile consultare alcun tipo di materiale didattico.

Non ` e possibile uscire dopo l’inizio dello scritto.

Esercizio (Punti 10)

Si dia la definizione di albero binario di ricerca. Produrre tre alberi binari di ricerca distinti aventi le seguenti chiavi: 2,5,7,11,13,17,19,23.

Esercizio (Punti 20)

Dati due numeri reali a e b con a ≤ b, l’intervallo [a, b] `e l’insieme dei numeri reali compresi tra a e b, cio`e l’insieme {x ∈ R | a ≤ x ≤ b}.

Due intervalli I

1

e I

2

si dicono disgiunti se non hanno elementi in comune, cio`e I

1

∩ I

2

= ∅. Due intervalli I

1

e I

2

si dicono congiunti se hanno almeno un elemento in comune, cio`e I

1

∩ I

2

6= ∅. L’intervallo I

1

si dice sottointervallo di I

2

se I

1

`e un sottoinsieme di I

2

, cio`e I

1

⊆ I

2

.

1. Scrivere una procedura che, dati in ingresso due intervalli, verifica se essi sono disgiunti.

2. Scrivere una procedura che, dati in ingresso due intervalli, verifica se essi sono congiunti.

3. Scrivere una procedura che, dati in ingresso due intervalli, verifica se uno dei due `e sottointervallo dell’altro.

In ogni caso valutare la complessit`a computazionale della procedura scritta.

1

(2)

Soluzione

Algoritmo 1 DisjointIntervals(a,b,c,d) DisjointIntervals(a,b,c,d)

1:

if b < c or d < a then

2:

return true

3:

else

4:

return false

5:

end if

Algoritmo 2 ConjointIntervals(a,b,c,d) ConjointIntervals(a,b,c,d)

1:

if not DisjointIntervals(a, b, c, d) then

2:

return true

3:

else

4:

return false

5:

end if

Algoritmo 3 SubIntervals(a,b,c,d) SubIntervals(a,b,c,d)

1:

if (a ≤ c and d ≤ b) or (c ≤ a and b ≤ d) then

2:

return true

3:

else

4:

return false

5:

end if

La complessit`a `e in ogni caso costante.

2

Riferimenti

Documenti correlati

ISTRUZIONI: Prima di tutto, su ogni foglio che consegnerai devi scrivere, in stampatello, nome, cognome e numero di matricola.. Devi riconsegnare anche il testo dell’esame (cio`

• La valutazione dello svolgimento degli esercizi verra’ utilizzata per la valutazione finale, in sede di esame finale del corso. • Consegnare i seguenti fogli stampati e

• La valutazione dello svolgimento degli esercizi verra’ utilizzata per la valutazione finale, in sede di esame finale del corso. • Consegnare i seguenti fogli stampati e

Modificare opportunamente la struttura di dati tabella ad indirizzamento diretto in modo che possa contenere pi`u oggetti con la medesima chiave (ma con dati satellite

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato;.. Consegnare solo la bella copia e il testo

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato.. Consegnare solo la bella copia e il testo

Accuratezza richiesta Valore dell’ integrale Stima errore assoluto Errore

Quesito F (punti 3) Trovare le radici dell’ equazione e −x 2 sin(2πx) = 0 nell’ intervallo [0, 1] utilizzando degli opportuni comandi Matlab o il metodo delle secanti..