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

avec Java Discussion :

fonction et condition


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut fonction et condition
    Bonjour,
    j'ai crée une méthode pour supprimer un élément (dans un tableau de taille fixe) choisi par l'utilisateur (pas le droit d'utiliser arrayList ou librairie). j'ai crée un nouveau tableau de taille inferieur etc.. et tout marche bien. J'ai juste un souci avec une condition (si l'élément n'est pas trouvé dans le tableau on va le préciser via un message). Quand je teste ma fonction même si l'élément est dans le tableau j'ai toujours l'affichage "élément absent du tableau"; J'ai aussi essayé avec un Boolean mais j'ai le même problème. Pour le reste ma méthode fonctionne.

    Une méthode qui supprime un élément d’un tableau en précisant l’élément que l’on souhaite supprimer. Si l’élément n’est pas trouvé, on le précisera via un message.

    Voici une partie de mon code :
    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
     
    Scanner clavier = new Scanner(System.in);
     
     
            char[] copieTab = new char[tab.length - 1];
     
            for (int i = 0; i < copieTab.length; i++) {
                copieTab[i] = ' ';
            }
     
            System.out.println("caractère à supprimer?");
            char element = clavier.nextLine().charAt(0);
     
            for (int i = 0; i < tab.length; i++) {
                if (tab[i] == element) {
                    tab[i] = ' ';
       	    } if(tab[i]!= element){
                    System.out.println("element absent du tableau");
                }
            }
    merci pour votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Bah... Non, ça marche pas bien du tout, ça. Ça fait pas du tout ce que tu as demandé. Essaie, tu vas voir.

    Du coup, difficile de dire quoi faire avec le message qui marche pas bien non plus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    Bonjour,

    Mon explication n'a pas été trop claire et brouillon. Nous avons un TD à faire niveau débutant. il faut créer plusieurs méthodes sans l'utilisation de ArrayList, librairie etc.. en restant sur un tableau au départ de taille fixe. La dernière méthode qui me reste à faire est la suivante :
    Une méthode qui supprime un élément d’un tableau en précisant l’élément que l’on souhaite supprimer. Si l’élément n’est pas trouvé, on le précisera via un message.

    Ma méthode est crée maintenant il me reste la condition qui me pose problème : Si l’élément n’est pas trouvé, on le précisera via un message.

    voici ma méthode sans la condition :



    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
    public static char[] deleteChar(char[] tab) {
            Scanner clavier = new Scanner(System.in);
     
            //creation tableau de taille inferieur
            char[] copieTab = new char[tab.length - 1];
     
            // on remplit le nouveau tableau avec des valeurs vides
            for (int i = 0; i < copieTab.length; i++) {
                copieTab[i] = ' ';
            }
     
            System.out.println("Quel caractère voulez vous supprimer?");
            char element = clavier.nextLine().charAt(0);
     
            for (int i = 0; i < tab.length; i++) {
                if (tab[i] == element) {
                    tab[i] = ' ';
                }
            }
     
            for (int j = 0; j < tab.length; j++) {
                if (isFull(copieTab)) {  // pour éviter de dépasser la taille du tableau
                        break;
                }
                if (tab[j] != ' ') {
                        copieTab[j] = tab[j];
                } else {
                    copieTab[j] = tab[j + 1];
                    tab[j + 1] = ' ';
                }
            }
            return copieTab;
        }
    }
    merci encore pour votre aide.

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    ton code est vraiment mauvais

    À quoi te sert d'initialiser ton tableau avec 1 espace, alors que 3 lignes + loin tu vas changer cette valeur ?
    Les initialisations "réflexe" à la définition d'1 variable ne sont pas forcément pertinentes

    Le problème des tableaux fixes c'est qu'ils sont fixes : donc tant que tu ne sais pas si ton élément est présent ou pas, tu ne connais pas la taille de ton futur tableau (size ou size - 1)
    Dans la vraie vie, on fait 1 classe avec son tableau, le nombre d'éléments et la taille allouée. Et ainsi, on évite de faire des allocations inutilement ... même s'il y a des cases qui ne servent pas.

    Il faut d'abord rechercher ton élément. Et
    • s'il est présent, tu créés ton tableau résultat avec 1 taille size - 1 et tu recopies ton tableau sans cet élément
    • s'il est absent, tu affiches ton message, tu créés ton tableau résultat avec 1 taille size et tu fais 1 copie de ton tableau


    Et si tu as compris, tu peux 1 peu optimiser au lieu d'avoir 1 booléen pour dire "est présent ou pas", tu peux avoir l'indice de ton élément (valeur par défaut size, parce que c'est 1 valeur qui n'est pas possible pour ton indice)
    Ainsi, lors de la recopie de ton tableau sans cet élément, tu pourras le faire simplement en 2 fois sans tests : 1 recopie simple pour les éléments [0, indice - 1] (si indice >= 1) et 1 recopie avec 1 translation - 1 pour les éléments [indice + 1, size]

  5. #5
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 206
    Par défaut
    Bonjour,
    je vous remercie pour ces explications détaillées. Je vais revoir mon code.
    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tracer une fonction avec conditions sur variable
    Par Leonpolou dans le forum MATLAB
    Réponses: 16
    Dernier message: 23/10/2009, 17h53
  2. Réponses: 1
    Dernier message: 14/08/2009, 12h19
  3. Réponses: 4
    Dernier message: 15/05/2007, 14h01
  4. Fonction javascript, condition, et php
    Par Dahevos dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2007, 21h13
  5. Programme de modification de XML en fonction de conditions
    Par greg2 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/07/2006, 08h20

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