Mer 21 Agosto, 15:26:52 - 2019

Autore Topic: Homework3  (Letto 7775 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Rimher

  • Ricercatore
  • ****
  • Post: 272
  • FeedBack: +15/-6
    • Mostra profilo
Re: Homework3
« Risposta #15 il: Sab 03 Dicembre, 13:05:25 - 2011 »
Ma qualcuno ha qualche input da passare per fare qualche test di "correttezza"?
Mi pare che funzioni e Spoj me l'ha accettato, ma vorrei verificare che l'algoritmo funzioni correttamente

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #16 il: Sab 03 Dicembre, 13:13:07 - 2011 »
Non fa assolutamente nulla  ??? Ho dovuto riaggiornare la pagina...dopo 15 minuti ancora fermo a running(6) e il time che girava!!! Semmai provo a contattare il tutor!!!
p.s.Qual'è la mail del tutor? :)

bonifaci@dis.uniroma1.it

Ma qualcuno ha qualche input da passare per fare qualche test di "correttezza"?
Mi pare che funzioni e Spoj me l'ha accettato, ma vorrei verificare che l'algoritmo funzioni correttamente

Io sto facendo qualche prova... ma sono tutti input piccoli. Crearne uno con 2000 operazioni e controllarne la correttezza mi sembra una cosa abbastanza complicata :-\
In ogni caso per quanto mi riguarda io credo che l'unica operazione critica sia l'update. Le altre sono operazioni abbastanza semplici alla fine...
Bazoo89 tu come lo hai fatto quel test da 2000 add??

Offline Alevix

  • Studente di Dottorato
  • ***
  • Post: 150
  • FeedBack: +7/-2
    • Mostra profilo
Re: Homework3
« Risposta #17 il: Sab 03 Dicembre, 13:17:33 - 2011 »
dobbiamo anche prendere in considerazione il fatto che una "update" possa andare a mettere l'utente in una posizione gia occupata da un altro utente ? Nelle specifiche mi pare non se ne parli  :-\

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #18 il: Sab 03 Dicembre, 13:23:55 - 2011 »
dobbiamo anche prendere in considerazione il fatto che una "update" possa andare a mettere l'utente in una posizione gia occupata da un altro utente ? Nelle specifiche mi pare non se ne parli  :-\

No, perchè nella parte iniziale c'è espressamente scritto: "Utenti diversi occupano sempre posizioni diverse." Può solo capitare che si chieda il where per un utente che non esiste :asd:

Offline Piero

  • Studente
  • *
  • Post: 34
  • FeedBack: +2/-1
    • Mostra profilo
    • Personal website
Re: Homework3
« Risposta #19 il: Sab 03 Dicembre, 14:35:43 - 2011 »
Ti posso dire in linea di massima come ho fatto:
1- devi creare un ciclo while per la lettura. ad ogni ciclo devi leggere una riga attraverso il metodo readLine() della classe BufferedReader (prima del ciclo devi ovviamente aver creato e inizializzato una variabile BufferedReader).
2- per scandire le parole su ogni riga è molto comoda la classe StringTokenizer (cerca fra le api) che attraverso il metodo nextToken() ti permette di leggere una parola per volta, saltando gli spazi (ci sono esempi per come utilizzarla nelle soluzioni delle esercitazioni).
3- a questo punto, non ti resta altro da fare che analizzare le parole: crei un nuovo ciclo che scandisce la riga attraverso nextToken() e, utilizzando equals(), confronti la parola corrente con quelle che tu sai essere le parole chiave (add, update ecc...). Per farlo crei una serie di if-else e, ogni volta che trovi una corrispondenza, all'interno dell'if fai fare al programma quello che deve fare.

Non so se sono stato chiaro, nè tantomeno se questo sia il metodo migliore. Io ho fatto così e funziona :)


Ma dopo aver trovato la parola chiave "add", per esempio, come prelevo il resto dell'istruzione, quindi nome e coordinate, da passare poi al metodo per l'aggiunta?
-----------------------

Piero

Offline Rimher

  • Ricercatore
  • ****
  • Post: 272
  • FeedBack: +15/-6
    • Mostra profilo
Re: Homework3
« Risposta #20 il: Sab 03 Dicembre, 14:49:25 - 2011 »
bonifaci@dis.uniroma1.it

Io sto facendo qualche prova... ma sono tutti input piccoli. Crearne uno con 2000 operazioni e controllarne la correttezza mi sembra una cosa abbastanza complicata :-\
In ogni caso per quanto mi riguarda io credo che l'unica operazione critica sia l'update. Le altre sono operazioni abbastanza semplici alla fine...
Bazoo89 tu come lo hai fatto quel test da 2000 add??
Per quanto mi riguarda l'operazione piu' critica e dispendiosa e' il findClosest(), ma li dipende da quale struttura dati hai utilizzato

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #21 il: Sab 03 Dicembre, 15:09:10 - 2011 »

Ma dopo aver trovato la parola chiave "add", per esempio, come prelevo il resto dell'istruzione, quindi nome e coordinate, da passare poi al metodo per l'aggiunta?

Basta continuare ad usare all'interno dell'if il nextToken(). Se sai che dopo add hai 3 parametri, lo usi 3 volte. E' un metodo che restituisce una stringa, per convertirla in intero puoi utilizzare Integer.parseInt(stringa). Poi il resto sta a te.

Offline xian89

  • Studente
  • *
  • Post: 46
  • FeedBack: +3/-1
    • Mostra profilo
