A voir également:
- Exeption en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Waptrick jeux pes 2016 java - Forum logiciel systeme
4 réponses
Il faut que tu corriges la ligne :
for (int i = 1; i <= indice.size(); i++)
par
for (int i = 1; i <= m1.size(); i++)
for (int i = 1; i <= indice.size(); i++)
par
for (int i = 1; i <= m1.size(); i++)
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
13 janv. 2012 à 10:20
13 janv. 2012 à 10:20
Bonjour,
Voici ce que tu fais:
- Tu ouvres un document marwa.txt situe dans C:/, jusqu'ici tout va bien
- Tu commences donc a le lire ligne par ligne.
Ce qui est ennuyeux, c'est ce que tu en fait de cette ligne:
En effet, si on regarde le code de lire_doc(String lex), on voit ceci:
Ici ce que tu fais tu essayes d'ouvrir le fichier qui se situe a l'emplacement lex.
Ta premiere ligne de ton fichier etant "5 1 2 6 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1 "
Ce n'est evidemment pas un chemin correct.
D'ou l'exception "(Le fichier spécifié est introuvable)"
Voici ce que tu fais:
- Tu ouvres un document marwa.txt situe dans C:/, jusqu'ici tout va bien
- Tu commences donc a le lire ligne par ligne.
Ce qui est ennuyeux, c'est ce que tu en fait de cette ligne:
m1=lire_doc(line);
En effet, si on regarde le code de lire_doc(String lex), on voit ceci:
InputStream ips = new FileInputStream (lex);
Ici ce que tu fais tu essayes d'ouvrir le fichier qui se situe a l'emplacement lex.
Ta premiere ligne de ton fichier etant "5 1 2 6 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1 "
Ce n'est evidemment pas un chemin correct.
D'ou l'exception "(Le fichier spécifié est introuvable)"
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 13/01/2012 à 12:11
Modifié par matthoffman le 13/01/2012 à 12:11
Voici le code
public class heuristique1 { //lire un fichier line par line .. public static void affiche(String fichier) { String filePath = "C:\\" + fichier + ".txt"; ArrayList<List<String>> matrix = new ArrayList<List<String>>(); try{ // Création du flux bufférisé sur un FileReader, immédiatement suivi par un // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader // est correctement instancié (évite les NullPointerException) BufferedReader buff = new BufferedReader(new FileReader(filePath)); try { String line; // Lecture du fichier ligne par ligne. Cette boucle se termine // quand la méthode retourne la valeur null. while ((line = buff.readLine()) != null) { String[] nbs = line.split(" "); matrix.add(Arrays.asList(nbs)); } //afficher les tableau for (List<String> tab : matrix){ System.out.println(tab); } } finally { // dans tous les cas, on ferme nos flux buff.close(); } } catch (IOException ioe) { // erreur de fermeture des flux System.out.println("Erreur --" + ioe.toString()); } } public static void main(String[] arg) throws IOException{ affiche("marwa"); } }
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
13 janv. 2012 à 13:02
13 janv. 2012 à 13:02
Alors, matrix, est une liste contenant tes tableaux de nombres.
De la meme maniere que tu avais fait, on ouvre le fichier voulu, on lit ligne par ligne.
A chaque ligne qui est lue, on utilise la fonction "split" qui va separer tous les mots trouves dans cette ligne (car dans la fonction split on a precise que le separateur est un espace).
Cette fonction split renvoie un tableau, ou chaque element sera donc un mot (dans ton cas, chaque element sera un nombre).
On convertit ensuite ce tableau en liste de maniere a la mettre dans la liste matrix.
Enfin pour afficher le tableau, il s'agit ici d'un for each, c'est a dire que "pour tous les elements (dans matrix 1 element = 1 tableau) de matrix", on affiche l'element (donc un tableau correspondant a une ligne de ton fichier) sur la sortie standard.
Voila, en esperant t'avoir eclaire :). S'il y a d'autres choses que tu n'as pas saisi n'hesite pas.
De la meme maniere que tu avais fait, on ouvre le fichier voulu, on lit ligne par ligne.
A chaque ligne qui est lue, on utilise la fonction "split" qui va separer tous les mots trouves dans cette ligne (car dans la fonction split on a precise que le separateur est un espace).
Cette fonction split renvoie un tableau, ou chaque element sera donc un mot (dans ton cas, chaque element sera un nombre).
On convertit ensuite ce tableau en liste de maniere a la mettre dans la liste matrix.
Enfin pour afficher le tableau, il s'agit ici d'un for each, c'est a dire que "pour tous les elements (dans matrix 1 element = 1 tableau) de matrix", on affiche l'element (donc un tableau correspondant a une ligne de ton fichier) sur la sortie standard.
Voila, en esperant t'avoir eclaire :). S'il y a d'autres choses que tu n'as pas saisi n'hesite pas.
merci
alors le matrice contient de entier (int) ??
svp si je veux parcourir ce matrice et chaque ligne de ce matrix je veux le transformer en matrice
par exemple
le fichier est le suivant :
5 1 2 6 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1 //line de matrix je le transforme en matrice2
5 1 2 6 2 3 4 6 2 3 6 5 2 6 1 1 3 3 4 2 6 6 6 2 1 1 5 5 //line de matrix je le transforme en matrice2
le premier element est 5 alors ce matrice contient 5 colonne le nombre de ligne est fixé 6
puis le deuxième élément est est 1 alors pour le colonne 1 de matrice2 on à une seul valeur alors le troisieme et le quatrieme element corespond à matrice[2]=6 pour premier colonne
il nous reste dans la 1er ligne 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1
1 corespond le nombre d element dans la deusieme colonne puis en pase matrice[3]=1
il nous reste 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1: 1 est le nombre de elemnt pour le colonne 3 puis matrice[1]=2
il nous reste 2 2 6 4 6 3 6 5 2 6 1 1 : alors 2 le nombre de element pour le colonne 4 puis matrice[2]=6,matrice[4]=6
par exemple pour le ligne 1 en obtient le matrice suivant
le premier ligne :
1/ - - 2 - 1
2/ 6 - - 6 6
3/ - 1 - - -
4/ - - - 6 -
5/ - - - - -
6/ - - - - 5
svp aide moi j ai un meni projet et je suis bloqué
alors le matrice contient de entier (int) ??
svp si je veux parcourir ce matrice et chaque ligne de ce matrix je veux le transformer en matrice
par exemple
le fichier est le suivant :
5 1 2 6 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1 //line de matrix je le transforme en matrice2
5 1 2 6 2 3 4 6 2 3 6 5 2 6 1 1 3 3 4 2 6 6 6 2 1 1 5 5 //line de matrix je le transforme en matrice2
le premier element est 5 alors ce matrice contient 5 colonne le nombre de ligne est fixé 6
puis le deuxième élément est est 1 alors pour le colonne 1 de matrice2 on à une seul valeur alors le troisieme et le quatrieme element corespond à matrice[2]=6 pour premier colonne
il nous reste dans la 1er ligne 1 3 1 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1
1 corespond le nombre d element dans la deusieme colonne puis en pase matrice[3]=1
il nous reste 1 1 2 2 2 6 4 6 3 6 5 2 6 1 1: 1 est le nombre de elemnt pour le colonne 3 puis matrice[1]=2
il nous reste 2 2 6 4 6 3 6 5 2 6 1 1 : alors 2 le nombre de element pour le colonne 4 puis matrice[2]=6,matrice[4]=6
par exemple pour le ligne 1 en obtient le matrice suivant
le premier ligne :
1/ - - 2 - 1
2/ 6 - - 6 6
3/ - 1 - - -
4/ - - - 6 -
5/ - - - - -
6/ - - - - 5
svp aide moi j ai un meni projet et je suis bloqué
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
Modifié par matthoffman le 13/01/2012 à 15:23
Modifié par matthoffman le 13/01/2012 à 15:23
Comment tu veux que je le saches ??? C'est ton mini projet, c'est a toi de savoir si c'est correct.
De plus, tu n'as pas besoin de mettre ta matrice en argument, tu fais comme ceci:
Comme je te l'ai dit (mais tu as juste recopie mon commentaire sans apporter les modifications ...), si tu veux utiliser les chiffres dans le tableau, tu dois utiliser "Integer.parseInt", parce que sinon c'est des String que tu manipules ...
De plus, tu n'as pas besoin de mettre ta matrice en argument, tu fais comme ceci:
static void decode(List<String> tab) { String[] new_tab = (String[]) tab.toArray(); int n=6; String m=new_tab[0]; int f= Integer.parseInt(m); int[][] A = new int[n][Integer.parseInt(m)]; .... }
Comme je te l'ai dit (mais tu as juste recopie mon commentaire sans apporter les modifications ...), si tu veux utiliser les chiffres dans le tableau, tu dois utiliser "Integer.parseInt", parce que sinon c'est des String que tu manipules ...
il y a des erreur dans le code exeption
voila l erreur
run:
[5, 1, 2, 6, 1, 3, 1, 1, 1, 2, 2, 2, 6, 4, 6, 3, 6, 5, 2, 6, 1, 1]
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at javaapplication2.fichier.affiche(fichier.java:97)
at javaapplication2.fichier.main(fichier.java:116)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
je peux pas atteindre l objectif :'(
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication2; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.lang.String; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * * @author marwa */ public class fichier { void decode(List<String> tab, String[][] A) { String[] new_tab = (String[]) tab.toArray(); int n=6; String m=new_tab[0]; int f= Integer.parseInt(m); int indice[]=new int[10]; indice [0]=1; // tableau de indice for (int i=1;i<=f;i++){ int j =indice[i-1]; indice[i] =indice[i-1]+(2*Integer.parseInt(new_tab[j]))+1; } for (int j=0;j<f;j++){ System.out.println(indice[j]); } for(int i = 0; i < indice.length; i++){ for (int k=indice[i]+1;k<indice[i+1];k++) { System.out.println(new_tab[k] ); } } //pour le matrice qui est extraire de premier tableau String[][] A = new String[n][Integer.parseInt(m)]; for (int j=0;j<n;j++){ for (int g=indice[j]+1;g<indice[j+1];g=g+2){ A[g][j]=new_tab[g+1]; } } for (int nc =1;nc< f;nc++) { for (int nl=1;nl<n;nl++) { //System.out.println(A[nl][nc]); } } } //lire un fichier line par line .. public static void affiche(String fichier) { String filePath = "C:\\" + fichier + ".txt"; ArrayList<List<String>> matrix = new ArrayList<List<String>>(); try{ // Création du flux bufférisé sur un FileReader, immédiatement suivi par un // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader // est correctement instancié (évite les NullPointerException) BufferedReader buff = new BufferedReader(new FileReader(filePath)); try { String line; // Lecture du fichier ligne par ligne. Cette boucle se termine // quand la méthode retourne la valeur null. while ((line = buff.readLine()) != null) { String[] nbs = line.split(" "); matrix.add(Arrays.asList(nbs)); } //afficher les tableau for (List<String> tab : matrix){ System.out.println(tab); //appel de la methode decode decode( tab,A); } } finally { // dans tous les cas, on ferme nos flux buff.close(); } } catch (IOException ioe) { // erreur de fermeture des flux System.out.println("Erreur --" + ioe.toString()); } } // A chaque fois que tu veux recuper un element de new_tab, n'oublie pas de faire ceci: // int exemple = Integer.ParseInt(new_tab[0]); public static void main(String[] arg) throws IOException{ affiche("marwa"); } }
voila l erreur
run:
[5, 1, 2, 6, 1, 3, 1, 1, 1, 2, 2, 2, 6, 4, 6, 3, 6, 5, 2, 6, 1, 1]
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at javaapplication2.fichier.affiche(fichier.java:97)
at javaapplication2.fichier.main(fichier.java:116)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
je peux pas atteindre l objectif :'(
matthoffman
Messages postés
405
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
22 janvier 2013
47
13 janv. 2012 à 15:54
13 janv. 2012 à 15:54
Ba oui mais c'est normal !
Desole mais la vraiment on avance pas et tu fais n'importe quoi.
Arrete d'etre aussi pressee, et regarde ce que tu fais. Si tu codes sous eclipse ou netbeans (et j'espere que c'est le cas) deja tu saurais que ton code compile pas et pourquoi.
1) Je t'ai dit d'enlever l'argument A de ta fonction decode, car tu la declares en tant que variable dans ta fonction, donc tu n'as pas a te servir d'un argument supplementaire
2) Sais tu seulement vraiment ce que tu fais dans ton code et pourquoi ca fait ca ?
Je rappelle que le but du forum n'est pas qu'on te fasse tes devoirs. Je t'ai donne plein d'indications pour arriver a faire ton mini projet, ce qu'il te reste a faire est seulement d'ordre algorithmique et ca c'est en reflechissant par toi meme que tu trouveras, je ne vais pas t'ecrire ton programme, c'est a toi de le faire.
Enfin, tu sais on est pas payer a vous aider tu sais, nous aussi on a du travail, donc je ne peux pas te repondre toutes les 2 secondes
Desole mais la vraiment on avance pas et tu fais n'importe quoi.
Arrete d'etre aussi pressee, et regarde ce que tu fais. Si tu codes sous eclipse ou netbeans (et j'espere que c'est le cas) deja tu saurais que ton code compile pas et pourquoi.
1) Je t'ai dit d'enlever l'argument A de ta fonction decode, car tu la declares en tant que variable dans ta fonction, donc tu n'as pas a te servir d'un argument supplementaire
2) Sais tu seulement vraiment ce que tu fais dans ton code et pourquoi ca fait ca ?
Je rappelle que le but du forum n'est pas qu'on te fasse tes devoirs. Je t'ai donne plein d'indications pour arriver a faire ton mini projet, ce qu'il te reste a faire est seulement d'ordre algorithmique et ca c'est en reflechissant par toi meme que tu trouveras, je ne vais pas t'ecrire ton programme, c'est a toi de le faire.
Enfin, tu sais on est pas payer a vous aider tu sais, nous aussi on a du travail, donc je ne peux pas te repondre toutes les 2 secondes
svp ca presque ca marche
j ai un problème avec le matrice A que je veux le faire il ne m affiche rien et le tableau de indice je veux l ajouter à la fin la taille de new_tab et je veux que cette traveil ce fait sur chaque ligne de fichier
voici le code
j ai un problème avec le matrice A que je veux le faire il ne m affiche rien et le tableau de indice je veux l ajouter à la fin la taille de new_tab et je veux que cette traveil ce fait sur chaque ligne de fichier
voici le code
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication2; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.lang.String; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * * @author marwa */ public class fichier { public static void decode(List<String> tab) { String[] new_tab = (String[]) tab.toArray(); int n=6; String m=new_tab[0]; int f= Integer.parseInt(m); int indice[]=new int[10]; indice [0]=1; // tableau de indice for (int i=1;i<=f;i++){ int j =indice[i-1]; indice[i] =indice[i-1]+(2*Integer.parseInt(new_tab[j]))+1; } for (int j=0;j<f;j++){ System.out.println(indice[j]); } for(int i = 0; i < indice.length; i++){ for (int k=indice[i]+1;k<indice[i+1];k++) { System.out.println(new_tab[k] ); } } //pour le matrice qui est extraire de premier tableau int a=Integer.parseInt(m); int[][] A = new int[n][a]; for (int j=0;j<n;j++){ for (int g=indice[j]+1;g<indice[j+1];g=g+2){ A[g][j]=Integer.parseInt(new_tab[g+1]); } } for (int nc =1;nc< f;nc++) { for (int nl=1;nl<n;nl++) { System.out.println(A[nl][nc]); } } } //lire un fichier line par line .. public static void affiche(String fichier) { String filePath = "C:\\" + fichier + ".txt"; ArrayList<List<String>> matrix = new ArrayList<List<String>>(); try{ // Création du flux bufférisé sur un FileReader, immédiatement suivi par un // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader // est correctement instancié (évite les NullPointerException) BufferedReader buff = new BufferedReader(new FileReader(filePath)); try { String line; // Lecture du fichier ligne par ligne. Cette boucle se termine // quand la méthode retourne la valeur null. while ((line = buff.readLine()) != null) { String[] nbs = line.split(" "); matrix.add(Arrays.asList(nbs)); } //afficher les tableau for (List<String> tab : matrix){ System.out.println(tab); //appel de la methode decode decode( tab); } } finally { // dans tous les cas, on ferme nos flux buff.close(); } } catch (IOException ioe) { // erreur de fermeture des flux System.out.println("Erreur --" + ioe.toString()); } } // A chaque fois que tu veux recuper un element de new_tab, n'oublie pas de faire ceci: // int exemple = Integer.ParseInt(new_tab[0]); public static void main(String[] arg) throws IOException{ affiche("marwa"); } }
13 janv. 2012 à 11:07
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1