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

Algorithmes et structures de données Discussion :

Détection des valeurs négatives successives


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 58
    Points : 52
    Points
    52
    Par défaut Détection des valeurs négatives successives
    Bonjour tous le monde,

    Je sollicite votre aide, je bloque sur une question. je dois parcourir un tableau, dans lequel il y a des valeurs négatives. A chaque fois qu'il y a une succession de 3 valeurs négatives. il faut compter 1. Par exemple , voici un tableau = -1,-1,-3,-4,-5, 1,2 , -3, -3,-13;

    Dans ce cas, il faut que je dois trouver 2 pas 3. Mon programme m'indique 3. J'ai essayé plusieurs versions, je n'arrive pas trouver la technique. Pouvez-vous me dire l'astuce à appliquer ?

    Je vous remercie d'avance.

    Cordialement.

    Tuba uba
    Code Java : 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
    import java.util.*;
     
    public class test{
        public static void main(String[] args){
    	int N; int[] temperature;boolean etat,etat2; int compteur;
    	compteur = 0;etat = false;etat2 = true;int i1 = 0;
    	Scanner demande = new Scanner(System.in);
    	System.out.println("Saisir une nombre positif");
    	N = demande.nextInt();
    	temperature = new int[N];
     
    	for(int i = 0; i<N;i++){
    	    System.out.println("Saisir un valeur positif");
    	    temperature[i] = demande.nextInt();
    	}
     
    	for(int j = 0;j<N-2;j++){
    	    if((temperature[j] < 0) &&(temperature[j]<0)&&(temperature[j+1] <0)&&(temperature[j+2]<0)){
    		etat = true;
    	    }
    	    if(etat == true){
    		compteur ++;
    		etat = false;
    	    }
     
    	}
    	System.out.println("Nombre de valeur" + compteur);
     
     
    }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Bonjour,
    avec tableau = -1,-1,-3,-4,-5, 1,2 , -3, -3,-13 tu dois trouver 2, donc je suppose que tu dois trouver (-1,-1,-3) et (-3,-3,-13).
    L'algo sera relativement simple.
    Tu prends un accumulateur qui compter combien de nombre négatifs tu auras rencontré jusque là. Si le compteur atteint 3 alors tu incrémentes le résultat, et si tu tombes sur un nombre positif tu le réinitialise.

    Quelque chose comme :
    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
     
    accumulateur = 0
    résultat = 0
    pour toutes les valeurs v du tableau faire
        si v<0 alors
            accumulateur ++
        sinon
            accumulateur = 0
        fin si
     
        si accumulateur = 3 alors
            résultat ++
            accumulateur = 0
        fin si
    fin pour
    Toujours commencer par un algo avant de pisser du code …

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    merci beaucoup elle marche à merveille

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Avec ce tableau : -1,-1,-3,-4,-5,-1,-6, 1,2 , -3, -3,-13;
    Tu veux trouver combien ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    Pour votre question je dois trouver 1

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    Je me suis trompé je dois trouver 2

  7. #7
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Alors dans ce cas ta question est: «comment puis-je compter le nombre de séries de valeurs négatives dont la longueur est au moins 3 ?» …

    Et là il faut modifier l'algorithme. Tu n'incrémentes ton résultat que lors que tu rencontres une valeur positive et que le nombre de valeurs négatives rencontrées jusque là vaut au moins 3.

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Et donc, quand tu as dit 'Elle marche à merveille', tu avais testé uniquement sur le jeu de données initial ? Et tu n'avais pas testé une série comme celle que j'ai proposée ?????

    Un peu naïf comme test.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    C'est vrai vous avez raison, vous êtes ingénieur qualité moi je suis qu'un simple étudiant en reconversion d'où la différence

  10. #10
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour,
    Dans ce cas, la solution diffère sensiblement :
    Tu parcours la liste de données.
    Tu ajoutes 1 dans un compteur à chaque fois que tu rencontres une valeur négative.
    Lorsqu'une valeur positive est trouvée, tu compares ton compteur au nombre de valeur mini que tu veux détecter (3 dans ton cas). Si oui, tu incrémentes le nombre d’occurrences trouvées. Dans les 2 cas, tu remets ton compteur à 0.

    N'oublies pas :
    - D'initialiser tes valeurs de compteurs avant la lecture de la table (certains logiciels le font directement mais ce n'est pas le cas pour tous).
    - De regarder ce qui te reste à la fin de la lecture de la table. Car si la dernière valeur est négative, le test ne sera pas exécuté et tu risques de ne pas tenir compte du dernier 'train' de valeurs négatives.

    Conseil :
    Mets en place ton algorithme sur un cas simple, ensuite, essaies de penser aux cas spéciaux pour le valider. Évidemment, si tu as un grand nombre de listes à ta disposition, tu peux aussi essayer de 'blinder' ton algo en les traitant.
    Les problèmes sont souvent en début (initialisation) et en fin de traitement....
    Belle journée à tous...
    Windows 10 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

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

Discussions similaires

  1. Affichage unique des valeurs négatives
    Par AKRAM77 dans le forum Excel
    Réponses: 5
    Dernier message: 21/05/2015, 09h55
  2. [Débutant] MATLAB change des valeurs négatives en valeurs nulles
    Par chevalvapeur dans le forum Images
    Réponses: 14
    Dernier message: 04/12/2009, 09h06
  3. Réponses: 11
    Dernier message: 25/08/2009, 19h12
  4. Détection des valeurs aberrantes
    Par Boolbola dans le forum R
    Réponses: 3
    Dernier message: 15/01/2009, 09h36
  5. Réponses: 1
    Dernier message: 13/03/2007, 09h52

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