• Non ci sono risultati.

Prova scritta del 19 luglio 2018 di Fondamenti di Programmazione / Fondamenti di Informatica I

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova scritta del 19 luglio 2018 di Fondamenti di Programmazione / Fondamenti di Informatica I"

Copied!
1
0
0

Testo completo

(1)

Prova scritta del 19 luglio 2018 di Fondamenti di Programmazione / Fondamenti di Informatica I Per studenti di Ing. Elettronica e Ing. Gestionale immatricolati negli anni accademici 2016-17 e precedenti DURATA DELLA PROVA: 2 ore

A pena di annullamento immediato della prova:

1) Non è possibile consultare libri o appunti (in qualunque forma) né utilizzare calcolatrici, telefoni cellulari, ecc.

2) Non è consentito comunicare (con qualunque mezzo) 3) Non è consentito uscire dall’aula

Lo studente è tenuto a scrivere, correggere, compilare ed eseguire su computer (a casa o in laboratorio) gli esercizi di programmazione prima della prova orale. Alla prova orale lo studente deve portare una memory pen USB contenente i sorgenti dei programmi corretti e le stampe dei relativi file.

Esercizio 1 (15 punti)

Nel gioco della morra cinese ad ogni giocata due giocatori scelgono e dichiarano con un gesto della mano uno tra gli oggetti

“carta”, “forbici” e “ sasso”. Il sasso vince sulla forbice, la forbice sulla carta e la carta sul sasso.

In una gara internazionale sono state registrate le giocate di due giocatori in un file che contiene, per ogni riga, l’oggetto scelto dal giocatore 1 e quello scelto dal giocatore 2. Il problema è che, a causa delle numerose nazionalità presenti, la registrazione è avvenuta in modo un po’ confuso e i nomi degli oggetti sono stati scritti in lingue diverse, come nell’esempio a destra.

Il file dizionario.dat contiene la forma delle tre parole in

tutte le lingue utilizzate (che sono al massimo 50), nell’ordine “carta”, “forbici” e “sasso”. Si veda l’esempio a sinistra. Si osservi che le parole non contengono mai spazi.

Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file contenente le giocate come sopra descritto e stampi il punteggio dei due giocatori e il vincitore (oppure l’indicazione che la partita è terminata alla pari).

Nell’esempio precedente il programma dovrà stampare:

punteggio giocatore 1: 2 punteggio giocatore 2: 1 vince il giocatore 1

NOTA: è obbligatorio scrivere e utilizzare una funzione che riceva come ingresso due codici numerici che rappresentano gli oggetti dichiarati in una giocata (0 = carta, 1 = forbice, 2 = sasso) e restituisce 1 se vince il primo giocatore e 2 se vince il secondo.

Suggerimento: si memorizzi il dizionario un una matrice di stringhe di tre colonne (la prima per la carta, la seconda per la forbice e la terza per il sasso) e di tante righe quanto sono le lingue considerate.

Esercizio 2 (15 punti)

I risultati parziali di un torneo di tiro a segno sono memorizzati in un file il cui formato può essere dedotto dall’esempio seguente:

Francesco Lorenzo, Rivoira Della Spina: 4 5 7 19 21 3 Ludovica Ferdinanda Rosa, Gri: 15 15 15 15 15

Mario, Rossi: 3 22 9

Federica, Della Valle: 24 18 9 8 22 3

Il numero di punteggi conseguiti da ogni concorrente è variabile e non ne è noto il numero massimo. La lunghezza di ogni riga, però, non è mai superiore a 255 caratteri.

Il numero massimo di concorrenti è 100.

Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file come sopra descritto e stampi la classifica del torneo. Relativamente all’esempio il programma dovrà stampare:

Della Valle Federica: 84

Gri Ludovica Ferdinanda Rosa: 75

Rivoira Della Spina Francesco Lorenzo: 59 Rossi Mario: 34

scissors carta stone ciseaux forbici pierre carta paper paper papier carta forbici sasso

paper scissors stone papier ciseaux pierre

Riferimenti

Documenti correlati

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

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

Si scriva un programma in linguaggio C che riceva sulla riga di comando un file nel formato sopra riportato e stampi sul monitor l’immagine rappresentata da

Per fare questo, si vuole aggiungere al testo originale l’elenco dei sinonimi di ogni parola presente nel dizionario dei sinonimi sopra descritto, accodandoli

"Avatar": Sam Worthington, Zoe Saldana, Sigourney Weaver, Stephen Lang, Michelle Rodriguez. "Everest": Josh Brolin, Jason Clarke, John Hawkes, Robin Wright,

Si scriva un programma che riceva sulla riga di comando il nome di un file siffatto e una destinazione e stampi i codici di tutti i treni che raggiungono tale destinazione in

Si scriva un programma in linguaggio C che riceva come argomenti sulla riga di comando il nome della località e una data e chiami la funzione descritta nell’esercizio

La funzione deve riempire le righe della matrice secondo lo schema sopra riportato e restituire, in un’apposita struttura, il numero di righe riempite e la loro lunghezza (cioè