Category Archives: OII – Fase Territoriale

Lo struzzo Simone

Lo struzzo Simone si sposta solo nelle direzioni dei quattro assi cardinali (Nord, Sud, Est, Ovest).
Ogni suo passo misura 1 metro.
Dovete scrivere un programma che, data una sequenza di spostamenti di Simone, misuri quant’è la distanza fra il punto di partenza e il punto di arrivo.

Dati in input

Il file input.txt contiene la sequenza degli spostamenti.
Tale file è costituito da un’unica riga di testo, contenente una sequenza di S, N, E, O (che indicano gli spostamenti nelle direzioni Sud, Nord, Est, Ovest rispettivamente).
La sequenza è terminata da un *.
Ad esempio, il file di input NNESO* dice che Simone si sposta di due metri a Nord, poi di un metro verso Est, poi di un metro verso Sud, e quindi di un metro a Ovest.

Dati in output

Il programma, dopo aver letto il file di input, deve calcolare la distanza in metri fra il punto di partenza e il punto di arrivo, e scriverla su un file di nome output.txt.
Più precisamente, il file output.txt deve contenere un’unica riga.
Su questa riga dovrà comparire il numero intero corrispondente al quadrato della distanza.

Assunzioni

  1. Il file di input non contiene altri caratteri oltre a quelli precisati.
  2. Il numero complessivo di spostamenti contenuti nel file di input è minore o uguale a 100000.
  3. Importante! Il programma non deve scrivere nulla sul video, e non deve interagire con l’utente. Deve solo leggere il file di input e scrivere il file di output.
  4. L’esecuzione del programma deve terminare entro 5 secondi.

Esempi

input.txt output.txt
1 NNSEEESNOENNS* 13
2 NNESOS* 0
3 OSOS* 8

Numeri

Scrivete un programma che, dato un numero intero compreso tra 1 e 99 inclusi, scriva la parola italiana corrispondente.

Dati in input

Il file input.txt contiene un numero compreso tra 1 e 99 inclusi.
Il file è costituito da un’unica riga di testo, contenente una o due cifre da 0 a 9.

Dati in output

Il programma, dopo aver letto il file di input, deve fornire la parola corrispondente in italiano, e scriverla su un file di nome output.txt.
Più precisamente, il file output.txt deve contenere un’unica riga.
Su questa riga dovrà comparire la parola italiana corrispondente al numero.

Assunzioni

  1. Il file di input non contiene altri caratteri oltre a quelli precisati.
  2. Qualora lo stesso numero possa essere espresso in più forme, scegliere sempre la più breve (per esempio, “ventuno” e non “ventiuno” o “ventieuno”, “ottantuno” e non “ottantauno” o “ottantaeuno”).
    Nel caso precedente, scrivere “ventieuno” al posto di “ventuno” è considerato un errore.
    Allo stesso modo, uno spazio nella parola è considerato un errore.
  3. I caratteri accentati devono essere inseriti privi di accento (per esempio, “trentatre” e non “trentatrè” o “trentatre'”).
  4. Importante! Il programma non deve scrivere nulla sul video, e non deve interagire con l’utente.
    Deve solo leggere il file di input e scrivere il file di output.
  5. L’esecuzione del programma deve terminare entro 5 secondi.

Esempi

input.txt output.txt
1 12 dodici
2 23 ventitre
3 88 ottantotto

Utilizza le funzioni TP6 per le stringhe: Concat(), Delete()

Il cassiere Camillo

È venerdì, e il cassiere Camillo ha davanti a sé una lunga fila di clienti della sua banca venuti a ritirare contante per il weekend.
Per fare presto, Camillo decide di usare per ogni cliente il numero minimo possibile di banconote.
Sapreste scrivere un programma per evitargli il mal di testa, considerato che ha a disposizione banconote da 100.000, 10.000, 5.000, 2.000 e 1.000 in quantità illimitata e che l’entità di ogni prelievo è un multiplo di 1.000 lire?

Dati in input

Il file input.txt contiene l’importo del prelievo. Il file è costituito da un’unica riga di testo, contenente un numero (senza puntini o virgole che raggruppano le cifre a tre a tre!).

Dati in output

Il programma, dopo aver letto il file di input, deve calcolare il numero di banconote necessario per ognuno dei tagli disponibili, e scriverlo su un file di nome output.txt.
Più precisamente, il file output.txt deve contenere cinque righe, che corrispondono (in ordine, dalla prima all’ultima) alle banconote da

  • 100.000
  • 10.000
  • 5.000
  • 2.000
  • 1.000.

Ogni riga deve contenere un unico numero intero, che rappresenta il numero di banconote di quel taglio necessarie.

Assunzioni

  1. Il file di input non contiene altri caratteri oltre a quelli precisati.
  2. L’entità del prelievo è in ogni caso inferiore a 1 miliardo di lire.
  3. Importante!
    Il programma non deve scrivere nulla sul video, e non deve interagire con l’utente.
    Deve solo leggere il file di input e scrivere il file di output.
  4. L’esecuzione del programma deve terminare entro 5 secondi.

Esempi

input.txt output.txt
1 10000 0
1
0
0
0
2 152000 1
5
0
1
0
3 2001000 20
0
0
0
1

La biblioteca degli smemorati

La vostra biblioteca rionale ha qualche problema nello stabilire da quanto tempo gli utenti tengono i libri.
Dovete aiutarli scrivendo un programma che, prese in input due date del 2001, stabilisca quanti giorni intercorrono tra le due date.

Dati in input

Il file input.txt è formato da una riga che contiene la data iniziale e la data finale del prestito.
Più precisamente, la riga contiene quattro interi: la prima coppia specifica la data iniziale, la seconda la data finale.
Ogni data è formata da due numeri, e cioè il giorno del mese e il numero del mese.

Dati in output

Il programma, dopo aver letto il file di input, deve stabilire quanti giorni intercorrono tra le due date, e scrivere il numero di giorni su un file di nome output.txt.

Più precisamente, il file output.txt deve contenere un’unica riga.
Su questa riga dovrà comparire il numero intero corrispondente ai giorni che intercorrono tra le due date in input.

Assunzioni

  1. Il file di input non contiene altri caratteri oltre a quelli precisati.
  2. Trenta giorni a novembre, con april, giugno e settembre; di ventotto ce n’è uno: tutti gli altri ne han trentuno.
  3. La seconda data non precede mai la prima.
  4. Il numero di giorni considerato non comprende quello iniziale: quindi, ad esempio, tra il 2 gennaio e il 2 gennaio intercorrono 0 giorni, tra il 30 gennaio e il 2 febbraio intercorrono tre giorni, e così via.
  5. Importante! Il programma non deve scrivere nulla sul video, e non deve interagire con l’utente. Deve solo leggere il file di input e scrivere il file di output.
  6. L’esecuzione del programma deve terminare entro 5 secondi.

Esempi

input.txt output.txt
1 2 3 2 3 0
2 30 1 2 2 3
3 1 5 2 7 62