STID 1ere année, need help programme tableau
Résolu/Fermé
RadinMan
Messages postés
7
Date d'inscription
dimanche 13 décembre 2015
Statut
Membre
Dernière intervention
13 décembre 2015
-
Modifié par RadinMan le 13/12/2015 à 20:09
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 14 déc. 2015 à 00:42
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 14 déc. 2015 à 00:42
A voir également:
- STID 1ere année, need help programme tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Programme demarrage windows 10 - Guide
- Trier tableau excel - Guide
4 réponses
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
13 déc. 2015 à 20:11
13 déc. 2015 à 20:11
Ton code marche, juste que le chemin vers les fichiers sur windows s'écrit
C:\\Users\\Faseldi\\Desktop\\vendeurs.txt
avec un anti-slash, et non un slash
C:\\Users\\Faseldi\\Desktop\\vendeurs.txt
avec un anti-slash, et non un slash
RadinMan
Messages postés
7
Date d'inscription
dimanche 13 décembre 2015
Statut
Membre
Dernière intervention
13 décembre 2015
Modifié par RadinMan le 13/12/2015 à 20:16
Modifié par RadinMan le 13/12/2015 à 20:16
Ahah, oui je sais que le programme marche, mais la lecture des fichiers ne me sert à rien si j'arrive pas à m'en servir pour changer les données vendeurs/modèles du tableau.
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
Il faudrait qu'ici à la place des noms, je puisse avoir la lecture des fichiers textes en faite.
Et réussir a faire apparaître le 4eme vendeur, mais la c'est simplement une erreur dans les boucles / création tableau je suppose, je dois juste savoir où.
Désolé si j'me suis mal exprimé juste avant!
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
Il faudrait qu'ici à la place des noms, je puisse avoir la lecture des fichiers textes en faite.
Et réussir a faire apparaître le 4eme vendeur, mais la c'est simplement une erreur dans les boucles / création tableau je suppose, je dois juste savoir où.
Désolé si j'me suis mal exprimé juste avant!
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
13 déc. 2015 à 20:23
13 déc. 2015 à 20:23
D'accord ! :p
Alors oublie les tableaux statiques
dans ton main (même si ça devrait être dans un constructeur, mais tant pis)
tu fais ArrayList<String> nom_vendeurs = vendeurs();
il faut l'import java.util.ArrayList;
ta méthode vendeurs :
Juste, question de lisibilité du code pour les développeurs, et de norme Java, écris les noms des méthodes et attributs avec la premiere lettre en miniscule, toujours, sauf les attributs statiques, et les noms des classes avec une premiere lettre en majuscule.
Alors oublie les tableaux statiques
dans ton main (même si ça devrait être dans un constructeur, mais tant pis)
tu fais ArrayList<String> nom_vendeurs = vendeurs();
il faut l'import java.util.ArrayList;
ta méthode vendeurs :
static ArrayList<String> vendeurs() throws IOException {
ArrayList<String> vendeurs = new ArrayList<>();
BufferedReader ve = new BufferedReader(new FileReader("C:/Users/Utilisateur/Desktop/Vendeur.txt"));
String str = null;
while((str = ve.readLine()) != null){
System.out.println(str);
vendeurs.add(str);
}
return vendeurs;
}
Juste, question de lisibilité du code pour les développeurs, et de norme Java, écris les noms des méthodes et attributs avec la premiere lettre en miniscule, toujours, sauf les attributs statiques, et les noms des classes avec une premiere lettre en majuscule.
RadinMan
Messages postés
7
Date d'inscription
dimanche 13 décembre 2015
Statut
Membre
Dernière intervention
13 décembre 2015
13 déc. 2015 à 20:52
13 déc. 2015 à 20:52
Même si on l'a pas encore vu, je comprend le principe même si "constructeur" j'sais absolument pas c'est quoi.
Mais du coup pour :
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
Ca devient juste :
vendeurs();
voitures();
Ou je dois rajouter une ligne pour dire que le tableau doit puiser la dedans?
System.out.println("Le chiffre d'affaire pour le vendeur "+Nom_Vendeur[Colonne]+" est "+Total*Prix[Colonne]);
Ca fonctionne comment pour renseigner le Nom_Vendeur[Colonne] La?
Mais du coup pour :
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
Ca devient juste :
vendeurs();
voitures();
Ou je dois rajouter une ligne pour dire que le tableau doit puiser la dedans?
System.out.println("Le chiffre d'affaire pour le vendeur "+Nom_Vendeur[Colonne]+" est "+Total*Prix[Colonne]);
Ca fonctionne comment pour renseigner le Nom_Vendeur[Colonne] La?
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
13 déc. 2015 à 21:24
13 déc. 2015 à 21:24
and tu écris une classe
le constructeur sera Patate(), il porte toujours le nom de la classe, et tu peux en mettre plusieurs, de profils différents.
Je ne vois pas trop ce que tu demandes, mais je vais essayer de répondre quand même.
Pour afficher ton tableau, tu peux faire une méthode statique (hors du main)
et l'appeler où tu veux comme ça afficher(Nom_Vendeurs, Modèle);
pareil, pour la lisibilité, quand tu fais un tableau statique, écris le [] après le type (exemple : String[] mon_tab), voilà :p
public classe Patate{
public Patate(){
}
}
le constructeur sera Patate(), il porte toujours le nom de la classe, et tu peux en mettre plusieurs, de profils différents.
Je ne vois pas trop ce que tu demandes, mais je vais essayer de répondre quand même.
Pour afficher ton tableau, tu peux faire une méthode statique (hors du main)
public static void affiche(String[] tabVendeurs, String[] tabVoitures){
for(int i = 0; i < tabVendeurs;i++){
System.out.println(tabVendeurs[i]+" "+tabVoitures[i]);
}
}
et l'appeler où tu veux comme ça afficher(Nom_Vendeurs, Modèle);
pareil, pour la lisibilité, quand tu fais un tableau statique, écris le [] après le type (exemple : String[] mon_tab), voilà :p
RadinMan
Messages postés
7
Date d'inscription
dimanche 13 décembre 2015
Statut
Membre
Dernière intervention
13 décembre 2015
Modifié par RadinMan le 13/12/2015 à 22:12
Modifié par RadinMan le 13/12/2015 à 22:12
Fiuh, plus les explications passent et plus tu me perds, heureusement que j'aime bien la complexité de l'informatique sinon ça ferait un moment que j'serais parti !
En faite pour faire simple, se que je demande c'est qu'au début mon tableau avec les noms des vendeurs et des modèles etaient définit directement dans la racine du programme :
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
de cette façon là.
Du coup quand j'voulais les appeler j'avais juste a faire (nom_vendeurs,modèle), mais vu qu'en les mettant dans une liste d'objet ils ne portent plus aucun lien avec les colonnes et lignes, comment je fais pour réussir a refaire sortir le nom du modèle en fonction de la ligne des ventes?
Par ce qu'en faite j'obtiens ça au final :
Porche
Mercedes
Mégane
Le modèle [Porche, Mercedes, Mégane] à été vendu 4 fois
Paul
Jules
Benard
Marjorie
Le chiffre d'affaire pour le vendeur [Paul, Jules, Benard, Marjorie] est 20000
Si tu comprends pas encore, ça me dérange pas de faire des tableaux parci parlà par excel, j'suis de ceux qui s'arrête pas tant qu'ils ont pas compris (ou que je soule ceux qui m'explique..)
En tout cas, c'est gentil de prendre du temps pour m'aider! :)
En faite pour faire simple, se que je demande c'est qu'au début mon tableau avec les noms des vendeurs et des modèles etaient définit directement dans la racine du programme :
String Nom_Vendeurs[] = {"André","Justine","Marie","Pierre"};
String Modèle[] = {"Mercedes","Porsche","Twingo"};
de cette façon là.
Du coup quand j'voulais les appeler j'avais juste a faire (nom_vendeurs,modèle), mais vu qu'en les mettant dans une liste d'objet ils ne portent plus aucun lien avec les colonnes et lignes, comment je fais pour réussir a refaire sortir le nom du modèle en fonction de la ligne des ventes?
Par ce qu'en faite j'obtiens ça au final :
Porche
Mercedes
Mégane
Le modèle [Porche, Mercedes, Mégane] à été vendu 4 fois
Paul
Jules
Benard
Marjorie
Le chiffre d'affaire pour le vendeur [Paul, Jules, Benard, Marjorie] est 20000
Si tu comprends pas encore, ça me dérange pas de faire des tableaux parci parlà par excel, j'suis de ceux qui s'arrête pas tant qu'ils ont pas compris (ou que je soule ceux qui m'explique..)
En tout cas, c'est gentil de prendre du temps pour m'aider! :)
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
13 déc. 2015 à 22:16
13 déc. 2015 à 22:16
Je crois que tu te compliques trop la vie ! :p (et en info on aime pas ça)
L'astuce plutôt que de mmettre des lignes et des colonnes serait de mettre un HashMap
si tu sais pas ce que c'est, imagine le comme un dictionnaire, quand tu cherches un mot, il te renvoit la définition du mot, bah c'est exactement pareil, tu demandes par exemple map.get(mon_modele), il te donne ton modèle, et si il en a pas, il te donne null
Une HashMap, pour ton cas, avec deux entrées, je ferais comme ça
et quand tu veux recupérer les ventes tu fais
ici l'astuce et de dire que le mot dans le dictionnaire est un couple de valeurs, donc en java un tableau String[] toujours de taille deux en fait. Le mieux serait de faire une classe Couple, mais je ne pense pas que tu aies vu ça.
Bref maintenant, si tu as compris, il suffit de creer un tableau String[] tab = {nom_vendeur, nom_modèle};
et de dire à ta map : map.get(tab);
Si elle a ton tableau dans sa mémoire, elle te le renvoit, sinon elle te renvoit null
Je tiens à m'excuser pour mon manque de compréhension, je fais une application Android et aide d'autres internautes en même temps que toi (et je mangais... un vrai geek)
Bref désolé x)
L'astuce plutôt que de mmettre des lignes et des colonnes serait de mettre un HashMap
si tu sais pas ce que c'est, imagine le comme un dictionnaire, quand tu cherches un mot, il te renvoit la définition du mot, bah c'est exactement pareil, tu demandes par exemple map.get(mon_modele), il te donne ton modèle, et si il en a pas, il te donne null
Une HashMap, pour ton cas, avec deux entrées, je ferais comme ça
HashMap(String[] nom_vendeur_et_modele, int[] ventes) map = new HashMap<>();
quand tu ajoutes un vendeur et un modele, tu fais
String[] nom_ven_mod = {"popaul","fiat"};
int vente= 10: // par exemple
map.set(nom_vend_mot, vente);
et quand tu veux recupérer les ventes tu fais
String[] nom_ven_mod= {"popaul","fiat"};
int[] ventes = map.get(nom_ven_mod); // attention tu peux avoir null ici si ils n'existent pas
ici l'astuce et de dire que le mot dans le dictionnaire est un couple de valeurs, donc en java un tableau String[] toujours de taille deux en fait. Le mieux serait de faire une classe Couple, mais je ne pense pas que tu aies vu ça.
Bref maintenant, si tu as compris, il suffit de creer un tableau String[] tab = {nom_vendeur, nom_modèle};
et de dire à ta map : map.get(tab);
Si elle a ton tableau dans sa mémoire, elle te le renvoit, sinon elle te renvoit null
Je tiens à m'excuser pour mon manque de compréhension, je fais une application Android et aide d'autres internautes en même temps que toi (et je mangais... un vrai geek)
Bref désolé x)
RadinMan
Messages postés
7
Date d'inscription
dimanche 13 décembre 2015
Statut
Membre
Dernière intervention
13 décembre 2015
13 déc. 2015 à 22:28
13 déc. 2015 à 22:28
Je comprend l'idée de ton explication tqt, mais le problème c'est qu'on a quasiment rien vu en 3mois de cours.
Les boucles, les sous programmes, les tableaux (en 2min) et elle a parlé 30sc de la lecture d'un fichier.
J'aime pas me compliquer la vie aussi, quand j'peux faire simple, je le fais, mais actuellement je possède absolument pas le savoir faire pour me faciliter la vie..
Et on a pas vu ton ptit mapping, si je l'utilise ça va partir en cacahuète vu la bétise de ma prof.. Du coup j'vais rester sur le Array, doit y avoir moyen d'en faire apparaitre que un si c'pas le cas, elle se débrouillera, j'serais surement le plus avancé vu ma promo de branque.
Me manque plus qu'à savoir où est mon erreur dans la disparition du 4eme nom et pourquoi le calcule des ventes est faux.
Ca me calcule la premiere ligne x la premiere colonne du prix.
" ...... " André, Pierre, Paul, Jacques
Twingo 1 1 1 1 = prix T* 1 + prix T *1 ......
Mercedes 1 1 1 1 = prix M* 1 + prix M *1 ......
Porsche 1 1 1 1 = prix P* 1 + prix P*1 ......
Au lieu du Prix T*1 + Prix M*1 + Prix P*1
(j'te demande pas de le faire, j'dis juste où est le probleme dans le doute où t'as déjà repéré l'erreur! :pppp)
Et t'excuse absolument pas pour ça, j'arrive à te comprendre, et tu réponds assez vite pour tout ce que tu fais donc tout va bien!
Les boucles, les sous programmes, les tableaux (en 2min) et elle a parlé 30sc de la lecture d'un fichier.
J'aime pas me compliquer la vie aussi, quand j'peux faire simple, je le fais, mais actuellement je possède absolument pas le savoir faire pour me faciliter la vie..
Et on a pas vu ton ptit mapping, si je l'utilise ça va partir en cacahuète vu la bétise de ma prof.. Du coup j'vais rester sur le Array, doit y avoir moyen d'en faire apparaitre que un si c'pas le cas, elle se débrouillera, j'serais surement le plus avancé vu ma promo de branque.
Me manque plus qu'à savoir où est mon erreur dans la disparition du 4eme nom et pourquoi le calcule des ventes est faux.
Ca me calcule la premiere ligne x la premiere colonne du prix.
" ...... " André, Pierre, Paul, Jacques
Twingo 1 1 1 1 = prix T* 1 + prix T *1 ......
Mercedes 1 1 1 1 = prix M* 1 + prix M *1 ......
Porsche 1 1 1 1 = prix P* 1 + prix P*1 ......
Au lieu du Prix T*1 + Prix M*1 + Prix P*1
(j'te demande pas de le faire, j'dis juste où est le probleme dans le doute où t'as déjà repéré l'erreur! :pppp)
Et t'excuse absolument pas pour ça, j'arrive à te comprendre, et tu réponds assez vite pour tout ce que tu fais donc tout va bien!
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
13 déc. 2015 à 22:37
13 déc. 2015 à 22:37
si ça fait une erreur de ce style, je pense que dans le calcul tu dois te tromper entre ligne et colonne, dans ta boucle pour le calcul, fais des System.out.println(vals) des valeurs pour voir si ce sont les bonnes (je sais pas si tu fais ça d'habitude pour debug mais c'est très utile! :p )