• Non ci sono risultati.

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 24 gennaio 2011

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 24 gennaio 2011"

Copied!
3
0
0

Testo completo

(1)

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 24 gennaio 2011

Esercizio 1 (punti 16) Un file contiene informazioni sui risultati di un corcorso da parte dei candidati. La prima riga contiene il numero di prove (al massimo 5), la seconda i punteggi massimi di ciascuna prova (separati da spazi) e quelle successive i punteggi dei candidati alle prove. I punteggi sono tutti valori interi.

Le prove essenziali sono contrassegnate con un asterisco dopo il punteggio massimo. Il formato esatto `e quello che si evince dal seguente file di esempio.

Esercizi: 3

Punteggio: 40* 30* 30 1. Mario, Rossi, 30 30 15 2. Giuseppe, Bianchi, 22 30 15 3. Francesca Maria, Verdi, 32 17 20 4. Anna Paola, De Neri, 28 21 5

Si noti che nome e cognome (massimo 30 caratteri ciascuno) possono contenere spazi bianchi.

Si scriva una funzione C che riceva come parametri il nome di un file nel formato illustrato e il nome di un file di output.

La funzione deve scrivere nel file di output i candidati che abbiano preso almeno 6/10 del punteggio su ciascuna prova essenziale. Per i candidati selezionati si deve scrivere cognome, nome e somma dei punti.

Ad esempio, se il file `e quello precedente, allora la funzione deve stampare i seguenti candidati

Rossi, Mario, 75

De Neri, Anna Paola, 54

Si noti che i candidati Bianchi e Verdi sono stati esclusi per aver preso preso un punteggio inferiore al minimo nelle prove essenziali 1 e 2 rispettivamente.

Esercizio 2 (punti 14) Si considerino le seguenti definizioni di tipo che rappresentano rispettivamente un punto e un segmento nel piano cartesiano.

struct Punto struct Segmento

{ {

float x; struct Punto inizio;

float y; struct Punto fine;

}; };

Si scriva una funzione C che prenda come parametri un vettore di punti (e la sua dimensione n, con n > 0) che rappresenta una linea spezzata nel piano, memorizzata tramite i suoi vertici.

La funzione deve restituire tramite una variabile del tipo struct Segmento il segmento pi`u lungo della spezzata.

(2)

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 24 gennaio 2011

Esercizio 1 (punti 16) Un file contiene informazioni sui risultati di un corcorso da parte dei candidati. La prima riga contiene il numero di prove (al massimo 10), la seconda i punteggi massimi di ciascuna prova (separati da spazi) e quelle successive i punteggi dei candidati alle prove. I punteggi sono tutti valori interi.

Le prove essenziali sono contrassegnate con un asterisco dopo il punteggio massimo. Il formato esatto `e quello che si evince dal seguente file di esempio.

Esercizi: 3

Punteggio: *40 *30 30 1. Mario, Rossi, 30 30 15 2. Giuseppe, Bianchi, 25 30 15 3. Paola, De Neri, 29 21 7

4. Francesca Maria, Verdi, 32 19 20

Si noti che nome e cognome (massimo 40 caratteri ciascuno) possono contenere spazi bianchi.

Si scriva una funzione C che riceva come parametri il nome di un file nel formato illustrato e il nome di un file di output.

La funzione deve scrivere nel file di output i candidati che abbiano preso almeno 7/10 del punteggio su ciascuna prova essenziale. Per i candidati selezionati si deve scrivere cognome, nome e somma dei punti.

Ad esempio, se il file `e quello precedente, allora la funzione deve stampare i seguenti candidati

Rossi, Mario, 75 De Neri, Paola, 57

Si noti che i candidati Bianchi e Verdi sono stati esclusi per aver preso preso un punteggio inferiore al minimo nelle prove essenziali 1 e 2 rispettivamente.

Esercizio 2 (punti 14) Si considerino le seguenti definizioni di tipo che rappresentano rispettivamente un punto e un segmento nel piano cartesiano.

struct Punto struct Segmento

{ {

float cx; struct Punto p1;

float cy; struct Punto p2;

}; };

Si scriva una funzione C che prenda come parametri un vettore di punti (e la sua dimensione k, con k > 0) che rappresenta una linea spezzata nel piano, memorizzata tramite i suoi vertici.

La funzione deve restituire tramite una variabile del tipo struct Segmento il segmento pi`u corto della spezzata.

