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 Perl Discussion :

problème avec while


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut problème avec while
    J'ai un problème avec ma boucle while

    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
    use strict;
    use warnings;
     
    my $val = 0;
     
    while($val < 65 ){
        $val += 3;
     
        if($val > 65){
            $val -= 3;
            last;
        }
     
    }
     
    # 63 => 66
    A chaque passage, j'ajoute 3 jusqu'à ce que j'obtienne le nombre le plus proche mais INFÉRIEUR à 65. Donc, quand j'arrive à 63 si l'ajout suivant fait dépasser le seuil de 65, je ne dois pas effectuer l'opération. Par contre, si l'ajout avait été de 2, j'aurais dû le faire.

    Le problème réel est plus compliqué et le j'appelle un sous-programme qui me renvoie une valeur croissante au cours du temps. Je ne peux donc pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    use strict;
    use warnings;
     
    my $val = 0;
     
    while(($val += 3) < 65 ){
     
    }
    Merci pour votre aide,

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Hello,

    le pb que je vois dans ta boucle while, c'est que si ton total > 65, tu retire 3. Tant que total < 65, tu rajoute 3.

    Si total = 64, dans la boucle ton programme va rajouter 3, donc total = 67.
    Ensuite, tjs dans la boucle, ton programme va retirer 3 puis total est > 65.

    Total repasse à 64 et voilà comment on fait mumuse avec une boucle infinie

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    le pb que je vois dans ta boucle while, c'est que si ton total > 65, tu retire 3. Tant que total < 65, tu rajoute 3.

    Si total = 64, dans la boucle ton programme va rajouter 3, donc total = 67.
    Ensuite, tjs dans la boucle, ton programme va retirer 3 puis total est > 65.

    Total repasse à 64 et voilà comment on fait mumuse avec une boucle infinie
    ... en effet, d'où le last dans ma boucle if($val > 65)

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    oups, je commence à rouiller en Perl

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    Bonjour,

    Pourrais-tu expliquer ton problème car là l'énoncé n'est pas clair.

    Merci.

    Carlozi.

  6. #6
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    use strict;
    use warnings;
     
    my $val = 0;
     
    while($val < 65 ){
        $val += 3;
     
        if($val > 65){
            $val -= 3;
            last;
        }
        print "$val\n";
    }
    Je cherche à simplifier ce script qui affiche les valeurs de 3 à 63 mais sans utiliser while(($val += 3) < 65 ).
    Je cherche un moyen de supprimer le if($val > 65) mais je pense que c'est impossible.

Discussions similaires

  1. Problème avec while
    Par dot-_-net dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 20/04/2008, 16h14
  2. [MySQL] problème avec while
    Par scastong dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/02/2008, 20h42
  3. [MySQL] problème avec while
    Par dudu134 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/11/2007, 08h51
  4. [MySQL] Problème avec while
    Par Whinze dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/06/2007, 17h33
  5. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30

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