.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [Prog Java] Domanda banale ... (http://www.dsy.it/forum/showthread.php?threadid=5101)


Posted by Terrytop on 23-07-2003 17:33:

[Prog Java] Domanda banale ...

Stavo riguardando lo scritto di info generale (visto ke per l'orale devo portare i due programmini stampati ... ) e mi stavo dando da fare quando mi e' sorto un dubbio ... il pezzo dell'esercizio in questione e' questo: "Sviluppare un’applicazione Java che *cut*, legga da tastiera una serie di numeri interi positivi di lunghezza non nota a priori, terminata dal numero 9999, la memorizzi in una struttura di dati appropriata, ... "

io avevo usato un array, solo ke provando ora il programma mi son ricordato ke va dichiarata la lunghezza dell'array quando lo si istanzia, no ? pero' qua mi chiede una serie di numeri non nota a priori, quindi l'array.length la conosco solo dopo aver inserito i valori ... ho pensato a un vector o roba simile, solo ke (oltre a non saperlo usare) non sono nel programma, quindi dubito vengano richiesti nell'esame, no ?

In sostanza sapreste risolvere il pezzetto qua sopra usando gli array...?

Terrytop

__________________
Den som väntar på något gott väntar aldrig för länge
"...una radio spenta e' peggio che scambiare una radio per un adesivo..."
la gente dorme e si sveglia solo per morire


Posted by 0m4r on 23-07-2003 19:41:

gli array no, ma nemmeno vector (perchè anche li è richiesto di dare una dimensione), si dovrebbe usare una lista...almeno io lo farei con una lista...

__________________
http://www.twitter.com/0m4r


Posted by TankJr. on 24-07-2003 08:42:

beh, il Vector può incrementare..
dalla javaDoc (java.util.Vector):
Vector(int initialCapacity, int capacityIncrement)

una soluzione un po' 'sporca' usando gli arrays potrebbe essere quella di copiare l'array in uno più grande quando è pieno ..ma è davvero un'obbrobrio!

__________________
"Il Buddha, il Divino, dimora nel circuito di un calcolatore o negli ingranaggi del cambio di una moto con lo stesso agio che in cima a una montagna o nei petali di un fiore. Pensare altrimenti equivale a sminuire il Buddha - il che equivale a sminuire sè stessi." Robert M. Pirsig - Lo Zen e l'arte della manutenzione della motocicletta


Posted by webwarrior on 24-07-2003 10:44:

E se mettessi il tutto in una string e usassi il magico StringTokenizer?

__________________
__________________

a p bertolini


Posted by webwarrior on 24-07-2003 10:47:

StringTokenizer

D'altra parte, puoi anche usare String.split

PHP:

String[] elencoNumeri = "1 10 400 32 9 999".split("\s");

for (int x=0; x<elencoNumeri.length; x++)
{
  System.out.println(result[x]);
}

__________________
__________________

a p bertolini


Posted by Terrytop on 24-07-2003 10:56:

Originally posted by webwarrior
E se mettessi il tutto in una string e usassi il magico StringTokenizer?

mi sa ke alla fine e' l'unica, con i normali array mi sa ke e' impossibile o cmq ne uscirebbe una cosa molto contorta ... e' ke io e le stringhe non abbiam proprio un buon rapporto eh ...
boh in ogni caso domani faccio l'orale e poi vi dico com'e' andata ...

Terrytop

__________________
Den som väntar på något gott väntar aldrig för länge
"...una radio spenta e' peggio che scambiare una radio per un adesivo..."
la gente dorme e si sveglia solo per morire


Posted by webwarrior on 24-07-2003 11:02:

Cmq mi sa che la soluzione "didattica" corretta è quella di Om4r. L'esercizio è il classico esempio di lista linkata, anche se però servirebbe sapere cosa devi fartene una volta che hai immagazzinato i numeri nella "struttura appropriata"

__________________
__________________

a p bertolini


Posted by Terrytop on 24-07-2003 11:07:

Originally posted by webwarrior
Cmq mi sa che la soluzione "didattica" corretta è quella di Om4r. L'esercizio è il classico esempio di lista linkata, anche se però servirebbe sapere cosa devi fartene una volta che hai immagazzinato i numeri nella "struttura appropriata"

niente, una volta immagazzinati i dati e' semplicemente richiesto di ottenere i 3 valori maggiori ... niente di ke ...
il problema sta nel fatto ke penso ke nessun prof, per quanto sadico, metterebbe in un suo scritto un esercizio incentrato su roba ke non abbiam mai fatto ( di strutture dati abbiam visto solo gli array appunto ... )
sinceramente ho ancora molti dubbi a riguardo, anche perche' nello scritto il programma l'ho fatto (sbagliando) con un array .... eppure vedendo il voto sembra me l'abbia contato giusto uguale ... mmm ...

Terrytop

__________________
Den som väntar på något gott väntar aldrig för länge
"...una radio spenta e' peggio che scambiare una radio per un adesivo..."
la gente dorme e si sveglia solo per morire


Posted by webwarrior on 24-07-2003 11:19:

Bah, così su due piedi me ne fregherei di array e altro e avrei 3 variabili

(sintassi a caso, giusto per rendere)

PHP:

int primo, secondo, terzo=0;
int buffer=0;

do
{
 buffer=leggiNumero();
 if (buffer>primo)
   {
     primo=buffer;
   }
 else if (buffer>secondo)
   {
     secondo=buffer;
  } 
 else if (buffer>terzo)
   {
     terzo=buffer;
}
}
while (buffer!=0)

__________________
__________________

a p bertolini


Posted by holylaw on 24-07-2003 18:44:

oserei dire che e' sbagliato.. per esempio sa 11 10 9 e inserisci 20 ti rtrovi con 20 10 9... invece dovresti avere 20 11 10... ma e' un prob facilmente risolvibile con qualche controllo di piu'
:)

__________________
La mia epoca ed io non siamo fatti l'uno per l'altro:questo è chiaro. Ma è da vedere chi di noi due vincerà il processo di fronte al tribunale dei posteri.
AV MJØDEN VART DU VIS OG KLOK, SÅ DREKKA MER!!!!
Le persone sagge parlano perché hanno qualcosa da dire.
Le persone sciocche perché hanno da dire qualcosa.


Posted by webwarrior on 24-07-2003 18:57:

Yep, hai ragione.

E' una piletta da 3 elementi:

PHP:

int primo, secondo, terzo=0;
int buffer=0;

do
 {
  buffer=leggiNumero();
  if (buffer>primo)
    {
       terzo=secondo;
       secondo=primo;
       primo=buffer;     
    }
 }
while (buffer!=9999)



Neanche 10 righe... :cool:

__________________
__________________

a p bertolini


Posted by Terrytop on 24-07-2003 19:27:

Originally posted by webwarrior
Yep, hai ragione.

E' una piletta da 3 elementi:

yess, pero' cosi' dai per scontato ke i dati siano ordinati in modo crescente ...
esempio se metto 15, 12, 3 , 5 ... ecc... la condizione buffer>primo si verifica solo all'inizio e ti vengono restituiti 15 0 e 0 come massimi ... ;)

nel mio caso o risolvo ordinando l'array o piu' grezzo con tre cicli for e buonanotte ;)

Terrytop

__________________
Den som väntar på något gott väntar aldrig för länge
"...una radio spenta e' peggio che scambiare una radio per un adesivo..."
la gente dorme e si sveglia solo per morire


All times are GMT. The time now is 12:40.
Show all 12 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.