.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [PROGETTO] L'esecuzione (http://www.dsy.it/forum/showthread.php?threadid=24061)


Posted by Vorgoth on 09-02-2006 19:42:

[PROGETTO] L'esecuzione

Il file my compila perfettamente, ma quando lo eseguo appare:

code:
C:\...\myLanguage>java Programma 5 10 DECLARE s; DECLARE arg1; arg1 = 5; IF (arg1<=0) PRINT "Primo argomento invalido" ELSE DECLARE arg2; arg2 = 10; IF (arg2<=0) PRINT "Secondo argomento invalido" ELSE WHILE (arg1!=0) arg1 -= 1; s += 1; WHILE (arg2!=0) arg2 -= 1; s += 1; PRINT s; InvalidVariableException: at Assegna.esegui(myLanguage.java:257) at Sequenza.esegui(myLanguage.java:34) at Programma.main(myLanguage.java:445)


Qualcuna ha idea di cosa si tratti?

Il problema sembra essere nei metodi che chiamano Assegna, o meglio, in Assegna stessa (la classe esegui()?), che comunque mi sembra giusta. L'exception viene lanciata nella parte centrale:

code:
if (memoria.containsKey(variabile) == false) throw new InvalidVariableException(); else { memoria.remove(variabile); memoria.put(variabile, new Integer(valore)); }

__________________
...!


Posted by Vorgoth on 09-02-2006 19:52:

