• Non ci sono risultati.

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 29 luglio 2014

N/A
N/A
Protected

Academic year: 2021

Condividi "Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 29 luglio 2014"

Copied!
1
0
0

Testo completo

(1)

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I

Prova scritta del 29 luglio 2014

Esercizio 1 (16 punti)

Le carte Zener, utilizzate negli esperimenti di percezione extrasensoriale, contengono cinque simboli: cerchio, croce, onde, quadrato, stella. Si dispone di cinque file di testo che riproducono, con caratteri ASCII, questi cinque simboli. Ogni file ha il nome del simbolo che rappresenta ed estensione “.txt”:

L@@@@@@@@@@@@@@@ @@@@ C@@@G @@@@t @@@@, @@@

@@@@@@@@. ,@@@@@@@, @@@@ @@@@, @@@@ @@@@ C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@

@@@@@. 8@@@@G @@@@ @@@@f @@@@; @@@@ C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@

C@@@@ @@@@ @@@@ @@@@ @@@@ ,@@@@ C@@@C @@@@ @@@@ @@@@

@@@@ G@@@. @@@@ @@@@ @@@@ @@@@ C@@@C @@@@ @@@@ @@@@

@@@@ :@@@ @@@@ @@@@ ;@@@@ f@@@@ C@@@C @@@@ G@@@@@@ @@@@@8.

@@@ @@@@ @@@@ .@@@@ 1@@@@ C@@@@ C@@@C @@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@

@@@@ @@@ @@@@ @@@@; @@@@ @@@@ C@@@C @@@@ L@@@@f t@@@@@

@@@G @@@; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@t @@@@: @@@@ C@@@C @@@@ .@@@@@ :@@@@@

@@@@ @@@. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@ @@@@ @@@@ C@@@C @@@@ @@@@@ @@@@@;

f@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@8 @@@@L @@@@i C@@@C @@@@ @@@@@ @@@@@

@@@8 @@@8 @@@@ i@@@@ C@@@@ 8@@@@ C@@@C @@@@ @@@@ @@@@

@@@G @@@@ @@@@ @@@@ .@@@@ i@@@@ C@@@C @@@@ @@@ @@@

@@@@ .@@@@ @@@@ @@@@1 @@@@. @@@@ C@@@C @@@@ L@@@ @@@@@ @@@f @@@@@ .@@@@, @@@@ @@@@ @@@@ @@@@ C@@@C @@@@ @@@L 0@@@@@@@@@@@i G@@@

@@@@@@ 1@@@@@L @@@@ @@@@G @@@@t @@@@, C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@

.@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@ @@@@@ @@@@G C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ ,@@@@@@

8@@@@@@@@@L @@@@ @@@@@ @@@@@ @@@@@ C: 8@

cerchio.txt croce.txt onde.txt quadrato.txt stella.txt

Tutti i simboli sono rappresentati da venti righe di quaranta caratteri ciscuna. Ogni riga è terminate dal carattere “a capo”.

Si scriva un programma in linguaggio C che riceva sulla riga di commando il nome di un file di testo di uscita e una sequenza di simboli (minimo uno, massimo venti). Il programma deve scrivere nel file di uscita l’immagine della sequenza di simboli scritta sulla riga di comando. I simboli devono essere affiancati da sinistra a destra, senza alcun separatore.

Esempio:

> sequenza_zener out.txt cerchio croce onde quadrato croce stella stella

file out.txt:

L@@@@@@@@@@@@@@@ @@@@ C@@@G @@@@t @@@@, @@@@ @@@ @@@

@@@@@@@@. ,@@@@@@@, @@@@ @@@@, @@@@ @@@@ C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@ @@@@@

@@@@@. 8@@@@G @@@@ @@@@f @@@@; @@@@ C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@ @@@@@@@

C@@@@ @@@@ @@@@ @@@@ @@@@ ,@@@@ C@@@C @@@@ @@@@ @@@@ @@@@ @@@@ @@@@

@@@@ G@@@. @@@@ @@@@ @@@@ @@@@ C@@@C @@@@ @@@@ @@@@ @@@@ @@@@ @@@@

@@@@ :@@@ @@@@ @@@@ ;@@@@ f@@@@ C@@@C @@@@ @@@@ G@@@@@@ @@@@@8. G@@@@@@ @@@@@8.

@@@ @@@@ @@@@ .@@@@ 1@@@@ C@@@@ C@@@C @@@@ @@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@

