• Non ci sono risultati.

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 2 febbraio 2017

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 2 febbraio 2017"

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 2 febbraio 2017

Esercizio 1 (15 punti)

Un file contiene un elenco di persone disponibili a giocare in squadre di diversi sport. Per ogni persona è indicato l’elenco degli sport praticati e, per ciascuno di essi, un valore intero compreso tra 1 e 10 che rappresenta l’abilità del giocatore in tale sport. Il

formato del file può essere dedotto dall’esempio a lato.

Si osservi che:

 i nomi e i cognomi delle persone e i nomi degli sport sono sempre scritti in una sola parola;

 non sono presenti spazi prima delle virgole, dei due punti e del punto alla fine di ogni riga.

Non è noto il numero totale di persone, ma è noto che per ogni singolo sport nel file non sono presenti più di 100 potenziali giocatori.

Scopo dell’esercizio è costituire una squadra di N giocatori per un determinato sport, scegliendo i migliori dall’elenco.

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file come sopra descritto, il nome di uno sport e il numero N di giocatori richiesti per la squadra. Il programma deve stampare sul monitor l’elenco degli N giocatori migliori (cognome e nome) per lo sport indicato, in un ordine qualsiasi.

NOTE:

 qualora il numero di giocatori disponibili presenti nel file sia inferiore a N, il programma visualizzerà tutti quelli disponibili e riporterà il numero di quelli mancanti

 in caso di parità nel valore degli ultimi giocatori da inserire in squadra potrà essere scelto un giocatore qualsiasi

 se si intende usare una funzione di ordinamento di un vettore di strutture, la si assuma già disponibile (sarà sufficiente scriverne il prototipo; la funzione completa potrà essere scritta in seguito e portata all’orale)

Si vedano gli esempi a lato, relativi al file sopra riportato.

Esercizio 2 (15 punti)

Il “gioco del quindici” consiste in una griglia di 4 x 4 spazi in cui si muovono 15 tessere quadrate numerate (v. foto a lato). Le tessere possono essere mosse, una alla volta, in orizzontale o in verticale, soltanto se adiacenti alla posizione vuota della griglia. Scopo del gioco è trovare la sequenza di mosse per portare la disposizione delle tessere da una posizione iniziale ad una finale.

Poiché gli identificatori (numeri) delle tessere sono univoci e nella griglia è presente una sola posizione vuota, ogni mossa può semplicemente essere indicata con il numero della tessera da spostare.

Un file di testo contiene una configurazione iniziale delle tessere e una sequenza di mosse, nel formato che può essere dedotto dall’esempio a lato.

Si scriva un programma in linguaggio C che legga dalla riga di comando un file siffatto e stampi la disposizione delle tessere al termine dell’esecuzione delle mosse.

Il programma deve anche segnalare un errore se incontra una mossa non valida (es. un valore non compreso tra 1 e 15, oppure il valore di una tessera non adiacente alla posizione vuota).

Esempio (riferito al file di ingresso sopra riportato):

> quindici mosse.dat 5 1 2 11 7 4 12 13 15 - 10 6 9 3 8 14

PierPaolo, Bianchi, 3 sport: tennis 8, pallavolo 4, nuoto 6.

Giuseppe, DellaLibera, 2 sport: nuoto 3, golf 10.

Lucia, Verdi, 2 sport: nuoto 8, tennis 10.

Mario, Rossi, 4 sport: pallavolo 5, ciclismo 9, tennis 9, curling 6.

Luigi, DelTorre, 1 sport: nuoto 9.

Esempi:

> crea_squadra giocatori.txt tennis 2 Verdi Lucia

Rossi Mario

> crea_squadra giocatori.txt nuoto 5 DelTorre Luigi

Verdi Lucia Bianchi PierPaolo DellaLibera Giuseppe

NUMERO GIOCATORI MANCANTI: 1

> crea_squadra giocatori.txt rugby 15 NUMERO GIOCATORI MANCANTI: 15

5 1 12 2 7 4 - 11 15 10 8 13 9 3 14 6

12 2 11 13 6 14 8 10

Riferimenti

Documenti correlati

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

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 che riceva come argomenti il nome del file di equivalenze sopra descritto, il nome di un file di grandezze (con i punti interrogativi) e il nome di un file

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

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

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,