Soluzioni appello di febbraio 2016
Esercizio 1 - Matlab - (4 punti)
Si consideri la seguente richiesta: un programma deve controllare che un numero N inserito dall’utente sia: primo, dispari, compreso tra 3 e 100, estremi inclusi. Quando il numero N inserito non soddisfa tutte le condizioni sopra, l’inserimento viene ripetuto.
Vittorio, un programmatore alle prime armi, ha scritto il seguente frammento di codice Matlab, sfruttando la funzione primo che restituisce 1 se il suo argomento è un numero primo, 0 altrimenti:
N = 0
while(primo(N) && (3<=N) && (N<=100) && mod(N,2))
N = input('Inserire un numero: ');
end
Domanda 1
La condizione del ciclo è chiaramente sbagliata rispetto alla richiesta iniziale; tuttavia è possibile modificarla leggermente in modo tale da renderla coerente con la richiesta iniziale. Si riscriva la condizione di cui sopra aggiungendo solo quello che manca e senza cancellare nulla di esistente:
(primo(N) && (3<=N) && (N<=100) && mod(N,2)) == 0
Domanda 2
L’espressione risultante al passo precedente potrebbe essere ridondante ovvero vi potrebbero essere alcune operazioni che, anche se eliminate, non cambierebbero la funzionalità del ciclo corrispondente. Quale eliminereste?
- Eliminerei 3<=N
- Eliminerei N<=100
- Eliminerei primo(N)
- Eliminerei mod(N,2) ☑︎
- Non eliminerei nulla, non c'è nulla di ridondante
Poiché tutti i numeri primi tra 3 e 100 sono dispari.
Esercizio 2 - Linguaggio C - (10 punti)
Si considerino le seguenti definizioni di tipo, utilizzate all’interno del sistema di gestione di un social network:
typedef char Stringa[30];
typedef struct{
Stringa nome;
Stringa cognome;
Stringa username;
int annoIscrizione;
Foto fotoUtente[50];
int nFoto;
} Utente;
Domanda 1
Si definisca un tipo di dato atto a rappresentare una foto di un utente; ogni foto è caratterizzata da un’immagine (matrice di DIM_MAX x DIM_MAX di interi da 0 a 255), da un titolo e da un tag (entrambi Stringa):
typedef struct{
int immagine[MAX_DIM][MAX_DIM];
Stringa tag;
Stringa titolo;
} Foto;
Domanda 2
Si ipotizzi di avere le seguenti definizioni aggiuntive:
#define T 125
#define UTENTI 100
Utente libroFaccia[UTENTI];
Si scriva una porzione di codice che, tra tutte le foto di tutti gli utenti inseriti in libroFaccia, stampi a schermo il titolo della foto la cui matrice ha il maggior numero di elementi che superano la soglia T ed il corrispondente tag sia “Montagna”.
-
Soluzioni seconda prova in itinere febbraio 2016
-
Appello di Probabilità 8 settembre 2016 con soluzioni
-
Testo soluzioni Fisica 2 di febbraio 2024
-
Appello di Probabilità del 20 giugno 2016 con soluzioni