prima del

(3)

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 24 gennaio 2011

Esercizio 1 (punti 16) Un file contiene informazioni sui risultati di un corcorso da parte dei candidati. La prima riga contiene il numero di prove (al massimo 20), la seconda i punteggi massimi di ciascuna prova (separati da spazi) e quelle successive i punteggi dei candidati alle prove. I punteggi sono tutti valori interi.

Le prove essenziali sono contrassegnate con un punto esclamativo dopo il punteggio massi- mo. Il formato esatto `e quello che si evince dal seguente file di esempio.

Esercizi: 3

Punteggio: 40! 30! 30

1. Mario Ugo, Rossi, 32 30 15 2. Giuseppe, Bianchi, 25 30 15 3. Francesca Maria, Verdi, 32 19 20 4. Paola, De Neri, 34 25 2

Si noti che nome e cognome (massimo 20 caratteri ciascuno) possono contenere spazi bianchi.

Si scriva una funzione C che riceva come parametri il nome di un file nel formato illustrato e il nome di un file di output.

La funzione deve scrivere nel file di output i candidati che abbiano preso almeno 8/10 del punteggio su ciascuna prova essenziale. Per i candidati selezionati si deve scrivere cognome, nome e somma dei punti.

Ad esempio, se il file `e quello precedente, allora la funzione deve stampare i seguenti candidati

Rossi, Mario Ugo, 77 De Neri, Paola, 61

Si noti che i candidati Bianchi e Verdi sono stati esclusi per aver preso preso un punteggio inferiore al minimo nelle prove essenziali 1 e 2 rispettivamente.

Esercizio 2 (punti 14) Si considerino le seguenti definizioni di tipo che rappresentano rispettivamente un punto e un segmento nel piano cartesiano.

struct Punto struct Segmento

{ {

float x_val; struct Punto p_inizio;

float y_val; struct Punto p_fine;

}; };

Si scriva una funzione C che prenda come parametri un vettore di punti (e la sua dimensione h, con h > 0) che rappresenta una linea spezzata nel piano, memorizzata tramite i suoi vertici.

La funzione deve restituire tramite una variabile del tipo struct Segmento il segmento pi`u lungo della spezzata.

Riferimenti

Documenti correlati

Supponiamo che nella cella C10 sia presente la seguente formula: C9+$C8 (ricordo che la coordinata in lettere corrisponde al numero di colonna, la coordinata numerica corrisponde

• Sul dischetto che ti è stato dato trovi già i file delle classi GestoreDiStringhe e TestGestoreDiStringhe e gli scheletri dei metodi che devi implementare.. Dovrai pertanto

Esercizio 1 Scrivere un frammento di codice Java che crea una matrice a di interi avente 10 righe e 5 colonne, e che inizializza ciascun elemento in posizione (i,j) con la somma

Esercizio 2 (6 punti) Scrivi un metodo statico (comprensivo di prototipo) che prende in ingresso (cioè come parametro) tre numeri interi e che restituisce il maggiore

Esercizio 2 (6 punti) Scrivi un metodo statico (comprensivo di prototipo) che prende in ingresso (cioè come parametro) una matrice di interi e che restituisce la somma degli

Si assumano gi` a disponibili la definizione del tipo struct Data (nel classico formato a tre campi) e la funzione int ComparaDate(struct Data d1, struct Data d2), che restituisce -1

La funzione deve inoltre restituire il valore 1 nel caso in cui almeno una delle locazioni del file non sia presente nel vettore; deve restituire 2 nel caso in cui si verifichi

Esercizio 1 (punti 15) Un file contiene delle informazioni riguardanti la media dei voti degli esami sostenuti da alcuni studenti, uno per riga.. In dettaglio, ciascuna riga `e