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   }