Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le novità MSI del 2026 per i videogiocatori
Le novità MSI del 2026 per i videogiocatori
Con le nuove soluzioni della serie MEG, acronimo di MSI Enthusiast Gaming, l'azienda taiwanese vuole proporre per il 2026 una gamma di proposte desktop che si rivolgono direttamente all'utente più appassionato con schede madri, chassis e sistemi di raffreddamento. Non da ultimi troviamo anche gli alimentatori, che abbinano potenza a ricerca della massima sicurezza di funzionamento.
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers
MSI continua ad investire nel proporre schermi pensati per rispondere alle esigenze dei videogiocatori, utilizzando la quinta generazione di tecnologia QD-OLED sviluppata da Samsung. Il modello MPG 341CQR QD-OLED X36 è lpultima novità al debutto in concomitanza con il CES 2026, uno schermo curvo di ampia risoluzione pensato per i videogiocatori più esigenti
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-07-2004, 12:11   #1
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
[java] altro problema stupido

class es78 {
public static void main(String []args) {

int i;
double[] a=new double[10];

for (i=0; i<=a.length-1; i++)
a[i]= Leggi.unDouble();
System.out.println(a[i]);
}
}


con questo prpgrama con javac nn mi da errore ma eseguendolo. dopo aver iserito i valori mi da questo errore:


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at es78.main(es78.java:9)


__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 12:16   #2
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
ma le parentesi del for?? metticele e funzia tutto :P


Codice:
class es78 { 
public static void main(String []args) { 

int i; 
double[] a=new double[10]; 

for (i=0; i<=a.length-1; i++) {
a[i]= Leggi.unDouble(); 
System.out.println(a[i]); 
}
} 
}
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 12:20   #3
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
gia provato!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 12:22   #4
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
forsenn mi sono spiefato bene....devo prima inserirli tutti e poi stamparli tutti...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 14:04   #5
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 14:07   #6
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
il codice qui sotto funzia alla perfezione. Anche quello che ti ho postato prima funzionava benissimo. L'unico errore puo' essere in Leggi.unDouble(); che non fa il suo dovere tutto qui.
al limite posta la classe Leggi... ciao


Codice:
class es78 { 
public static void main(String []args) { 

int i; 
double[] a=new double[10]; 

for (i=0; i<a.length; i++) {
a[i] = Leggi.unDouble();
}

for(int k=0;k<a.length;k++){
System.out.println(a[k]); 
}
} 
}
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 14:36   #7
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Nel codice postato inizialmente da michelev83 il problema è nella linea

System.out.println(a[i]);

Il ciclo for infatti aumenta il valore di "i" partendo a 0 e arriva fino a 10.

Quando arriva a 10 la condizione del ciclo (i <= a.length -1) risulta "false" e il ciclo viene interrotto con i che vale 10.

La linea successiva al blocco for richiede l'accesso all'elemento di indice i ( = 10) di un array che ha 10 elementi (indice max = 9) e frappete, va tutto a schifio.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 14:41   #8
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
si e qual e la solozione

grazie!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 15:03   #9
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
questo e il testo dell esercizio

Scrivete un programma che legge in input 10 valori di tipo double, li memorizza in un array e li visualizza. Usate il ciclo for e il ".length".
Modificate il programma usando il while invece del for.
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 16:02   #10
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Il secondo post di mazza2 mi sembra corrispondere alla soluzione dell'esercizio (in versione for). Il primo ciclo legge, il secondo stampa.

Tenendo conto che il while è un for senza inizializzazione ed incremento, che l'inizializzazione deve essere fatta una sola volta, prima del primo uso e l'incremento dopo la verifica, una volta per ogni passaggio nel ciclo, dovresti risolvere con poche modifiche anche la richiesta di usare while al posto di for.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 16:20   #11
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
grazie ora prvo ! nn avevo notato quel post!

