PDA

View Full Version : Aiuto risoluzione tema d'esame


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

cionci
06-07-2003, 19:46
Ma in cosa hai difficoltà ?

ceccoggi
06-07-2003, 20:26
Originally posted by "ceccoggi"

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.

lalli83
06-07-2003, 20:31
ciao collegaaaaaaaaaaa :D Io sono ad ing. Info a Vercelli...e devo dare il tuo stesso esame questo martedì..... :mc:
oltre a questo ho altri esami quindi non ho molto tempo di provare quello ke hai kiesto tu...xò ti auguro in bocca al lupo x il prossimo appello! :D :D

ps: dimmi ke tu nn hai ciminiera e sanna... :mad:

cieuuuuu

airone9
06-07-2003, 21:48
Caro ceccogi!!Basta che ci metti due volt e 300 ampere nel campo dei giocatori e poi per andare da una città ad un'altra ci devi mettere un motore polino!! è lo stesso problema che mi hanno dato all'esame di maturità alla prova di informatica.
Dimmi la verità se non ti aiutavo io non lo avresti capito!!
Ci vediamo il 25 luglio

ceccoggi
07-07-2003, 10:16
Originally posted by "lalli83"

ciao collegaaaaaaaaaaa :D Io sono ad ing. Info a Vercelli...e devo dare il tuo stesso esame questo martedì..... :mc:
oltre a questo ho altri esami quindi non ho molto tempo di provare quello ke hai kiesto tu...xò ti auguro in bocca al lupo x il prossimo appello! :D :D

ps: dimmi ke tu nn hai ciminiera e sanna... :mad:

cieuuuuu

grazie :cool: ! cmq io ho Durante e Cena...

ceccoggi
07-07-2003, 10:20
Originally posted by "airone9"

Caro ceccogi!!Basta che ci metti due volt e 300 ampere nel campo dei giocatori e poi per andare da una città ad un'altra ci devi mettere un motore polino!! è lo stesso problema che mi hanno dato all'esame di maturità alla prova di informatica.
Dimmi la verità se non ti aiutavo io non lo avresti capito!!
Ci vediamo il 25 luglio

Ah, airone9, ora ho capito... grazie 1000!
Cive il 25 - se sono ancore vivo -, prenota un posto anche x me x la tunisia... paghi tu, giusto?! :sofico:

Scusate l'ot...cmq sono ancora in cerca di aiuto...

cionci
07-07-2003, 10:38
http://forum.hwupgrade.it/viewtopic.php?p=5469205#5469205

Frank1962
07-07-2003, 13:13
...ma a che anno sei di informatica ?

ceccoggi
07-07-2003, 17:03
...fine primo...

Frank1962
07-07-2003, 17:44
Originally posted by "ceccoggi"

...fine primo...
laurea in ingegneria informatica o solo informatica ? ........cmq ...urka se vi fanno questo alla fine del primo ....chissà alla fine dell'ultimo anno che ve fanno fa: un os !!! :D

misterx
07-07-2003, 19:03
ma dev'essere una sorta di simulatore o un programma realmente funzionante???

ceccoggi
09-07-2003, 16:28
Originally posted by "Frank1962"


laurea in ingegneria informatica o solo informatica ? ........cmq ...urka se vi fanno questo alla fine del primo ....chissà alla fine dell'ultimo anno che ve fanno fa: un os !!! :D

..ingegneria informatica... Non è che fosse proprio difficilissimo, solo che era lungo, c'erano un casino di variabili da utilizzare, e in 2 ore senza pc davanti era davvero dura riuscire a finirlo tutto e farlo correttamente!

Originally posted by "misterx"

ma dev'essere una sorta di simulatore o un programma realmente funzionante???


deve permettere ciò che è descritto nel testo d'esame, dopo aver caricato da file le coppie di città con i loro tempi di connessione, quindi una sorta di simulazione...certamente nn utilizzeranno i nostri programmi per gestire una rete di giocatori online! :p

ceccoggi
15-07-2003, 21:57
solo stamattina mi sono rimesso a fare il programma dopo 2 settimane, dato che nel frattempo ho dato altri 2 esami, e sono riuscito a finirlo...

x cionci: guarda che il sugerimento che mi hai dato utile non andava bene x fare ciò che ti avevo chiesto,cmq grazie lo stesso...

Marco

cionci
15-07-2003, 22:25
Originally posted by "ceccoggi"

x cionci: guarda che il sugerimento che mi hai dato utile non andava bene x fare ciò che ti avevo chiesto,cmq grazie lo stesso...
Mi sembrava che avessi richiesto un metodo per l'ordinamento della lista o sbaglio ?

misterx
16-07-2003, 07:38
domanda:

se gli consegnassi il compito scritto in Borland Builder C++ con la sua bella interfaccetta lo accetterebbero oppure si è vincolati ad un complilatore per DOS ? :)

ceccoggi
16-07-2003, 11:08
Originally posted by "cionci"


Mi sembrava che avessi richiesto un metodo per l'ordinamento della lista o sbaglio ?

Non dovevo ordinare la lista in ordine crescente o decrescente, ma acquisendo da file le coppie di citta avevo una lista del genere:

torino milano 25
brescia bologna 20
brescia milano 15

Lo scopo dell'ordinamento era quello di concatenare le coppie di città con altre coppie con le quali avevano una citta in comune, del tipo:
torino milano 25 ->brescia bologna 20 ? niente in comune
brescia bologna 20 ->brescia milano 15 ? brescia in comune quindi:
bologna brescia 20->brescia milano 15
brescia milano 15->torino milano 25? milano in comune quindi:
bologna brescia 20->brescia milano 15->milano torino 25.

Non è stato semplice pensare a un algoritmo che facesse questo ordinamento in maniera molto snella, c'ho messo quasi un'oretta solo a pensare a quello!! :muro:
Il fatto che ad un esame in cui hai 2 ore di tempo, se non si sono mai
fatti esercizi del genere in precedenza, a pensarci sul momento il tempo non basta! :(

Vabbè, risproverò al secondo appello il 21... ;)

Freeride
17-07-2003, 16:01
Io a quell'esame ho rifiutato un 23 2 anni fa, poi non ho avuto più tempo di darlo.
Intanto sono cambiate le regole, prima in media basta leggere una matrice n*n, poi con il nuovo ordinamento sono spuntate liste, alberi binari,...e "me l'ho preso in saccoccia"!
Da 300 a 400 linee di codice C in doppia copia carbone in 2 ore non sono uno scherzo, penso di darlo a settembre nella sessione solo per V.O. che dovrebbe essere più facile!
Auguri per il 21, è veramente una bastardata questo esame!
Se vai mi mandi il testo, grazie.