begin process at 2012 02 15 12:11:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Problème tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème tableau

vendredi 5 décembre 2008 à 18:03:27 | Problème tableau

antara3d

Bonjour à tous

Merci de bien vouloir m'aider

Le travail à faire consiste à concevoir deux méethodes à ajouter dans la classe TransTab dont le code
source est listé ci-dessous

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class TransTab {
static String[] codeIdItemTab;
static int[] qItemTab;
static double[] prixItemTab;
static int[] codeTaxTab;
static void remplirTab(String nomFichier, int nombreTrans)throws FileNotFoundException{
Scanner lectureFichier = new Scanner (new File(nomFichier));
codeIdItemTab=new String[nombreTrans];
qItemTab=new int[nombreTrans];
prixItemTab=new double[nombreTrans];
codeTaxTab= new int[nombreTrans];
for (int i=0; i< nombreTrans && lectureFichier.hasNext(); i++){
codeIdItemTab[i]=lectureFichier.next();
qItemTab[i]=lectureFichier.nextInt();
prixItemTab[i]=lectureFichier.nextDouble();
codeTaxTab[i]= lectureFichier.nextInt();
}
}
}

La méthode remplirTab() ci-dessus a deux paramètres nomFichier et nombreTrans. nomFichier
représente le nom d'un chier stockant les transactions une par ligne alors que nombreTrans est le nombre
de transactions dans ce fichier.

(1) Ajoutez a la classe TransTab une methode dont la signature est :
public static int[] selectQMinQmax(int qMin, int qMax, double prixSeuil);
et qui retourne un tableau d'entiers compose des numeros des cases des items dont la transaction
comporte une quantité supérieure ou égale a qMin et inférieure ou égale a qMax et dont le prix hors
taxe est supérieur ou égal a prixSeuil. Nous allons supposer que -1 indique la n des éléments a
considérer dans le tableau retourne.

(2) Ajoutez a la classe TransTab une methode dont la signature est :
public static String[] listeItemIdCodeSansRedondance();
et qui retourne un tableau de String compose des codes alphanumériques identifiants les items
sans redondance. Lorsqu'un item fait l'objet de plusieurs transactions, son code identifiant doit
apparaître une seul fois dans le tableau retourne. En terme de traitement cela signifie qu'il faudrait
vérifier qu'un code identifiant d'un item n'existe pas dans encore dans le tableau ;a retourner avant
de l'y ajouter. Nous allons supposer que le String "FIN" indique la n des éléments à considérer
dans le tableau retourne. Bien sure on suppose aussi qu'il n'y a aucun item ayant "FIN" comme
code identifiant.

A n de concrétiser le problème, je vous donne l'exemple du chier ListeTrans.TXT suivant:
AAA442945 88 4,83 3
X930275108 1 8,07 3
C105C85923 49 9,82 1
X930275108 37 5,3 0
AAA442945 45 9,61 1
X733635456 66 2,88 3
AAA442945 29 0,61 2
Y28522548 80 7,13 2
Y217997564 18 9,34 2
AAA442945 95 9,79 2
13GG492810 26 1,65 1
JK67484 28 4,8 1
Soit un programme pour tester les méthodes demandées:
import java.io.FileNotFoundException;
public class TestTransTab {
public static void main(String[] args) throws FileNotFoundException{
TransTab.remplirTab("ListeTrans.TXT", 12);
int[] tabEntiers= TransTab.selectQMinQmax(45, 80, 7.0);
System.out.println("Liste des numéros des cases pour les critères demandes");
int i=0;
for(i=0; tabEntiers [i] != -1 && i < tabEntiers.length; i++){
System.out.print(tabEntiers [i] + " ");
}
System.out.println(tabEntiers [i]);
System.out.println("Liste des codes identifiants :");
String[] tabStr= TransTab.listeItemIdCodeSansRedondance();
for(i=0; tabStr[i].compareTo("FIN") != 0 && i < tabStr.length; i++){
System.out.print(tabStr[i] + " ");
}
System.out.println(tabStr [i]);
}
}
Voila ce que ce programme de test est suppose afficher :
Liste des numéros des cases pour les critères demandes :
2 4 7 -1
Liste des codes identifiants
AAA442945 X930275108 C105C85923 JK67484 Y28522548 Y217997564 13GG492810 FIN