Re: Homework3
« Risposta #22 il: Sab 03 Dicembre, 16:15:43 - 2011 »
Scusatemi ho bisogno di un consiglio sul 3 homework riguardo l'acquisizione dell'input se era giusto il ragionamento.
Io ho fatto un ciclio while infinito di acquisizione fatto cosi:

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
      while(true){
         String s = input.readLine();
         if(s.equals("stop"))
            break; /*il dubbio è qui (1) se al posto di questo break devo generare l'output oppure (2) lascio il break e genero l'output nell'else(e quindi ad ogni linea inserita corrisponde subito l'output e lo genero subito appena acquisita la linea???)*/
                        else RISOLVO IL PROBLEMA RIGUARDANTE QUESTA LINEA DI INPUT E STAMPO L'OUTPUT CORRISPONDENTE
                }


Che dite è giusto il ragionamento di acquisizione oppure ho sbagliato?? vorrei saperlo perche sono indeciso e non vorrei aver fatto tutto il lavoro per niente...
GRAZIE MILLE  A CHI SOPPORTA QUESTA STUPIDA DOMANDA E MI RISPONDE.
« Ultima modifica: Sab 03 Dicembre, 16:28:09 - 2011 da xian89 »

Offline D_a_n88

  • Direttore di Dipartimento
  • ***
  • Post: 1123
  • FeedBack: +33/-16
    • Mostra profilo
Re: Homework3
« Risposta #23 il: Sab 03 Dicembre, 16:50:37 - 2011 »
io ho fatto con il break.

------

Ho caricato il mio file su spoj dopo aver fatto una modifica, ora me lo accetta. Ma non mi fa più accedere, non carica il sito! è normale o è solo un problema temporaneo?
La domanda è: una volta che viene accettato non potrei per esempio caricarne un altro migliorato?

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #24 il: Sab 03 Dicembre, 16:56:00 - 2011 »
Scusatemi ho bisogno di un consiglio sul 3 homework riguardo l'acquisizione dell'input se era giusto il ragionamento.
Io ho fatto un ciclio while infinito di acquisizione fatto cosi:

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
      while(true){
         String s = input.readLine();
         if(s.equals("stop"))
            break; /*il dubbio è qui (1) se al posto di questo break devo generare l'output oppure (2) lascio il break e genero l'output nell'else(e quindi ad ogni linea inserita corrisponde subito l'output e lo genero subito appena acquisita la linea???)*/
                        else RISOLVO IL PROBLEMA RIGUARDANTE QUESTA LINEA DI INPUT E STAMPO L'OUTPUT CORRISPONDENTE
                }


Che dite è giusto il ragionamento di acquisizione oppure ho sbagliato?? vorrei saperlo perche sono indeciso e non vorrei aver fatto tutto il lavoro per niente...
GRAZIE MILLE  A CHI SOPPORTA QUESTA STUPIDA DOMANDA E MI RISPONDE.

Secondo me ha più senso generarlo di volta in volta attraverso una stampa...
E comunque, volendo, al posto del break puoi benissimo mettere direttamente il return!

Ho caricato il mio file su spoj dopo aver fatto una modifica, ora me lo accetta. Ma non mi fa più accedere, non carica il sito! è normale o è solo un problema temporaneo?
La domanda è: una volta che viene accettato non potrei per esempio caricarne un altro migliorato?

Credo sia un problema temporaneo perchè nemmeno io riesco ad accedere. Sì puoi caricarne più di uno!!
« Ultima modifica: Sab 03 Dicembre, 16:58:35 - 2011 da finch89 »

Offline D_a_n88

  • Direttore di Dipartimento
  • ***
  • Post: 1123
  • FeedBack: +33/-16
    • Mostra profilo
Re: Homework3
« Risposta #25 il: Sab 03 Dicembre, 17:00:25 - 2011 »
Secondo me ha più senso generarlo di volta in volta attraverso una stampa...
E comunque, volendo, al posto del break puoi benissimo mettere direttamente il return!
anche io ho fatto così, generando volta per volta le varie stampe

Credo sia un problema temporaneo perchè nemmeno io riesco ad accedere. Sì puoi caricarne più di uno!!
ok, perfetto!grazie!

Offline finch89

  • Neo-Laureato
  • **
  • Post: 96
  • FeedBack: +16/-1
    • Mostra profilo
    • the loser.
Re: Homework3
« Risposta #26 il: Dom 04 Dicembre, 12:45:16 - 2011 »
Ah ok, ho capito, grazie :) Nelle specifiche c'è scritto che verranno presi in considerazione anche i time exceeded, ma è comunque necessario passare il 90% dei test :sisi:

Offline orlando

  • Neo-Laureato
  • **
  • Post: 53
  • FeedBack: +3/-1
    • Mostra profilo
Re: Homework3
« Risposta #27 il: Dom 04 Dicembre, 13:25:58 - 2011 »
ragazzi a me da un time limit al run(10) per favore aiutatemi  ??? ??? ???

Offline fc90

  • Professore Associato
  • *
  • Post: 527
  • FeedBack: +57/-14
    • Mostra profilo
Re: Homework3
« Risposta #28 il: Dom 04 Dicembre, 16:37:45 - 2011 »
ragazzi a me da un time limit al run(10) per favore aiutatemi  ??? ??? ???

anche a me riporta un time limit. ma come faccio sapere a che run accade?

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework3
« Risposta #29 il: Dom 04 Dicembre, 17:00:21 - 2011 »
ragazzi mi domandavo se l'output deve essere generato solo alla fine, oppure deve essere un'applicazione realtime, nel senso che appena ricevo una where o una closest, stampo subito il risultato oppure stampo tutto insieme alla fine?