Bonjour,

Toujours mes problèmes de climat.
J'ai écrit un programme que je n'ai pas su raccourcir pour vous le présenter.
Il a un probleme de ArrauOutOfBoundsException ligne 81 et 96 à l'execution
pourtant tout à l'air d'aller bien
Je vous présente le code
à l'execution il demande un fichier, moi je lui donne un fichier .prn d'une centaine de ligne de 20 chiffres, ici il ne travaille que sur les 31 premières lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
 
import java.util.*;
import java.io.*;	 
 
 
class Plage
	{
	File fic;
	int nbtemp1;
	int nbtemp2;//definiront les périodes de relevés 
	int [][]tab1=new int[nbtemp2][60];//resultats par températures
	int [][]tabl=new int[nbtemp2][20];//ma présentation (20 villes)
	Plage(int nbftemp1,int nbftemp2)//définit la période d'observation
		{
		nbtemp1=nbftemp1;
		nbtemp2=nbftemp2;//constructeur je donnne 0ànbftemps
			}
		int gettab1(int i,int j)
			{
			return(tab1[i][j]);
			}
		int gettabl(int i,int j)
			{
			return(tabl[i][j]);
			}
		int getnbtemp2()
			{
			return nbtemp2;
			}
	void add1()//calcul la fréquence cumulées des températures
			{
			tabl=new int[nbtemp2][20];
			int nblu=1-1;
			try
			{
			System.out.println("quel fichier ?");
			Scanner s = new Scanner(System.in);
			String fichier = s.nextLine();
			fic =new File(fichier);
			BufferedReader entree = new BufferedReader(new FileReader(fic));
			String ligne;
			try
			{
			while(nblu<nbtemp2)
				{
				ligne = entree.readLine();
				if(ligne==null) break;
				StringTokenizer tk = new StringTokenizer(ligne);
				int nt = tk.countTokens();
				int i=0;
				while(tk.hasMoreTokens() )
					{
					tabl[nblu][i]=Integer.parseInt(tk.nextToken());
					i++;
					}
				nblu++;
				}
 
				entree.close();	
 
			}
			catch(java.io.IOException e2){System.out.println(" essaye d'acceder au E/S"); }
			}
			catch(FileNotFoundException e1){System.out.println(" essaye d'acceder au fichier"); }
 
			}
 
		void frequence1()
			{
			add1();
 
					for(int i=0;i<nbtemp2;i++)
						{
						for(int j=0;j<20;j++)
							{
							for(int j1=0;j1<70;j1++)
								{
								if(j1+1==tabl[i][j])
									tab1[i][j1+1]++;
 
								}
							}
						}
 
			}}
 
 
public class Frequenceessaiclim 
	{
	public static void main(String args[])
		{
 
		Plage premier = new Plage(0,31);//je choisit les 31 //derniers jours d'observation (c'est un essai)
		premier.frequence1();
		int ta=premier.getnbtemp2();//c'était tentatives de debug 
			System.out.print(ta);//idem
			for(int i=0;i<ta;i++)//je garde la variable stupide issue du debug, çà change rien
			{
				for(int j=0; j<60;j++)
				{
				int b=premier.gettab1(i,j);
				System.out.print(b+"*");
				}
			System.out.println();
			}
		}
 	}
j'ai fait des test, changer le nom des variables, du fichiers il semble que c'est dans frequence1 que le i ne veut pas avancer (au dela de 3) !


Pouvez vous m'aider

merci beaucoup

Philippe