Narat
14-11-2007, 12:17
Testo del progetto:
Input atteso dal sistema:
Un file di testo contenente un elenco di stringhe che rappresentano nomi di aeroporti. Tale elenco è da interpretarsi come sequenza di tratte servite da voli diretti (aeroporto di partenza – aeroporto di arrivo) in cui però ciascun nome di aeroporto è inserito su una singola riga.
L’unica assunzione che è possibile fare su tale elenco è la seguente:
la lunghezza massima di ciascuna stringa è di 15 caratteri
Non è possibile fare assunzioni sul contenuto delle stringhe né tantomeno sulla quantità di stringhe presenti nel file. Ciascuna stringa è memorizzata su una singola riga e contiene solo simboli alfanumerici (lettere e numeri) senza spaziature o simboli di punteggiatura. Non possono essere presenti più stringhe sulla stessa riga e la stessa stringa potrebbe essere anche presente più volte nel file.
Un esempio di file in input che il sistema deve accettare (quindi “legale”) è il seguente:
LameziaT
Milano
LameziaT
Roma
Roma
Milano
...
Esso rappresenta un input di tre coppie <partenza-arrivo> di aeroporti. In particolare, esso contiene le tratte dirette <LameziaT-Milano>, <LameziaT-Roma>, <Roma-Milano>.
Una sequenza deve contenere almeno una tratta, quindi un file vuoto o un file con un numero dispari di aeroporti deve essere considerato illegale.
Specifiche del programma da realizzare
Il sistema deve inizialmente leggere da input il nome del file da elaborare e, successivamente, i nomi di due aeroporti da interpretarsi come partenza e arrivo. Attenzione: non si può in nessun modo fissare da programma il nome del file di input. Il programma deve garantire la terminazione con un messaggio di errore se il file non segue le specifiche di formattazione suesposte.
L’output del sistema deve indicare:
⌧ Tutti gli itinerari disponibili tra l’aeroporto di partenza e l’aeroporto di arrivo, ordinati per numero di cambi crescente, secondo il seguente formato (un itinerario per riga):
<Aeroporto1,Aeroporto2, ..., AeroportoN>
Se i due aeroporti non sono collegati da nessun itinerario ammissibile (vedi limitazioni descritte in seguito) è necessario stampare il messaggio “Gli aeroporti richiesti non sono collegati”
N.B. Per itinerario si intende l’elenco degli scali aeroportuali in cui il viaggiatore deve transitare, incluso l’aeroporto di partenza e quello di arrivo specificati nell’input.
Per cambio si intende la necessità di transitare in un aeroporto diverso sia da quello di partenza, sia da quello di arrivo.
Inoltre, a scopo puramente esemplificativo, si deve limitare il numero di cambi massimo da considerare a 3. Ciò vuol dire che gli itinerari da considerare possono elencare al più 5 aeroporti (quello di partenza, quello di arrivo più tre cambi).
Onestamente non so come farlo, se qualcuno ha qualche idea ne sarei molto grato. TNX
Input atteso dal sistema:
Un file di testo contenente un elenco di stringhe che rappresentano nomi di aeroporti. Tale elenco è da interpretarsi come sequenza di tratte servite da voli diretti (aeroporto di partenza – aeroporto di arrivo) in cui però ciascun nome di aeroporto è inserito su una singola riga.
L’unica assunzione che è possibile fare su tale elenco è la seguente:
la lunghezza massima di ciascuna stringa è di 15 caratteri
Non è possibile fare assunzioni sul contenuto delle stringhe né tantomeno sulla quantità di stringhe presenti nel file. Ciascuna stringa è memorizzata su una singola riga e contiene solo simboli alfanumerici (lettere e numeri) senza spaziature o simboli di punteggiatura. Non possono essere presenti più stringhe sulla stessa riga e la stessa stringa potrebbe essere anche presente più volte nel file.
Un esempio di file in input che il sistema deve accettare (quindi “legale”) è il seguente:
LameziaT
Milano
LameziaT
Roma
Roma
Milano
...
Esso rappresenta un input di tre coppie <partenza-arrivo> di aeroporti. In particolare, esso contiene le tratte dirette <LameziaT-Milano>, <LameziaT-Roma>, <Roma-Milano>.
Una sequenza deve contenere almeno una tratta, quindi un file vuoto o un file con un numero dispari di aeroporti deve essere considerato illegale.
Specifiche del programma da realizzare
Il sistema deve inizialmente leggere da input il nome del file da elaborare e, successivamente, i nomi di due aeroporti da interpretarsi come partenza e arrivo. Attenzione: non si può in nessun modo fissare da programma il nome del file di input. Il programma deve garantire la terminazione con un messaggio di errore se il file non segue le specifiche di formattazione suesposte.
L’output del sistema deve indicare:
⌧ Tutti gli itinerari disponibili tra l’aeroporto di partenza e l’aeroporto di arrivo, ordinati per numero di cambi crescente, secondo il seguente formato (un itinerario per riga):
<Aeroporto1,Aeroporto2, ..., AeroportoN>
Se i due aeroporti non sono collegati da nessun itinerario ammissibile (vedi limitazioni descritte in seguito) è necessario stampare il messaggio “Gli aeroporti richiesti non sono collegati”
N.B. Per itinerario si intende l’elenco degli scali aeroportuali in cui il viaggiatore deve transitare, incluso l’aeroporto di partenza e quello di arrivo specificati nell’input.
Per cambio si intende la necessità di transitare in un aeroporto diverso sia da quello di partenza, sia da quello di arrivo.
Inoltre, a scopo puramente esemplificativo, si deve limitare il numero di cambi massimo da considerare a 3. Ciò vuol dire che gli itinerari da considerare possono elencare al più 5 aeroporti (quello di partenza, quello di arrivo più tre cambi).
Onestamente non so come farlo, se qualcuno ha qualche idea ne sarei molto grato. TNX