Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2008, 14:30   #1
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
[LOGICA BOOLEANA] IMPORTANTE Non mi tornano i conti

Allora.. o io sono stupido........ o veramente qualcosa non torna.....
Se io uso questo enunciato:
Codice:
do {
      first = (int) (Math.random() * dim.getWidth()) - (2 * raggio);
      second = (int) (Math.random() * dim.getWidth()) - (2 * raggio);
      System.out.println("Primo: " + first);
      System.out.println("secondo: " + second);
 } while (first == 1 && second == 1);
Come dovrebbe funzionare?

In teoria esce dal do-while quando entrambi i valori sono uguali a 1...
Esatto?

In realtà mi calcola questi:
Codice:
Primo: -40
secondo: -40

Primo: 214
secondo: 508

Primo: 149
secondo: 424

Primo: 129
secondo: 233

...
NB: Comunque il codice postato è in java.
dim.getWidth() restituisce 600
2*Raggio restituisce 40
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80

Ultima modifica di jj.69kt : 26-06-2008 alle 14:36.
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 14:38   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da jj.69kt Guarda i messaggi
In teoria esce dal do-while quando entrambi i valori sono uguali a 1...
Esatto?
Sbagliato, fa esattamente il contrario.
Esegue una prima volta il blocco di codice specificato tra parentesi dopo il "do" per poi verificare che l'espressione contenuta nel "while" sia TRUE.
Se è TRUE allora esegue nuovamente il blocco "do" altrimenti esce dal ciclo.

Ne tuo caso esce subito (dopo un'esecuzione).
Forse volevi usare l'operatore booleano "!=", non "==" dentro il while.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 14:42   #3
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Forse dovrebbe fare così.... Ma se io metto in questo modo:
Codice:
do {
      first = (int) (Math.random() * dim.getWidth()) - (2 * raggio);
      second = (int) (Math.random() * dim.getWidth()) - (2 * raggio);
      System.out.println("Primo: " + first);
      System.out.println("secondo: " + second);
      System.out.println();
 } while (first != 1 && second != 1)
Ecco il risultato:
Codice:
Primo: -40
secondo: -40
Primo: -40
secondo: -40
Primo: -40
secondo: -40
Primo: -40
secondo: -40
Primo: -40
secondo: -40
Primo: -40
secondo: -40
E questo all'infinito ovviamente..
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 14:46   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Scusa,
allora temo di non aver capito che cosa cerchi di ottenere in quel blocco di codice.
Puoi spiegarmi?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 14:56   #5
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Ciò che volevo fare è semplice.
Far calcolare due numeri random maggiori di 0.

Il codice che ho scritto sopra era uno degli esperimenti di disperazione..

Codice:
  do {
         double firstTemp = (Math.random() * dim.getWidth()) - (2 * raggio);
         first = (int) firstTemp;
         double secondTemp = (Math.random() * dim.getWidth()) - (2 * raggio);
         second = (int) secondTemp;           
         System.out.println("Primo: " + first);
         System.out.println("secondo: " + second);
       } while (first >= 1 && second >= 1);
Questo è quello che sto testando in questo momento..

Secondo la mia logica dovrebbe:
  1. Eseguire il campo "do"
  2. Verificare se la condizione è esatta. (Ovvero entrambi i numeri MAGGIORI-UGAULI a 1)
  3. Se è soddifatta esce e fine
  4. Altrimenti riccalcola....

Ciò che mi mette in crisi è che calcoli sempre "-40" se uso "!="....... O_O
AIUTAMIII!!!
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 15:26   #6
andrew1988
Member
 
L'Avatar di andrew1988
 
Iscritto dal: May 2005
Città: Modena
Messaggi: 276
ma che strano.. anche io l'ho implemenato e da gli stessi problemi... mmmmhh...
__________________
andrew
andrew1988 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 15:31   #7
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
la motivazione per cui ti ritorna sempre -40 è semplice:
perchè il dim.getWidth() ti ritorna 0
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 15:41   #8
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Quote:
Originariamente inviato da smart83 Guarda i messaggi
la motivazione per cui ti ritorna sempre -40 è semplice:
perchè il dim.getWidth() ti ritorna 0
per logica quel che dici è giusto....
Ma sai spiegarmi perché?
Poichè il dim.getWidth() in tutto il resto del programma funziona....
E *sembrerebbe* non funzionare SOLO se metto un "not"......
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 15:43   #9
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
curiosità,ma che cos'è dim?e come l'hai settato?
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:00   #10
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
ti spiego la mia curiosità:
se hai usato un container allora il problema è come l'hai settato(se hai hai usato setPreferredSize oppure setSize).
se invece hai usato una semplice dimension allora nn so che dirti perchè a me funziona
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:01   #11
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Quote:
NB: Comunque il codice postato è in java.
dim.getWidth() restituisce 600
2*Raggio restituisce 40
Mi quoto da solo...

Comunqe dim è un JFrame.....
cosa intendi con "come è settato??"

EDIT:
Le dimensioni funzionano di sicuro....
Xke uso dim.getWidth() per altre cose e quelle funzionano.. :P
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:06   #12
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
beh,allora usando dim.setSize(...) dovrebbe funzionare.o perlomeno a me funziona.se poi usi setPreferredSize(...) mi da il tuo stesso risultato cioè -40 all'infinito
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:19   #13
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Beh, purtroppo a me no...
Altrimenti come mi spieghi questi valori di uscita:

Codice:
a)
Primo: 246
secondo: -22

