ceccoggi
06-07-2003, 14:39
Salve a tutti,
venerdì 4 luglio ho provato l'esame di informatica presso il politecnico di torino, trovandolo, però troppo lungo rispetto alle 2 ore consentiteci per pensarlo, scriverlo e ricopiarlo in bella... risultato: allo scadere delle 2 ore mi sono mestamente ritirato...
Premetto che ho cominciato a programmare in C solo quest'anno, seguendo i corsi previsti presso ingegneria informatica, e superando l'esame "elementi di informatica", pertanto non ho un granchè di esperienza di questa materia...
Il testo del compito era questo:
Tecniche e Linguaggi di Programmazione
III Facoltà di Ingegneria
Compito di programmazione del 4 luglio 2003
Calcolatori situati in diverse città e connessi tra di loro permettono di giocare on-line. Si vuole scrivere un programma che, acquisita la situazione iniziale, monitori giocatori e partite, con possibilita’di aggiornamento dei dati.
Un file di testo contiene la descrizione della connessione tra i calcolatori. Le singole connessioni tra una città all’altra, una per riga di file, sono descritte col formato
citta1 citta2 ritardo
dove citta1 e citta2 sono stringhe di al massimo 20 caratteri, e ritardo e’ un intero che rappresenta il tempo, espresso in millisecondi, necessario ai dati per andare da una città all’altra.
Nel file i segmenti possono essere presenti in un ordine qualsiasi e non ci sono duplicati. Fare l’ipotesi semplificatrice che nel complesso la connessione tra città costituisce una linea.
Esempio:
torino milano 25
brescia bologna 20
brescia milano 15
A run-time il programma, letto il file di input, deve permettere le seguenti operazioni:
A - nome giocatore nodo: introdurre nuovo giocatore al nodo indicato. Fare l’ipotesi semplificatrice che il giocatore non sia gia’ presente sulla rete.
E - nome giocatore: eliminare il giocatore indicato (qualunque sia il nodo a cui e connesso). Fare l’ipotesi semplificatrice che il giocatore indicato sia presente sulla rete.
G - nome_giocatore1 nome_giocatore2: giocatore1 inizia una partita con giocatore2, entrambi gia’ presenti sulla rete. Fare l’ipotesi semplificatrice che i due giocatori indicati siano presenti sulla rete e che non stiano gia’ giocando una partita.
S - nome nodo: stampare tutti i giocatori sul nodo indicato, con a fianco nome e nodo del giocatore con cui stanno eventualmente giocando, piu’ il ritardo che caratterizza la connessione tra i due (somma dei ritardi dei segmenti di rete che li separano).
X - terminare l’esecuzione.
Ora vi chierederi di darmi una mano nell'impostare il programma, precisamente:
1. quante strutture dinamiche utilizzare e cosa inserire al loro interno;
2. (importante in quanto non sono riuscito a farlo) ordinare la lista in cui vengono caricati da file le coppie di città e il tempo di connessione fra di loro, come nell'es:
torino milano 25 ->milano brescia 15->brescia bologna 20.
Io ho creato 2 strutture principali + una per in nomi dei giocatori, tutte e tre dinamiche:
nella prima ho caricato da file le coppie di città e il loro tempo di connessione, ma senza ordinarla, cosa che mi ha complicato la vita dopo; nella seconda ho inserito in ogni struttura la città di connessione e un puntatore alla struttura "nomi", dinamica anch'essa in quanto non so a priori quanti giocatori ci saranno su ciascun nodo...
Se potete darmi una mano ve ne sono davvero grato!
Grazie
venerdì 4 luglio ho provato l'esame di informatica presso il politecnico di torino, trovandolo, però troppo lungo rispetto alle 2 ore consentiteci per pensarlo, scriverlo e ricopiarlo in bella... risultato: allo scadere delle 2 ore mi sono mestamente ritirato...
Premetto che ho cominciato a programmare in C solo quest'anno, seguendo i corsi previsti presso ingegneria informatica, e superando l'esame "elementi di informatica", pertanto non ho un granchè di esperienza di questa materia...
Il testo del compito era questo:
Tecniche e Linguaggi di Programmazione
III Facoltà di Ingegneria
Compito di programmazione del 4 luglio 2003
Calcolatori situati in diverse città e connessi tra di loro permettono di giocare on-line. Si vuole scrivere un programma che, acquisita la situazione iniziale, monitori giocatori e partite, con possibilita’di aggiornamento dei dati.
Un file di testo contiene la descrizione della connessione tra i calcolatori. Le singole connessioni tra una città all’altra, una per riga di file, sono descritte col formato
citta1 citta2 ritardo
dove citta1 e citta2 sono stringhe di al massimo 20 caratteri, e ritardo e’ un intero che rappresenta il tempo, espresso in millisecondi, necessario ai dati per andare da una città all’altra.
Nel file i segmenti possono essere presenti in un ordine qualsiasi e non ci sono duplicati. Fare l’ipotesi semplificatrice che nel complesso la connessione tra città costituisce una linea.
Esempio:
torino milano 25
brescia bologna 20
brescia milano 15
A run-time il programma, letto il file di input, deve permettere le seguenti operazioni:
A - nome giocatore nodo: introdurre nuovo giocatore al nodo indicato. Fare l’ipotesi semplificatrice che il giocatore non sia gia’ presente sulla rete.
E - nome giocatore: eliminare il giocatore indicato (qualunque sia il nodo a cui e connesso). Fare l’ipotesi semplificatrice che il giocatore indicato sia presente sulla rete.
G - nome_giocatore1 nome_giocatore2: giocatore1 inizia una partita con giocatore2, entrambi gia’ presenti sulla rete. Fare l’ipotesi semplificatrice che i due giocatori indicati siano presenti sulla rete e che non stiano gia’ giocando una partita.
S - nome nodo: stampare tutti i giocatori sul nodo indicato, con a fianco nome e nodo del giocatore con cui stanno eventualmente giocando, piu’ il ritardo che caratterizza la connessione tra i due (somma dei ritardi dei segmenti di rete che li separano).
X - terminare l’esecuzione.
Ora vi chierederi di darmi una mano nell'impostare il programma, precisamente:
1. quante strutture dinamiche utilizzare e cosa inserire al loro interno;
2. (importante in quanto non sono riuscito a farlo) ordinare la lista in cui vengono caricati da file le coppie di città e il tempo di connessione fra di loro, come nell'es:
torino milano 25 ->milano brescia 15->brescia bologna 20.
Io ho creato 2 strutture principali + una per in nomi dei giocatori, tutte e tre dinamiche:
nella prima ho caricato da file le coppie di città e il loro tempo di connessione, ma senza ordinarla, cosa che mi ha complicato la vita dopo; nella seconda ho inserito in ogni struttura la città di connessione e un puntatore alla struttura "nomi", dinamica anch'essa in quanto non so a priori quanti giocatori ci saranno su ciascun nodo...
Se potete darmi una mano ve ne sono davvero grato!
Grazie