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
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); }

Rispondi quotando