Se commento tutte le exceptions (ho provato per cercare di rintracciare l'errore), mi lancia un eccezzione NullPointer quando viene usato istrSe.esegui() nella classe Selezione.

Non so se serve per capirci di piu'. -_-

__________________
...!


Posted by Skioda86 on 09-02-2006 20:00:

InvalidVariableException:
at Assegna.esegui(myLanguage.java:257)
at Sequenza.esegui(myLanguage.java:34)
at Programma.main(myLanguage.java:445)


Scusami, ma come diavolo fai ad avere 445 righe di codice nel programma che ci ha dato il profe se quest'ultimo sarà non più di 50 righe?????!!!!

__________________
- - {[( KEVIN HIGHT FLY)]} - -


Posted by Vorgoth on 09-02-2006 20:02:

Ho messo tutto nello stesso file per simplificare le cose dato che continuo a dover modificare e ri-compilare.

Non dovrebbe cambiar nulla, non credo c'entri col problema...

La cosa che non riesco a capire è perche' l'intero programma funziona come se le variabili non venissero dichiarate, eppure anche Dichiara.esegui() mi sembra corretta.

code:
if (memoria.containsKey(variabile)) throw new ExistingVariableException(); else memoria.put(variabile, new Integer(0));

__________________
...!


Posted by m410 on 09-02-2006 20:21:

scusa magari non centra niente e sto dicendo una cavolata ma se provi a mettere Istruzione o super prima di memoria cosa succede? tipo Istruzione.memoria.put...


Posted by Vorgoth on 09-02-2006 20:39:

La mia variabile Hashtable memoria è public, quindi dovrebbe essere leggibile da tutte le altre classi. Comunque ho provato e mentr con Istruzione.* non compila neanche, con super.* da sempre lo stesso errore.

:\:\

__________________
...!


Posted by m410 on 09-02-2006 20:45:

è statica?


Posted by Vorgoth on 09-02-2006 21:17:

cosa intendi? Non l'ho dichiarata static.

__________________
...!


Posted by ARIEL on 09-02-2006 21:18:

con static la estendi anche alle sottoclassi!


Posted by A. Wesker 86 on 09-02-2006 21:57:

quoto : dichiarala static la hashtable

__________________
The Americans are too in love with the sound of their own voice to speak the truth (MGS 2 Sons Of Liberty)


Posted by Vorgoth on 09-02-2006 22:30:

Ora l'eccezione che appare è unaltra,

code:
InvalidOperandException: Operatore sbagliato. at Iterazione.esegui(myLanguage.java:165) at Sequenza.esegui(myLanguage.java:34) at Selezione.esegui(myLanguage.java:103) at Sequenza.esegui(myLanguage.java:34) at Selezione.esegui(myLanguage.java:103) at Sequenza.esegui(myLanguage.java:34) at Programma.main(myLanguage.java:397)


...presumo quindi che il problema di prima si sia risolto (anche se svelandone un altro..d'oh).

Anche qua prevedo di starci delle ore, dato che in apparenza sembra tutto corretto....--_-;

__________________
...!


Posted by Vorgoth on 09-02-2006 23:49:

Risolto :D.........-_- e ora mi da come risultato finale sempre "2".

No comment.

__________________
...!


Posted by Drowne on 10-02-2006 01:00:

Visto che ci troviamo... A me succede questo. Metto come valori 10 5.

l'output ( mettendo dei system out in incrementa e decrementa ) è questo:

code:
DECLARE s; DECLARE arg1; arg1 = 10; IF(arg1<=0) PRINT ''Primo argomento invalido''; ELSE DECLARE arg2; arg2 = 5; IF(arg2<=0) PRINT ''Secondo argomento invalido''; ELSE WHILE(arg1!=0) arg1 -= 1; s += 1; WHILE(arg2!=0) arg2 -= 1; s += 1; PRINT s; decremento: 1 decr2 caricato dall hashtable: 9 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 1 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 8 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 2 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 7 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 3 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 6 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 4 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 5 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 5 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 4 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 6 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 3 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 7 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 2 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 8 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 1 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 9 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: 0 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 10 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: -1 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 11 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: -2 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 12 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: -3 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 13 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: -4 dovrebbe fermarsi a 0 incremento: 1 incr2 caricato dall hashtable: 14 dovrebbe fermarsi a 0 decremento: 1 decr2 caricato dall hashtable: -5 dovrebbe fermarsi a 0


Con:

incr2 = incremento + (int)memoria.get(variabile);
memoria.put(variabile, incr2);

stessa storia per il decremento...

Ovviamente continua cosi all'infinito O_O


Posted by Drowne on 10-02-2006 11:23:

ok risolto :D

funzionaaaaaaa


Posted by lucafiamma on 10-02-2006 12:54:

aiuto!!

aiuto!sono nella me*da..sono rimasto da solo e devo assolutamente finire questo progetto!!qualcuno che ha già finito ed è di animo veramente buono potrebbe aiutarmi...Io ho già scritto tutto ma correggo un errore e ne spunta un altro...Vi prego una mente illuminata potrebbe darmi qualche dritta! Grazie Mille ve ne sarò grato per sempre!!


Posted by Vorgoth on 10-02-2006 13:15:

!@£!$!@#£*$!@£$!!!

:evil:

__________________
...!


Posted by Robbie on 10-02-2006 14:05:

drowne ho il tuo stesso problema mi dici come hai risolto ? :D
grazieeeeeee


Posted by Vorgoth on 10-02-2006 14:20:

FINTIO DICO ZNJANENkla

__________________
...!


Posted by Drowne on 10-02-2006 16:11:

in pratica i while erano cosi:

if (operazione.equals(">")) {
while(var>valore) {
ESEGUI CORPO;
}

solo che in questo modo VAR non cambia mai... basta fargliela leggere dentro il while dall'hashtable...

while (zazazaza) {
var = pigliatelo dall'hash
ESEGUI CORPO;}


Posted by sbrandu on 10-02-2006 18:02:

In java 1.5 andava tutto bene..
Passo a java 1.4 faccio tutti i casting e correggo iterazione come ha detto Drowne (non capisco perchè in java 1.5 andava anche senza correzione) e porca pupazza mi stampa la somma+2 al posto della somma e basta.
Se metto 10 e 5 mi stampa 17..
Se metto 1 e 2 mi stampa 5..
Ma dico io perchè?!
Qualcuno ha qualche consiglio?


Posted by Drowne on 10-02-2006 19:54:

io non ce l'ho ancora messo, lo faccio domani che sono distrutto oggi :ph34r:


Posted by sbrandu on 10-02-2006 20:02:

buona fortuna
se ti capita il mio problema (non te lo auguro) fammi sapere..


Posted by Skioda86 on 10-02-2006 22:40:

Question

Posso sorgere un dilemma???!!!
:?:?:?:?:?:?:?:?:?

Ho riguardato la hashtable modellandola per la versione 1.4 e MAGIA DELLE MAGIE...Sono riuscito a sottoporre l'intero progetto!!! Senza però testarlo sul mio PC!!!!

Ma dato che sono molto dubbioso e Se nn ci infilo il dito(non gode:))nn credo.....Dato che ho installato la JDK con Jre 1.5.0.2
come faccio ad installare e controllare la validità del mio progetto se non ho la versione 1.4???!!! ANTICIPO CHE QUI A CASA HO IL 56k!!

Come posso fare??

HELP :(:?:?:?:?:?:?:?:?:?:?

__________________
- - {[( KEVIN HIGHT FLY)]} - -


Posted by Drowne on 10-02-2006 23:03:

con Eclipse si puo usare anche la 1.4.... ce l'hai, vero?


Posted by Skioda86 on 11-02-2006 10:01:

No, uso Netbeans l'ultima versione comprese le patch ufficiali di aggiornamento! Ma il mio problema è che non posso manco scaricarla qui a casa! Dovrei venire lì a milano!
Ho la JKD jre 1.5!!!

D..O che sfiga!!!
KMQ A ME LO SOTTOPONE LO STESSO!!! MAGARI E' TUTTO GIUSTO E SONO IO A TIRARMI LE PARANOIE...!!! O...MAGARI NON E' COSI'!!! :) :(

__________________
- - {[( KEVIN HIGHT FLY)]} - -


Posted by GrandeMago on 11-02-2006 10:11:

Raga io ho un problema!...a me il programma stampa sempre "Primo argomento invalido!" e non riesco a trovare l'errore!...dove che sbaglio?!mi date un aiutino per favore!:(


Posted by Drowne on 11-02-2006 11:28:

E' sicuramente nella classe Selezione... Controlla l'esegui.


Posted by GrandeMago on 11-02-2006 12:31:

Ti ringrazio drowne...quindi l'errore dovrebbe essere in questi pezzetti di if?

if (((Integer)memoria.get(variabile)).intValue()>valore)
istrSe.esegui();
else istrAltrimenti.esegui();

Io in selezione ho fatto una serie di if annidati dove confronta solo e richiama esegui sulle istruzioni!devo controllare if quando legge in memoria?!:?


Posted by matt23 on 11-02-2006 13:03:

Originally posted by Drowne
in pratica i while erano cosi:

if (operazione.equals(">")) {
while(var>valore) {
ESEGUI CORPO;
}

solo che in questo modo VAR non cambia mai... basta fargliela leggere dentro il while dall'hashtable...

while (zazazaza) {
var = pigliatelo dall'hash
ESEGUI CORPO;}



Drowne, per "zazazaza" intendi quello che c'è nel while precedente ?? solo che non è chiaro "var = blablabla"... dai una dritta che qua il 13 si avvicina ^_^


Posted by Drowne on 11-02-2006 13:46:

avevo scritto il codice giusto ma l'ho dovuto editare, mi spiace :(

cmq zazazaza = quello che c'era nel while prima, si :D

var = ci va la robaccia per prendere il valore dall'hash ( senza che lo scrivo io, l'ha scritto Grandemago nel reply prima del tuo, cosi siamo tutti contenti ^_^ )

@Grandemago:

quello è giusto... Hai usato qualcosa tipo (operazione == ">=") oppure hai usato equals? Io, personalmente ho usato equals per sicurezza...


Posted by ad676556 on 11-02-2006 14:32:

HELP

ragazzi..... ho mandato in esecuzione il programma di malchiodi e mi esce:
Exception in thread "main" java.lang.NullPointerException
at Incrementa<int><Incrementa.java:9>
at Programma.main<Programma.java:10>
SAPETE COSA VUOL DIRE........MI STO DANNANDO MA NN RIECO A CAPIRE QUAL'E' L'ERRORE!!!!!!!!:evil:.......


Posted by matt23 on 11-02-2006 16:09:

ok.... ora ho un solo problema, MORTALE! il programma, compila e stampa quello che deve stampare a sola eccezione del risultato, questo dipende sicuramente dal primo WHILE che mi stampa nel decrementa arg2 invece di arg1.... non capisco perchè, da quale può dipendere secondo voi??

DECLARE s;
DECLARE arg1;
arg1 = 10;
IF(arg1<=0)
PRINT "Primo argomento invalido";

ELSE
DECLARE arg2;
arg2 = 5;
IF(arg2<=0)
PRINT "Secondo argomento invalido";

ELSE
WHILE(arg1!=0)
arg2 -= 1;
s += 1;
WHILE(arg2!=0)
arg2 -= 1;
s += 1;
PRINT s;

__________________
"You got to lose to know how to win"


Posted by m410 on 11-02-2006 16:29:

a me faceva così perchè non usavo il clone nei costruttori


Posted by matt23 on 11-02-2006 16:32:

puoi spiegarti meglio? penso mi puoi essere molto d'aiuto.. tnx

__________________
"You got to lose to know how to win"


Posted by m410 on 11-02-2006 16:37:

prova a mettere corpo=(Istruzione)c.clone() nel costruttore di iterazione


Posted by matt23 on 11-02-2006 16:42:

l'ho messo ma non mi ha risolto nulla...cazz, devo andare a lavorare :( ci aggiorniamo su sta cosa! grazei lo stesso!!
ma clone l hai usato anche su altri metodi??

__________________
"You got to lose to know how to win"


Posted by m410 on 11-02-2006 16:43:

no nei costruttori fallo anche in Sequenza


Posted by matt23 on 11-02-2006 16:45:

OTTIMO GRAZIE MILLEEE!!! ti devo ... bo un caffè? ihihihhii :-)

__________________
"You got to lose to know how to win"


Posted by matt23 on 11-02-2006 16:48:

ah no, ora stampa pure..grazie grazie, sono commosso

__________________
"You got to lose to know how to win"


Posted by GrandeMago on 11-02-2006 17:31:

Originally posted by Drowne
avevo scritto il codice giusto ma l'ho dovuto editare, mi spiace :(

cmq zazazaza = quello che c'era nel while prima, si :D

var = ci va la robaccia per prendere il valore dall'hash ( senza che lo scrivo io, l'ha scritto Grandemago nel reply prima del tuo, cosi siamo tutti contenti ^_^ )

@Grandemago:

quello è giusto... Hai usato qualcosa tipo (operazione == ">=") oppure hai usato equals? Io, personalmente ho usato equals per sicurezza...


ho usato equals! mi sto dannando, non riesco a capire perchè non mi stampa questa benedetta somma!:twisted:


Posted by ad676556 on 11-02-2006 18:07:

Perfavore...........ragazzi rispondete........ho mandato in esecuzione il programma di malchiodi e mi esce:
Exception in thread "main" java.lang.NullPointerException
at Incrementa<int><Incrementa.java:9>
at Programma.main<Programma.java:10>
SAPETE COSA VUOL DIRE........MI STO DANNANDO MA NN RIESCO A CAPIRE QUAL'E' L'ERRORE!!!!!!!!.......:(


Posted by GrandeMago on 11-02-2006 18:13:

Originally posted by ad676556
Perfavore...........ragazzi rispondete........ho mandato in esecuzione il programma di malchiodi e mi esce:
Exception in thread "main" java.lang.NullPointerException
at Incrementa<int><Incrementa.java:9>
at Programma.main<Programma.java:10>
SAPETE COSA VUOL DIRE........MI STO DANNANDO MA NN RIESCO A CAPIRE QUAL'E' L'ERRORE!!!!!!!!.......:(

devi controllare il costruttore di sequenza...almeno a me faceva lo stesso errore e il problema era lì, dimenticavo un passaggio prima del for...


Posted by ad676556 on 11-02-2006 18:16:

scusa ma io l'ho controllato cento volte e mi sembra giusto.......ma tu cosa avevi dimenticato.........in modo da vedere se è quello anche per me..........


Posted by GrandeMago on 11-02-2006 18:25:

prova inserendo prima del for

elenco = new Istruzione[e.length]

no so se per te è uguale però a me ha smesso di fare l'errore appena ho inserito questa riga.....anche se adesso invece di darmi in output la somma mi dà sempre Primo argomento in valido! e non capisco che cavolo è!:evil:


Posted by ad676556 on 11-02-2006 18:33:

nn saprei..........cmq ora vedo se mi da ancora quell'errore e se nn mi esce ci incontriamo e ti offro qualcosa:-D


Posted by ad676556 on 11-02-2006 19:10:

dannazione.......ho fatto quello che mi avevi detto tu.......ma niente .........l'errore nn vuole andarsene.............:wall:


Posted by GrandeMago on 11-02-2006 19:34:

Qualcuno può aiutarmi a capire perchè mi esce sempre primo argomento invalido invece della somma?! è tutto il pom che ci sbatto ma niente!!!...vi prego!:?


Posted by GrandeMago on 11-02-2006 19:42:

Note:......\Incrementa.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Jcreator mi compila tutto ma mi dà questa nota?! qualcuno sa che vuol dire?!


Posted by Drowne on 11-02-2006 21:25:

nulla di preoccupate, non mi ricordo come l'avevo tolta, dopo ci do uno sguardo e te lo dico :D


Posted by matt23 on 12-02-2006 10:08:

Originally posted by sbrandu
In java 1.5 andava tutto bene..
Passo a java 1.4 faccio tutti i casting e correggo iterazione come ha detto Drowne (non capisco perchè in java 1.5 andava anche senza correzione) e porca pupazza mi stampa la somma+2 al posto della somma e basta.
Se metto 10 e 5 mi stampa 17..
Se metto 1 e 2 mi stampa 5..
Ma dico io perchè?!
Qualcuno ha qualche consiglio?


Ragazzi ho il suo stesso problema.... voi sapete il perchè????


Posted by dany12185 on 12-02-2006 10:13:

Ti esce quello xkè hai un compilatore java 1.5...se usi java 1.4 non ti da quell'errore...per eliminarlo devi modoficare la dichiarazione dell'hashtable così: Hashtable<String,Integer> memoria= new Hashtable<String,Integer>(); però così il sito non lo accetta xkè questa funzione c'è solo in java 1.5. Comunque non ti preoccupare, anche se ti esce quel messaggio stai tranquillo che ha compilato, prova ad eseguire e vedrai che funziona.


Posted by matt23 on 12-02-2006 10:22:

dany12185
non ho capito a chi rispondevi, se a me..io sto usando Eclipse in java 1.4, mi dà questo +2 in tutte le somme, magari ho toppato io qualcosa però mi sembra molto strano!!

__________________
"You got to lose to know how to win"


Posted by Joda on 12-02-2006 10:26:

Originally posted by matt23
dany12185
non ho capito a chi rispondevi, se a me..io sto usando Eclipse in java 1.4, mi dà questo +2 in tutte le somme, magari ho toppato io qualcosa però mi sembra molto strano!!


hai provato a fare il debug con eclipse ?

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


Posted by matt23 on 12-02-2006 10:30:

no... eclipse, questo sconosciuto ihihihih lo sto usando da venerdì sera, non ho ancora capito benissimo come funge il debug, devo usare "step by step" ?

__________________
"You got to lose to know how to win"


Posted by Joda on 12-02-2006 10:38:

Originally posted by matt23
no... eclipse, questo sconosciuto ihihihih lo sto usando da venerdì sera, non ho ancora capito benissimo come funge il debug, devo usare "step by step" ?


si.
OT
Devi prima mettere dei breakpoint e poi lanciare il progetto in modalità debug ed eseguire step-by-step.

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


Posted by matt23 on 12-02-2006 10:49:

uhhhmmm....allora ho piazzato dei breakpoint, vado in "debug", lancio con "run", ho le finestre di "debug" dove ho selezionato "step by step", poi ho i breakpoint a destra, sotto il mio codice coi break e sotto il programma in esecuzione, ma non manca la finestra che mi visualizza i passi che stanno facendo le mie variabili??

__________________
"You got to lose to know how to win"


Posted by Drowne on 12-02-2006 12:07:

non devi andare su run, ma sullo scarafaggio alla sua sinistra "debug". In questo modo eclipse ti mette in pausa il tuo programma dove hai messo i breakpoint e nella finestra in alto a destra ti visualizza i valori delle variabili.


Posted by GrandeMago on 12-02-2006 13:01:

Raga vi prego, qualcuno che mi aiuti!non riesco ad ottennere la somma come output, sempre primo argomento invalido!
ma se lo consegnassi con questo errore sarebbe un errore grave secondo voi?!


Posted by ad676556 on 12-02-2006 18:22:

ragazzi aiuto...........mi esce questo:


Posted by ad676556 on 12-02-2006 18:37:

ciao.......ragazzi ve lo metto avideo l'errore:

DECLARE s;
DECLARE arg1;
arg1 = 10;
IF (arg1<=0)
PRINT Primo argomento invalido;

ELSE
DECLARE arg2;
arg2 = 5;
IF (arg2<=0)
PRINT Secondo argomento invalido;

ELSE
WHILE(arg1!=0)
arg1 -=1;
s +=1;
WHILE(arg2!=0)
arg2 -=1;
s +=1;
PRINT s;


-
e mi si blocca così..........il trattino in fondo è dovrebbe essere il segno del mouse ma nn lampeggia.....e nn mi permette di scrivere più niente........nn capisco che errore è..............aiutatemi perfavore.........sto inpazzendo:wall:


Posted by Vikyg13 on 12-02-2006 19:22:

E' un errore di loop cioè qlke ciclo nn finisce mai, controlla iterazione.

Quando succede premi ctrl+c ed esce


Posted by ad676556 on 13-02-2006 09:19:

ok.....verificherò............e speriamo che riesca a risolvere questo problema.......


Posted by ad676556 on 13-02-2006 12:33:

nn sto riuscendo a risolvere il problema del loop...........aiutatemi :(
vi metto a video il codice di decrementa:

if (this.decremento>0) {

Integer dato= (Integer) (memoria.get(variabile));
int datoInt = dato.intValue();
int newVal=datoInt- decremento;
....


Intervento del moderatore:
Un po troppo codice. limitare le pubblicazioni


All times are GMT. The time now is 13:34.
Show all 63 posts from this thread on one page

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