Anteprima
Vedrai una selezione di 1 pagina su 4
Soluzioni appello di febbraio 2016 Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

primo

funzione 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 while

La condizione del ciclo è chiaramente sbagliata rispetto alla richiesta iniziale; tuttavia e’ 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

while

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 unsocial network:

typedef char Stringa[30];

typedef struct{

Stringa nome;

Stringa cognome;

Stringa username;

int annoIscrizione;

Foto fotoUtente[50];

int nFoto;

} Utente;

Domanda 1 Foto

Si definisca un tipo di dato atto a rappresentare una foto di un utente; Ogni foto è caratterizzata da

DIM_MAX DIM_MAX titolo tag

un’immagine (matrice di x di interi da 0 a 255), da un e da un (entrambi

Stringa):

rappresentabili con il tipo

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]; LibroFaccia,

Si scriva una porzione di codice che, tra tutte le foto di tutti degli utenti inseriti in stampi a

immagine

schermo il titolo della foto la cui matrice ha il maggior numero di elementi che superano la

T tag

soglia ed il corrispondente sia “Montagna” oppure “Neve”.

Stringa foto;

int sum_soglia;

for (i = 0; i < MAX_UTENTI; i++)

for (j = 0; j < libroFaccia[i].nFoto; j++)

Stringa tag;

strcpy(tag,libroFaccia[i].fotoUtente[j].tag);

if(strcmp(tag,”Montagna”)==0 || strcmp(tag,”Neve”)==0) {

sum_soglia = 0;

for (k = 0; k < MAX_DIM; k++)

for (h = 0; h < MAX_DIM; h++)

if (libroFaccia[i].fotoUtente[j].immagine[k][h] > soglia)

sum_soglia++;

if (sum_soglia >= max_sum_soglia){

strcpy(foto,libroFaccia[i].fotoUtente[j].titolo);

}}

printf("%s", foto);

Esercizio 3 - Matlab - (10 punti) roll(testo, n)

Si implementi in linguaggio Matlab un funzione ricorsiva che ritorni una matrice di

caratteri dove:

• n testo.

la prima riga consiste nei primi caratteri di

• n testo

la seconda riga consiste negli caratteri di a cui e’ stato tolto il primo carattere.

• n testo

la terza riga consiste negli caratteri di a cui sono stati tolti i primi due caratteri e così via.

• testo n -.

Nel caso la stringa non abbia caratteri inserire il carattere

• La matrice e’ considerata completa quando sono stati tolti tutti i caratteri dalla stringa originaria

roll('buon viaggio', 10)

Per esempio, la matrice risultante di deve essere:

buon viagg

uon viaggi

on viaggio

n viaggio-

Dettagli
Publisher
A.A. 2015-2016
4 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher magi612 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Zaccaria Vittorio.