Donc voici ce que j'ai fait

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class TransTab {

    static String[] codeIdItemTab;
    static int[] qItemTab;
    static double[] prixItemTab;
    static int[] codeTaxTab;
   
    static void remplirTab(String nomFichier, int nombreTrans)throws FileNotFoundException{
        Scanner lectureFichier = new Scanner (new File(nomFichier));
        codeIdItemTab=new String[nombreTrans];
        qItemTab=new int[nombreTrans];
        prixItemTab=new double[nombreTrans];
        codeTaxTab= new int[nombreTrans];
        for (int i=0; i< nombreTrans && lectureFichier.hasNext(); i++){
            codeIdItemTab[i]=lectureFichier.next();
            qItemTab[i]=lectureFichier.nextInt();
            prixItemTab[i]=lectureFichier.nextDouble();
            codeTaxTab[i]= lectureFichier.nextInt();
        }
    }
      
    public static int[] selectQMinQmax(int qMin, int qMax, double prixSeuil){
        int[] tab2;
        tab2= new int [qItemTab.length];
        for (int i=0; i<qItemTab.length; i++){
            if (qItemTab[i] >=qMin && qItemTab[i]<=qMax && prixItemTab[i]>=prixSeuil){
                for (i=0; i<tab2.length; i++){
                    tab2[i]=qItemTab[i];
                }
                tab2[tab2.length+1] = -1;
        }
       }
       return tab2;
    }
    public static String[] listeItemIdCodeSansRedondance(){
        String[] tab1;
        tab1= new String[codeIdItemTab.length];
        for (int i=0; i<tab1.length; i++){
            if (codeIdItemTab[i].compareTo(codeIdItemTab[i++]) == 0)
            tab1[i]=codeIdItemTab[i];
        }
        tab1[tab1.length+1]= "FIN";
        return tab1;
    }
}

Mes deux problèmes; 1- je n'arrive pas a donner le numéro de la case 2- et j'arrive toujours out of bounds dans mes tableaux

Un énorme merci de votre aide


vendredi 5 décembre 2008 à 20:23:19 | Re : Problème tableau

lafolle24320

Petite question ... pourquoi n'utilise pas une ArrayList<String> ?? cela simplifirai la gestion de ton tableau. Et tu pourrais le parcourir avec un itérateur simplifié :

ArrayList<String> list = new ArrayList<String>;
for(String s : list)
{
     sysout(s); //affiche le string
}

Je pense qu'avec çà tu évitera de sortir de ton tableau déjà

Bon courage

Lafolle
vendredi 5 décembre 2008 à 20:40:41 | Re : Problème tableau

antara3d

Maintenant mon selectQMinQmax fonctionne avec cela

public static int[] selectQMinQmax(int qMin, int qMax, double prixSeuil){
        int[] tab1;
        tab1= new int [qItemTab.length];
        int z=0;
        for (int i=0; i<qItemTab.length && i < prixItemTab.length; i++){
            if (qItemTab[i] >=qMin && qItemTab[i]<=qMax && prixItemTab[i]>=prixSeuil){
            tab1[z]=i;
            z++;
        }
        tab1[z+1] = -1;
       }
       return tab1;
    }

Mais mon listeItemIdCodeSansRedondance ne fonctionne toujours pas. Dans le test il me donne NullPointerException: null

public static String[] listeItemIdCodeSansRedondance(){
        String[] tab2;
        tab2= new String[codeIdItemTab.length];
        int w=0;
        for (int i=0; i<codeIdItemTab.length; i++){
            if (codeIdItemTab[i].compareTo(codeIdItemTab[i++] <0))
            tab2[i]=codeIdItemTab[i];
            w++;
        }
        tab2[w+1]= "FIN";
        return tab2;
    }
}

Encore Merci de bien vouloir m'aider
samedi 6 décembre 2008 à 13:59:32 | Re : Problème tableau

antara3d

J'ai réglé mon problème

Merci de votre aide

Pour les curieux voici la solution

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class TransTab {

    static String[] codeIdItemTab;
    static int[] qItemTab;
    static double[] prixItemTab;
    static int[] codeTaxTab;
   
    static void remplirTab(String nomFichier, int nombreTrans)throws FileNotFoundException{
        Scanner lectureFichier = new Scanner (new File(nomFichier));
        codeIdItemTab=new String[nombreTrans];
        qItemTab=new int[nombreTrans];
        prixItemTab=new double[nombreTrans];
        codeTaxTab= new int[nombreTrans];
        for (int i=0; i< nombreTrans && lectureFichier.hasNext(); i++){
            codeIdItemTab[i]=lectureFichier.next();
            qItemTab[i]=lectureFichier.nextInt();
            prixItemTab[i]=lectureFichier.nextDouble();
            codeTaxTab[i]= lectureFichier.nextInt();
        }
    }
      
    public static int[] selectQMinQmax(int qMin, int qMax, double prixSeuil){
        int[] tab1;
        tab1= new int [qItemTab.length];//Déclaration d'un tableau
        int z=0;//Variable qui me sert de compteur
        for (int i=0; i<qItemTab.length && i < prixItemTab.length; i++){//Ouverture boucle for
            if (qItemTab[i] >=qMin && qItemTab[i]<=qMax && prixItemTab[i]>=prixSeuil){//Ouverture du if
            tab1[z]=i;//La case Z correspond au numéro de la case i du test approuvé
            z++;
        }//Fermeture du if
        tab1[z+1] = -1;//Ajout de -1 à la fin de la liste pour marquer la fin de celle-ci
       }//Fermeture du for
       return tab1;//retourne le tableau 1
    }// Fin de la méthode selectQMinQmax
   
    public static String[] listeItemIdCodeSansRedondance(){
        String[] tab2;
        tab2= new String[codeIdItemTab.length];//Déclaration d'un tableau
        int w=0;//Variable qui me sert de compteur
        for (int i=0; i<codeIdItemTab.length; i++){//ouverture boucle for #1
            boolean exam = false;// examen boolean initialisé a false
            for (int s=0;s<w;s++){//ouverture boucle for #2
                if (codeIdItemTab[i].compareTo(tab2[s])==0){//Ouverture du if #1
                    exam=true;// Si le if est retourne true cela veut dire qu'il est redondant il sera mis de côté
            }//Fermeture du if #1
        }//Fermeture de la boucle for #2
            if (exam==false){//Si exam correspond a faux, donc il n'est pas redondant
            tab2[w]=codeIdItemTab[i];//Le contenu de la case non redondante sera stocké dans le tab2
            w++;//Compteur
        }//Fermeture du if #2
    }//Fermeture de la boucle for #1
        tab2[w]= "FIN";//Ajout de "FIN" à la fin de la liste pour marquer la fin de celle-ci
        return tab2;//retourne le tableau 2
    }// Fin de la méthode listeItemIdCodeSansRedondance
}// Fin de la classe TransTab


Cette discussion est classée dans : int, string, static, nombretrans, qitemtab


Répondre à ce message

Sujets en rapport avec ce message

HELP HELP HELP !!!!!!!! [ par poupoule00 ] Boonjour et merci d'avance de me repondre. J'ai un projet a faire en jCreator qui consiste a entrer une date(jourdelasemaine, numero du jour, mois, an Question de philosophie "héritages" [ par omcougar ] Bonjour, Je m'amuse en ce moment sur les transferts de données... Pour définir la tête des mes trames j'ai créé une classe statique TrameData que enco problème d'éxucution [ par Brigadiste ] slt,SVP, j'ai un problème, de mettre une List dans un Vector pour le traiter de suitNB: le code est de découper un fichier texte, le mettre sur google souhaite de l'aide [ par damienjojo ] bonjour j'ai un programme qui boucle non stop et je ne trouve pas l'erreur si vous pouvez m'aider je vous remercie mon code public class p444{ / problem avec programme polymorphisme [ par domxaline ] Bonjour, j'ai essayé le prg suivant;en compilant j'ai erreur suivant Exception in thread "main" java.lang.Error: Unresolved compilation problem: The c simple programme en java [ par marwenblel ] slt ,mon but est d'instancier un Tableau à 2 dimension des elements de type classa Mot que j'ai crée moi mème. j'ai fait une faible essai: public clas java ( eclipse ) avec la carte k8055 !!! [ par muntu ] Bjr ! Je suis nouveau en programmation, j'ai un projet en java à réaliser avec ma carte k8055, j'ai touttes les fonctions ou classes qui me permetten programmation RMI [ par aymenboy ] slt je besoin de m'aider à mon projet je veut que tu me corrige mes faute s'il te plait bon le projet est : une compagnie aérienne offre un service de programmation RMI [ par aymenboy ] slt je besoin de m'aider à mon projet je veut que tu me corrige mes faute s'il te plait bon le projet est : une compagnie aérienne offre un service sl [ par aymenboy ] slt je besoin de m'aider à mon projet je veut que tu me corrige mes faute s'il te plait bon le projet est : une compagnie aérienne offre un service


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales