ciao ragazzi! sto creando un algoritmo per la gestione di array paralleli di azioni finanziarie, con le loro quotazioni max e min. una volta inseriti i dati delle azioni (nome, quotazione max, quotazione min), dovrei al "case 4" trovare lo quotazione media globale degli scostamenti. il problema è che quando l'ho testato mi è venuto questo errore "java.lang.arrayindexoutofboundsexception"..mi sembra di capire che sia qualcosa relativo agli indici, ma non riesco capire di più!
qualcuno mi darebbe una mano? grazie tante!!!
vi metto il codice
qualcuno mi darebbe una mano? grazie tante!!!
vi metto il codice
Codice:
public static void main(String[] args) {
final int
DIM_ARRAY=2;
double []
quotazioneMaxAzioni, quotazioneMinAzioni;
String []
nomiAzioni;
String
nomeAzioneDaCercare;
boolean
insOK;
double
mediaScostamenti,sommaMax, sommaMin;
int
i,
posizioneAzione,
opzione;
insOK=false;
quotazioneMaxAzioni=new double[DIM_ARRAY];
quotazioneMinAzioni=new double[DIM_ARRAY];
nomiAzioni=new String[DIM_ARRAY];
do{
Scrittore.video.println("---------------------");
Scrittore.video.println("1* Inserimento dati");
Scrittore.video.println("2* Visualizzazione dati");
Scrittore.video.println("3* Dati singola Azione");
Scrittore.video.println("4* Quotazione media globale degli scostamenti <Max-Min>");
Scrittore.video.println("5* Azione con scostamento Max-Min maggiore");
Scrittore.video.println("0* USCITA");
Scrittore.video.println("---------------------");
opzione=Lettore.tastiera.leggiInt();
switch(opzione){
case 1:
for(i=0;i<DIM_ARRAY;i++){
Scrittore.video.println("Inserire nome azione "+i);
nomiAzioni[i]=Lettore.tastiera.leggiString();
Scrittore.video.println("Inserire quotazione Max "+nomiAzioni[i]);
quotazioneMaxAzioni[i]=Lettore.tastiera.leggiDouble();
Scrittore.video.println("Inserire quotazione Min "+nomiAzioni[i]);
quotazioneMinAzioni[i]=Lettore.tastiera.leggiDouble();
}
insOK=true;
break;
case 2:
if(insOK==true){
for(i=0;i<DIM_ARRAY;i++)
Scrittore.video.println(nomiAzioni[i]+" Max:"+quotazioneMaxAzioni[i]+" Min:"+quotazioneMinAzioni[i]);
}
else
Scrittore.video.println("Inserimento non effettuato");
break;
case 3:
if(insOK==true){
Scrittore.video.println("Inserire nome azione da cercare");
nomeAzioneDaCercare=Lettore.tastiera.leggiString();
posizioneAzione=-1;
for(i=0;i<DIM_ARRAY;i++)
if(nomeAzioneDaCercare.equals(nomiAzioni[i]))
posizioneAzione=i;
if(posizioneAzione==-1)
Scrittore.video.println("Azione non presente in elenco");
else
Scrittore.video.println("Azione:"+nomiAzioni[posizioneAzione]+
" Max:"+quotazioneMaxAzioni[posizioneAzione]+
" Min:"+quotazioneMinAzioni[posizioneAzione]);
}
else
Scrittore.video.println("Inserimento non effettuato");
break;
case 4:
if(insOK==true){
sommaMax=0;
sommaMin=0;
for(i=0;i<DIM_ARRAY;i++)
sommaMax=sommaMax+quotazioneMaxAzioni[i];
sommaMin=sommaMin+quotazioneMinAzioni[i];
mediaScostamenti=(sommaMax-sommaMin)/(float)DIM_ARRAY;
Scrittore.video.println("Media scostamenti "+mediaScostamenti);
}
else
Scrittore.video.println("Inserimento non effettuato");
break;
}
}while(opzione!=0);
}