@@@@ @@@ @@@@ @@@@; @@@@ @@@@ C@@@C @@@@ @@@@ L@@@@f t@@@@@ L@@@@f t@@@@@

@@@G @@@; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@t @@@@: @@@@ C@@@C @@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t .@@@@@ :@@@@@ .@@@@@ :@@@@@

@@@@ @@@. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@ @@@@ @@@@ C@@@C @@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@@ @@@@@; @@@@@ @@@@@;

f@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@8 @@@@L @@@@i C@@@C @@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t @@@@@ @@@@@ @@@@@ @@@@@

@@@8 @@@8 @@@@ i@@@@ C@@@@ 8@@@@ C@@@C @@@@ @@@@ @@@@ @@@@ @@@@ @@@@

@@@G @@@@ @@@@ @@@@ .@@@@ i@@@@ C@@@C @@@@ @@@@ @@@ @@@ @@@ @@@

@@@@ .@@@@ @@@@ @@@@1 @@@@. @@@@ C@@@C @@@@ @@@@ L@@@ @@@@@ @@@f L@@@ @@@@@ @@@f @@@@@ .@@@@, @@@@ @@@@ @@@@ @@@@ C@@@C @@@@ @@@@ @@@L 0@@@@@@@@@@@i G@@@ @@@L 0@@@@@@@@@@@i G@@@

@@@@@@ 1@@@@@L @@@@ @@@@G @@@@t @@@@, C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@@@ @@@@@@@@@ @@@@@@@@@ @@@@@@@@@

.@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@ @@@@@ @@@@G C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@ ,@@@@@@ @@@@@@ ,@@@@@@

8@@@@@@@@@L @@@@ @@@@@ @@@@@ @@@@@ @@@@ C: 8@ C: 8@

NOTA: i file rappresentanti i cinque simboli nel formato sopra descritto, necessari per testare il proprio programma, sono disponibili all’indirizzo http://web.diegm.uniud.it/pierluca/public_html/downloads/teaching/simboli_zener/

Esercizio 2 (14 punti)

Si consideri il seguente tipo di dato struct persona

{

char nome[32];

char sesso; /* 'f' = femmina, 'm' = maschio */

int valori[N];

};

che rappresenta una persona, in cui in vettore valori rappresenta il valore tra 1 e 10 che la persona attribuisce ai suoi N interessi (ad es.

cinema, calcio, . . . ). N è una costante, uguale per tutte le persone.

Si scriva una funzione che riceva come parametri un vettore di tipo struct persona e la sua dimensione n . La funzione deve restituire gli indici delle due persone (una femmina e un maschio) che hanno la minima differenza di interessi. I due indici devono essere restituiti tramite due ulteriori parametri passati per riferimento.

La minima differenza, che dovrà essere calcolata da una funzione

ausiliaria, si calcola come media delle differenze in valore assoluto tra i valori di pari indice.

Ad esempio, se il vettore contiene i dati riportati a lato (con N = 4 e n = 5 ), la funzione deve restituire gli indici 0 e 1, in quanto la minima differenza è quella tra Maria e Giulio (media delle differenze pari a 0.5).

nome sesso valori

Maria f 3 4 5 6

Giulio m 2 4 4 6

Mario m 1 2 3 4

Paola f 2 3 1 2

Paolo m 2 3 1 7

Riferimenti

Documenti correlati

Si scriva una funzione in linguaggio C che riceva come argomenti un vettore di stringhe, contenenti ciascuna il nome di un file del tipo sopra descritto, e un

Si scriva una funzione in linguaggio C che riceva come argomenti il puntatore a un file di testo nel formato sopra descritto (il file è quindi già stato aperto dalla funzione

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file di dizionario nel formato dell’esempio sopra riportato e il nome di un file

Al termine dell’esecuzione delle operazioni specificate nel file di ingresso il programma dovrà stampare i valori contenuti in tutte e sole le celle di memoria che

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di due file come quelli sopra descritti e stampi il numero delle repliche

Poiché gli identificatori (numeri) delle tessere sono univoci e nella griglia è presente una sola posizione vuota, ogni mossa può semplicemente essere indicata

Per fare questo, si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file come sopra descritto e stampi l’elenco dei

Successivamente, per ogni cifra del tentativo non ancora utilizzata si cerca lo stesso valore tra le cifre non ancora utilizzate del numero segreto e, se lo si trova,