Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
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


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
PlayStation Portal con display OLED: Son...
POCO X8 Pro e Pro Max sono quasi pronti:...
OpenAI ha bisogno di nuovi fondi: NVIDIA...
Mese nuovo, rinnovo delle offerte Amazon...
Accessori auto imperdibili su Amazon: pu...
Gli utenti iPhone possono ridurre la pr...
Come fare affari con l'usato garantito d...
Il miglior tablet di tutta Amazon, DOOGE...
Gli smartphone in super offerta su Amazo...
Produttori di memoria più severi ...
WhatsApp Business, Meta introduce costi ...
SpaceX vuole portare nello Spazio 1 mili...
Realme 16: il nuovo mid-range che si isp...
DAZN lancia il piano Full Mobile a 19,99...
Samsung Galaxy S26, ormai è tutto...
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: 13:48.


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