Fondamenti di informatica
(SSE e Statistica)
Prova di esonero
del 10 maggio 2001
Domanda 1 (10 punti)
Scrivere un programma C che legge da tastiera 20 interi, e li stampa ordinati in senso non decrescente usando l’algoritmo bubble-sort.
Domanda 2 (15 punti)
Scrivere un funzione C di nome confronta_maiuscole che, dati come parametri due array di caratteri (ciascuno terminato opportunamente), restituisce –1, 0 , o +1 se il numero di lettere maiuscole contenute nel primo è rispettivamente minore, uguale o maggiore del numero di lettere maiuscole contenute nel secondo. Se opportuno, si potranno definire altre funzioni e invocarle dalla funzione confronta_maiuscole.
Domanda 3 (5 punti)
La seguente funzione, che dovrebbe individuare il valore minimo in un array di interi, contiene numerosi errori (alcuni dovuti ad un uso errato del linguaggio C, alcuni ad una logica errata).
I parametri formali corrispondono rispettivamente (nel programma corretto) all’indirizzo iniziale dell’array e al numero di elementi dell’array.
Evidenziare gli errori, descriverli, e proporre soluzioni (le linee di codice sono numerate per semplificare il riferimento al testo).
1 void minimo(int *v[], int n)
2 { int minimo;
3 minimo
= 0;
4 for
(i=1; i<=n; i++){
5 if
(v[i] < minimo)
6 minimo
= v[i];
7 else
8 i++;
9 }
10 return
minimo;
11 }