• Non ci sono risultati.

Esame di

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame di"

Copied!
1
0
0

Testo completo

(1)

Esame di Fondamenti di Informatica

(Ing. Gestionale, Logistica e Produzione, Organizzazione) Prova scritta di programmazione (19 settembre 2012)

Si desidera sviluppare un programma (in linguaggio C) per aiutare la compilazione dello schema di un cruci- verba. Lo schema `e definito a partire dalle caselle “nere”, ed il programma deve determinare le posizioni dei

“numeri” che identificano il punto di partenza delle parole (orizzontali o verticali).

La definizione dei numeri segue delle regole molto semplici: i numeri sono assegnati dall’alto verso il basso e da sinistra verso destra. Ogni casella deve essere numerata se e solo se in quella casella pu`o iniziare una nuova parola orizzontale, e/o se pu`o iniziare una nuova parola verticale. Una nuova parola pu`o iniziare solo se nella casella precedente (in orizzontale o verticale) vi `e una cella nera (oppure siamo sul bordo del cruciverba) e se nella direzione richiesta vi sono almeno 2 caselle libere. Ad esempio, la casella 2 pu`o essere l’inizio di una parola verticale (sul bordo superiore, lunghezza 3 celle), la casella 5 di una parola orizzontale (cella nera a sinistra, lunghezza 4), ecc.

Il programma viene attivato con 3 parametri sulla linea di comando: il nome di un file che descrive la posizione delle caselle nere, ed il numero di righe e di colonne della matrice (entrambi numeri interi minori di 20).

Il programma deve leggere il file, il quale contiene, una per riga, due numeri che indicano le posizioni delle caselle nere. Le posizioni indicano la riga e la colonna della casella nera, numerate a partire da 1.

Il programma deve quindi determinare quali caselle debbano essere numerate, ed assegnare ad esse un numero, e quali invece rimangano vuote. Si suggerisce di utilizzare il valore 0 per le celle vuote, il valore -1 per le celle nere.

Al termine dell’assegnazione delle celle, il programma deve stampare la matrice del cruciverba (si utilizzino 4 spazi per cella, indicando le celle nere con XXXX).

Esempio

Nel caso del cruciverba sopra riportato, il file cruci.txt avr`a il contenuto seguente:

1 4 2 2 3 5 4 3 5 1 6 5

e verr`a elaborato con il comando elabora cruci.txt 6 6, producendo il seguente output:

|1 | |2 |XXXX|3 |4 |

| |XXXX|5 |6 | | |

|7 |8 | | |XXXX| |

|9 | |XXXX|10 |11 | |

|XXXX|12 |13 | | | |

|14 | | | |XXXX| |

Nota: per il raggiungimento della sufficienza `e anche possibile risolvere correttamente la versione ridotta del

problema in cui si chiede solo di calcolare i numeri di cella e di stampare quanti numeri sono stati generati (nel

caso dell’esempio, 14), senza stampare la matrice. Chi sceglie di risolvere questo problema semplificato deve

scrivere in testa alla propria soluzione “VERSIONE RIDOTTA”.

Riferimenti

Documenti correlati

Il 6 marzo scorso si è inaugurato a Oslo il nuovo Museo Nazionale di Architettura: opera del maestro norvegese Sverre Fehn, insignito del Pritzker Prize nel 1997, la struttura

[r]

a) L’integranda ` e continua ed ha segno costante in [0, +∞), per cui la convergenza pu` o essere studiata mediante il criterio del confronto asintotico... esprimendole prima in

Altri autori hanno dimostrato invece che la ragione della stabilità dimensionale degli innesti a blocco non sia dovuta alla diversa origine embriologica ma

Considerato che la segnaletica verticale da aggiornare deve inserirsi armoniosamente nel contesto architettonico delle zone oggetto di intervento, per la manutenzione e le

Se ogni singolo cliente acquista il libro con probabilit` a 0.1, quanti clienti deve visitare il venditore affinch´ e la probabilit` a di vendere tutti e dieci i libri sia almeno

Alcune sono a risposta multipla (di alcune viene evidenziata la risposta corretta; la risoluzione di molte non viene riportata in quanto elementare).. Le ultime quattro domande sono

Nell’ambito della medicina antica la farmacologia è il terreno di in- contro – scontro fra due mondi: quello delle credenze magico-po- polari (rituali di raccolta, uso di