• Non ci sono risultati.

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

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 3 luglio 2015"

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 3 luglio 2015

Esercizio 1 (14 punti)

Un gioco consiste nel trovare parole il cui rapporto tra il numero di consonanti e il numero di vocali sia massimo.

Detto s (score) tale rapporto, per ogni parola i-esima viene calcolato si = n. consonantii/n. vocalii . Si assuma che tutte le parole contengono almeno una vocale.

Vince il gioco il concorrente con lo score medio (media degli si) più alto.

Si scriva una funzione in linguaggio C che riceva come argomenti un vettore di stringhe nella forma di una matrice di caratteri di dimensioni 50x31 (che quindi può memorizzare al massimo 50 parole da 30 lettere ciascuna, una parola per ogni riga della matrice) e un intero n che rappresenta il numero di righe effettivamente utilizzate (la lunghezza della parte utilizzata delle righe è variabile, trattandosi di stringhe terminate da '\0'), e che restituisca lo score medio delle parole contenute nella matrice.

Per esempio, se le parole contenute nella matrice sono "arrabbiato", "tricheco", "ASTRO", "Brutto", la funzione dovrà restituire il valore 1.541667. Se le parole sono invece "aiuole", "aia", "Eolo", la funzione dovrà restituire 0.177778.

Si osservi che le lettere possono essere indifferentemente minuscole o maiuscole.

Esercizio 2 (16 punti)

Le iscrizioni a una gara podistica non competitiva a squadre sono state memorizzate in un file nel formato che può essere dedotto dal seguente esempio:

poeti: mario rossi, federico bianchi, giangiuseppe verdi, pier luigi gialli;

navigatori: luigi della valle di sotto, fabrizio della valle di sopra;

botte da orbi: paolo randello, pier silvio mazzata;

da oltre confine: 'abid al hamed, romina slovikozky, john m. carter, ted mc kenny;

Sia i nomi delle squadre che quelli dei concorrenti sono composti da una o più parole, per una lunghezza totale non superiore a 32 caratteri. La lista dei concorrenti è introdotta dai due punti, separata da virgole e terminata da punto e virgola. Tutte le squadre sono composte da un numero di concorrenti compreso tra 1 e 20. Il file contiene al massimo 50 squadre.

Viene premiata la squadra più numerosa (o le squadre più numerose, in caso di pari numero di concorrenti).

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file nel formato sopra descritto e stampi sul monitor il nome e l’elenco dei concorrenti della squadra o delle squadre più numerose secondo l’esempio che segue, relativo ai dati sopra riportati (si osservi che i nomi delle squadre sono convertiti in maiuscolo):

Vincono le squadre con 4 concorrenti.

Squadra POETI composta da:

mario rossi federico bianchi giangiuseppe verdi pier luigi gialli

Squadra DA OLTRE CONFINE composta da:

'abid al hamed romina slovikozky john m. carter ted mc kenny;

Suggerimento: si memorizzino le squadre in un vettore di struct definito come segue:

struct tipo_squadra {

char nome[31];

int n_concorrenti;

char nomi_concorrenti[20][33];

};

struct tipo_squadra squadre[50];

int n_squadre;

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,