b)
Primo: 554
secondo: -10

c)
//questo va bene.. :P
Primo: 0
secondo: 496


Eccoti per esempio il while completo:
Codice:
Entrato...

Primo: 5
secondo: 99
Primo: 93
secondo: 419
Primo: 503
secondo: 457
Primo: 503
secondo: 233
Primo: 538
secondo: 439
Primo: 435
secondo: 31
Primo: 18
secondo: 99
Primo: 507
secondo: 192
Primo: 349
secondo: 275
Primo: 250
secondo: 327
Primo: 361
secondo: 475
Primo: 540
secondo: 258
Primo: 396
secondo: 431
Primo: 246
secondo: -22

Uscito dal while
Come vedi non ha molto senso..
Con "while (first >= 1 && second >= 1)".........
Doveva uscire già al primo passaggio... poichè:
(5 >= 1 && 5 >= 1)
(5 > 1 && 5 > 1)
(true && true)
(true)
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80

Ultima modifica di jj.69kt : 26-06-2008 alle 16:23.
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:26   #14
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
in qst caso il tuo problema qual'è?che escono numeri negativi?beh,mi pare ovvio che se usi "!=" significa diverso da 1,cioè minore o maggiore di 1(quindi anche numeri negativi).se nn vuoi numeri negativi non povrai usare il "!=" ma il maggiore uguale.sempre se è qst qllo che mi hai chiesto,altrimenti nn ho capito il problema :P
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:28   #15
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
ah,ora ho capito
qlla nel while nn è una condizione per uscire,ma restare nel ciclo.quindi se tu >= allora,ti resterà nel ciclo fino a qnd nn troverà dei valori negativi o pari a zero
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:29   #16
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Quote:
Originariamente inviato da smart83 Guarda i messaggi
in qst caso il tuo problema qual'è?che escono numeri negativi?beh,mi pare ovvio che se usi "!=" significa diverso da 1,cioè minore o maggiore di 1(quindi anche numeri negativi).se nn vuoi numeri negativi non povrai usare il "!=" ma il maggiore uguale.sempre se è qst qllo che mi hai chiesto,altrimenti nn ho capito il problema :P
hem.... leggi il post per intero.......

e comunque.. anche se fosse:
while (first >= 1 && second >= 1)

sarebbe dovuto uscire al primo tentativo....

poichè:
while (99 != 1 && 5 != 1)
while (true && true)
while (true)
!!!!!!!



EDIT:
Ok, ma allora se io dico:
while (!(primo >= 1) && !(primo == 1))

questi valori non hanno senso:
Codice:
Primo: 26
secondo: -8

Primo: 168
secondo: -6
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80

Ultima modifica di jj.69kt : 26-06-2008 alle 16:36.
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:31   #17
smart83
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 17
Quote:
Originariamente inviato da smart83 Guarda i messaggi
ah,ora ho capito
qlla nel while nn è una condizione per uscire,ma restare nel ciclo.quindi se tu >= allora,ti resterà nel ciclo fino a qnd nn troverà dei valori negativi o pari a zero
ti avevo risp già appena ho capito di nn aver letto tutta la tua risposta :P
smart83 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:31   #18
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Una possibile risposta e' che
Math.Random restituisce un double tra 0 e 0.9999999999
mentre dim.getWidth() restituisce un intero
e c'e' un bel cast implicito non segnalato dal compilatore Java (o forse si' e non l'hai letto) che trasforma il double in intero prima di moltiplicare i valori.
quindi sempre zero.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:39   #19
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Co questo codice:
Codice:
do {
     double firstTemp = (Math.random() * dim.getWidth()) - (2 * raggio);
     first = (int) firstTemp;
     double secondTemp = (Math.random() * dim.getWidth()) - (2 * raggio);
     second = (int) secondTemp;
                    
     System.out.println("Primo: " + first);
     System.out.println("secondo: " + second);
    } while (!(first >= 1) && !(second >= 1));
E con queste impostazioni esce dal ciclo con questi valori:
Codice:
a)
Primo: -11
secondo: 367
b)
Primo: 168
secondo: -6
c) //va *per caso* anche bene
Primo: 67
secondo: 91
d)
Primo: 26
secondo: -8

ecc.....

Io proprio non me lo spiego.. ç__ç
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2008, 16:40   #20
jj.69kt
Senior Member
 
L'Avatar di jj.69kt
 
Iscritto dal: Oct 2007
Messaggi: 677
Quote:
Originariamente inviato da smart83 Guarda i messaggi
ti avevo risp già appena ho capito di nn aver letto tutta la tua risposta :P
si ho letto dopo e ho modificato la mia risp di sopra. :P
__________________

Desktop: (In Vendita) iMac (12,2) 27" --> i5 QaudCore 2,7GHz, 8GB RAM, 1TB HDD..
Laptop (In Pensione): MacBook PRO (3,1) 15.4" (Glossy, ma pentito) --> 2.2Ghz, 4GB Ram..
Camera: Nikon D80 with Nikkor 18-55mm 1:3-5.6 GII + Nikkor 55-200mm 1:4-5.6 VR
"Mobile":iPhone 5 64Gb
MyEbay: 100%! • Mercatino (Green = Good; Red = Bad) UncleSam, Boxi80, Zuckerbaer, lamerone, danidj, maxmax80
jj.69kt è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
ASUS ha lanciato il suo primo Mini PC co...
HillMiles MileCity1 torna disponibile a ...
Nel 2028 sarà lanciata la mission...
Un materiale rigido come pochi, ma isola...
Intel: fine delle ricompense fino a 100....
Un problema alle turbopompe potrebbe ral...
Jensen Huang, NVIDIA: 'Nel 2030 non fini...
PC rincondizionato Lenovo ThinkStation a...
Il Neural Rendering di DLSS 5 gira (male...
AMD Radeon RX 9050 4GB, ecco quanto perd...
Factorio è certificato Steam Frame: la b...
TECLAST ArtPad è attualmente il m...
Bose aggiorna la sua gamma con due nuovi...
ID. Buzz, 100.000 km intorno al mondo se...
OpenAI: due computer isolati si parlano ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v