coem farei senza di voi !
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 11:08   #12
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
Scrivete un programma che legge in input 10 valori di tipo double, li memorizza in un array e li visualizza in ordine invertito (dall'ultimo al primo).

Scrivete un programma che ha lo stesso effetto del precedente, ma i valori vanno memorizzati nell'array a partire dall'ultima posizione (e visualizzati sempre in ordine invertito dall'ultimo letto al primo).


come si fannoo

nn hocapito niente dei for anndati
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 11:27   #13
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Stando al testo non devi usare dei cicli annidati (un ciclo dichiarato all'interno del corpo di un altro ciclo), semmai usi due cicli in successione (uno per leggere e memorizzare, uno per stampare). Si tratta in buona sostanza di un esercizio sugli indici degli array.

dichiari e inizializzi un array di 10 double;
for(int i = 0; i < 10;i++) -> leggi un double e lo infili nell'array in posizione i;
//un altro for, non annidato
for(int i = 9; i >= 0; i--) -> stampa a video array[i];

Il secondo è identico, solo che il primo ciclo deve comportarsi come l'ultimo (cioè andare da 9 a 0 incluso).

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 11:33   #14
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
si sto capendo! grasie!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 11:40   #15
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Non ho capito se la risposta sia sarcastica o se tu stia capendo davvero.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 13:12   #16
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
no no sto capendo davvero! davvero graziwe!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 13:44   #17
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
altro probelmino devo fare un rpgrammino che dice se due array char sono uguali
class es711{

public static void main(String[]ags){
int i;
int k;
int j;
System.out.println("inserisci dimesione array");
i= Leggi.unInt();
char[] a= new char[i];
char[] b= new char [i];
System.out.println("inserisci array 1");
for (k=0; k<=a.length-1; k++)
a[k]= (char) Leggi.unChar();
System.out.println("inserisci array 2");
for (j=0; j<=a.length-1; j++)
b[j]= (char) Leggi.unChar();

if ((a[k])==(b[j]))
System.out.println("uguali");
else
System.out.println("diversi");


}
}


ecco al javac mi da che e esatto quando lo eseguo inserisco gli array e dopo mi da l erroee

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at es711.main(es711.java:18)


grazie di nuovo a tutti quelli che mi aiutano
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 14:33   #18
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Nelle espressioni di accesso agli elementi di un array Java la validità dell'indice è valutata a tempo di esecuzione. Potresti scrivere array[-1000] e javac non farebbe una piega.

Il problema è qui.

if ((a[k])==(b[j]))

Quando termina il ciclo k vale a.length, ma l'indice massimo di un array è array.length - 1. Lo stesso per j.

Non so perchè ma hai il vizietto di riciclare gli indici dei cicli .

In condizioni normali (quindi, salvo speciali esigenze, che qui non ci sono) un for include dichiarazione ed inizializzazione dell'indice (nel tuo codice dichiari l'indice all'esterno, lo inizializzi nel for e poi lo ricicli nell'istruzione che ho riportato sopra). Dovresti seguire la forma standard che tra l'altro migliora la leggibilità.
Codice:
for(int k = 0; k < a.length; k++) {
        ecc. ecc.
}
Dovendo poi verificare che gli array a e b contengano gli stessi elementi, dovresti controllarli elemento per elemento. Di vuole un altro ciclo. a e b hanno la stessa lunghezza, quindi:

for(da 0 ad a.length -1) -> se a[i] è diverso da b[i] -> gli array non contengono gli stessi elementi -> esci dal ciclo (basta un elemento diverso a rendere diversi gli array).

Per sapere, una volta terminato il ciclo, se la serie di confronti abbia dato esito positivo o negativo dovresti usare un valore di controllo che inizializzi prima di entrare nel ciclo. Ad esempio:

boolean sonoUguali = true;
for(...) se a[i] è diverso da b[i] -> sonoUguali = false -> break;

terminato il ciclo se "sonoUguali" è "true" allora il ciclo si è "estinto" naturalmente, quindi tutti gli elementi sono uguali.

se vale "false" è perchè, incontrando un elemento diverso, ha eseguito la tua istruzione condizionale che diceva "se incontri due elementi diversi imposta sonoUguali a false ed esci".

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 19:31   #19
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
questonn ho capito molto...

mo lo rileggo uan decian di volte...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 19:40   #20
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
[quote]Originariamente inviato da PGI

Quando termina il ciclo k vale a.length, ma l'indice massimo di un array è array.length - 1. Lo stesso per j.

Non so perchè ma hai il vizietto di riciclare gli indici dei cicli .

In condizioni normali (quindi, salvo speciali esigenze, che qui non ci sono) un for include dichiarazione ed inizializzazione dell'indice (nel tuo codice dichiari l'indice all'esterno, lo inizializzi nel for e poi lo ricicli nell'istruzione che ho riportato sopra). Dovresti seguire la forma standard che tra l'altro migliora la leggibilità.
Codice:
for(int k = 0; k < a.length; k++) {
        ecc. ecc.
}
ok fin qua ho cpaito...e cheil prof c diceva di usare cosi perhce epiu capible...vabbe le robe che n capisco io son altre ma lui le da per scontate...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
La gamma XPS di Dell si rinnova completa...
HyperX OMEN: ufficiali 3 nuovi laptop, 4...
HP presenta al CES 2026 la nuova gamma d...
Nuova Audi A2 e-tron: la compatta elettr...
Anche a Roma arriva la Zona 30: limite d...
Motorola sfida il mercato premium: in ar...
Snapdragon X2 Elite Extreme: Qualcomm ut...
Il pedaggio in autostrada ora costa di p...
ARC Raiders: svelati alcuni dettagli sul...
Assassin's Creed Codename Hexe affidato ...
A volte ritornano: al CES 2026 il nuovo ...
ricarica 67 W e 8 GB di RAM: questo real...
Il finale di Stranger Things vi ha delus...
La manovra conferma il Bonus Mobili per ...
Starfield rinasce come RPG di Star Wars:...
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: 04:39.


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