IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Aide sur la recherche séquentielle


Sujet :

Langage Java

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Aide sur la recherche séquentielle
    Bonjour tout le monde,

    Pourriez-vous me dire quel est le meilleur moyen pour effectuer une recherche séquentielle ? je m'explique :

    Je dois simuler un distributeur de boissons, dans ce distributeur, j'ai 5 boissons codées de 1à 5 :

    j'ai donc une variable tableau nommée boissons[]

    1,2,3,4,5

    j'ai aussi un autre tableau qui reprend les quantités de ces boissons :

    quantite[] :

    5,5,5,5,5

    Donc, le premier 5 correspond au 1 du tableau du dessus, le second 5 appartient au 2 du tableau d'au dessus....

    J'aimerais que si quelqu'un choisis la boisson 3, que le 3e 5 diminue de 1.

    Pour cela, je parcours le premier tableau, je recherche la valeur 3, l'indice du tableau est donc 2 (0,1,2) ensuite, je met la valeur dans une variable.

    Ensuite, il faut recherche l'indice 3 du tableau des quantités et diminuer la quantité de 1.

    Pourriez-vous me dire quel est le meilleur moyen pour effectuer cette opération ?

    Nous devons soit utiliser le for, le while, le do while ou le switch.

    Pour vous quel est le meilleur moyen d'y arriver ? Si vous avez un exemple, c'est le bienvenue.

    Merci d'avance pour votre aide.

    beegees

  2. #2
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Bonjour,

    Je pense que tu peux faire çà avec un tableau à 2 dimension:
    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
     
    //tu creer le tableau
    int tab[][] = new int[2][4];
     
    //tu rentre tes valeurs
    for(int i=0;i<4;i++){
     
         //Tes boissons
         tab[0][i]=i+1;
         //Tes quantité
         tab[1][i]=5;
     
     
     
    }
    Donc aprés si quelqu'un choisi la boisson 3(on dit que le choix de la boisson, c'est la variable "a" par exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    for(int i=0;i<4;i++){
     
    //je te laisse trouver çà quand même:)
     
    }

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Je ne pensais pas utiliser le tableau à deux dimensions car en plus du nom de la boisson (son code) et sa quantité, il y'a un tableau qui reprend les pièces acceptées.

    Il faudrait donc utiliser un tableau à 3 dimensions, chose que notre Professeur nous déconseille.

    Avec deux tableaux à une dimension, c'est impossible à faire ?

    Merci encore et bon dimanche.

    beegees

  4. #4
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Un peu bizarre comme modélisation, on est très loin de la POO...
    En reprenant l'énoncé, cela devrait donner qq chose comme ça :
    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
     
    private int boissons[];
     
    private int quantites[];
     
    public void choisirBoisson(int codeBoisson) {
      int ix = 0;
      while (ix < boissons.length && boissons[ix] != codeBoisson) {
         ix++;
      }
     
      if (ix >= boissons.length) {
        throw new IllegalArgumentException("code de boisson incorrect : " + codeBoisson);
      }
     
      quantites[ix]--;
    }

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour Hervé,

    Merci pour ta réponse.

    Je l'analyse et je te dis quoi.

    Merci encore et bon Dimanche.

    beegees

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    En Objet, on ne fait pas 2 tableaux qui sont liés logiquement (à part pour faire de la performance pure).
    Ici, on pourrait faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Boisson {
        private final int num;
        private int qt;
        public Boisson(int num, int qt) {
            this.num = num;
            this.qt = qt;
        }
        public void getQt() {
            return qt;
        }
        public void setQt(int qt) {
            this.qt = qt;
        }
    }
    et faire un tableau de Boisson...

    Mais si c'est exclusivement pour une recherche, tu peux faire une Map<Integer,Integer> avec en clé le numéro de boisson et en valeur la quantité...

  7. #7
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par ®om
    En Objet, on ne fait pas 2 tableaux qui sont liés logiquement (à part pour faire de la performance pure).
    Ici, on pourrait faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Boisson {
        private final int num;
        private int qt;
        public Boisson(int num, int qt) {
            this.num = num;
            this.qt = qt;
        }
        public void getQt() {
            return qt;
        }
        public void setQt(int qt) {
            this.qt = qt;
        }
    }
    et faire un tableau de Boisson...

    Mais si c'est exclusivement pour une recherche, tu peux faire une Map<Integer,Integer> avec en clé le numéro de boisson et en valeur la quantité...
    +1 manque l'attribut "prix" à boisson.

Discussions similaires

  1. [AC-2007] Aide sur Tuto Recherche Multi-Critères adapté
    Par Accessifiante dans le forum IHM
    Réponses: 11
    Dernier message: 25/05/2013, 13h52
  2. Réponses: 1
    Dernier message: 18/09/2010, 02h40
  3. aide sur une recherche
    Par chiheb-123 dans le forum Administration système
    Réponses: 1
    Dernier message: 31/03/2008, 21h07
  4. Réponses: 4
    Dernier message: 05/06/2007, 12h41
  5. Besoin d'aide sur un script SQL de recherche
    Par agougeon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/10/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo