Dipartimento di Elettronica, Informazione e Bioingegneria

Dipartimento di Elettronica, Informazione e Bioingegneria
20133 Milano (Italia)
Piazza Leonardo da Vinci, 32
Tel. (+39) 02-2399.3400
Fax (+39) 02-2399.3411
Politecnico di Milano
Informatica ed Elementi di Informatica Medica
Settembre 25, 2014
Prof. Marco D. Santambrogio
Nome
Cognome
Tema A
Tema B
Tema C
Esercizio 1 (33%)
Esercizio 2 (33%)
Esercizio 3 (34%)
Totale
Lo studente DEVE selezionare UNO tra i tre temi proposti e svolgere SOLO ed
UNICAMENTE gli esercizi del temi selezionato, consegnando UN SOLO foglio
protocollo! Il tempo previsto per il completamento della prova (Info + Elementi
di medica) è di 3 e 15’ ore: Elementi di medica 75 minuti, a seguire 2 ore per
Informatica.
La prova di informatica è superata con un minimo di 60 punti su 100. Inserendo
nel campo nome, oltre al proprio nome, anche la scritta IEIM, può scegliere di
non fare un exe tra quelli proposti nel tema d’esame C. Gli orali sono obbligatori
nella fascia 55-65. Una insufficienza viene considerata non grave, se non
inferiore a 50 punti so 100. E’ possibile portare all’esame libri, appunti, slide.
NON è possibile tenere acceso alcun dispositivo elettronico (e.g. portatile,
cellulare, calcolatrice, tablet, etc.).
Gli studenti che verranno trovati a copiare, a far copiare, o con dispositivi
elettronici accessi verranno automaticamente ESPULSI dalla prova.
Gli eventuali orali dei compiti per la parte di INFO si terranno dalle
8.30am del 2 Ottobre in D02.
Tema d’esame A
Esercizio 1
Scrivere una funzione C che, preso in ingresso un numero intero positivo X ed un
numero intero positivo K, stampi a video la rappresentazione di X in base K.
Si scriva anche un main che permetta di testare la funzione.
Se invece di stampare la rappresentazione di X in base K, questa si fosse dovuta
“ritornare” al chiamante, come sarebbe cambiato il tutto? Quali considerazioni sui
dati, ed il loro tipo/formato, si sarebbero dovuti fare? Si scriva in C la nuova
funzione.
Esercizio 2
Si definisce matrice trasposta AT di A la matrice ottenuta scambiando
ordinatamente le righe con le colonne della matrice A. In pratica, l’elemento
a(i,j) della matrice A diventa l’elemento a(j,i) della matrice AT.
Si scriva una funzione in C che, data la matrice A di MxN numeri reali, la
restituisca trasposta. Questo significa che la matrice trasposta deve essere
salvata sull’originale A.
NOTA: non è lecito creare una matrice X, andare a popolarle come la trasposta
di A, e quindi copiare X su A.
Esercizio 3
Dato un array di caratteri, chiamato HYPER, di 7 dimensioni definite da 7
numeri interi positivi: A, B, C, D, E, F, G.
Come noto, HYPER viene salvato in memoria come un array monodimensionale
di DIM caratteri, con DIM = A*B*C*D*E*F*G.
Si scriva in C una funzione che, dato un intero X compreso tra 0 e DIM-1, ritorna
al chiamante le coordinate a, b, c, d, e, f, g in cui l’elemento si trova in HYPER.
Tema d’esame B
Esercizio 1
In presenza delle seguenti dichiarazioni:
typedef struct{
int d1:
int d2;
} dispari;
dispari arrayCoppieDispari[100];
si scriva un nuovo frammento di codice C per fare in modo che, dato un valore n
intero positivo letto da tastiera, il programma trovi le prime n coppie di numeri
dispari, le memorizzi in arrayCoppieDispari e le stampi a video.
Quindi, per esempio, leggendo da tastiera il valore n=4, il frammento di codice
dovrà memorizzare nell'array arrayCoppieDispari e stampare a video i seguenti
valori: <d1: 1, d2: 3>, <d1: 3, d2: 5>, <d1: 5, d2: 7>, <d1: 7, d2: 9>.
Esercizio 2
Si scriva la dichiarazione di un’immagine img, come matrice di 800x600 colori.
I colori ammissibili sono Rosso, Giallo, Verde, Blu, Bianco e Nero.
Si scriva quindi in C una funzione colori che ricevuto in ingresso img (e basta?),
restituisce alla funzione chiamante, tramite una solo invocazione della funzione
colori, per ciascun colore, il numero dei pixel che hanno quello specifico colore.
Esercizio 3
In matematica, la congettura di Goldbach è uno dei più vecchi problemi irrisolti
nella teoria dei numeri. Essa afferma che ogni numero pari maggiore di 2 può
essere scritto come somma di due numeri primi (che possono essere anche
uguali). Si scriva quindi una funzione in C che, dato un numero pari, stampa a
video i due numeri primi che sommati lo compongono.
Esempio:
4=2+2
6=3+3
8=3+5
10 = 3 + 7 = 5 + 5
12 = 5 + 7
14 = 3 + 11 = 7 + 7
etc.
Tema d’esame C
Esercizio 1
Si scriva in C una funzione che dati due array K e X, uno di caratteri e uno di
interi (ammette solo interi maggiori o uguali a 0), permetta di sapere le
occorrenze dei caratteri in K.
NOTA: le dimensioni di K e X devono essere decise da voi. Tali dimensioni
devono essere sensate.
Esercizio 2
Data la seguente sequenza:
1 – riga nota e data!
11 – guardate la riga precedente!
21
1112
3112
211213
312213
212223
Trovata la legge che porta da una riga a quella successiva (nota, la riga i-esima
dipende solo e solamente da quella precedente). Si scriva in C la funzione che,
data una riga, restituisce la riga successiva.
Esercizio 3
Si scriva una funzione in C che, data una riga come da esercizio 2, ritorna la riga
precedente. NOTA: in questo caso, la rappresentazione della riga calcolata NON
è univoca.