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 :

[langage] algo de bissection dans mon code


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [langage] algo de bissection dans mon code
    Bonjour!
    voila, je tente de faire un algo de bisection en vain, d'autant plus que je ne connais pas perl et que je tatonne pour coder ca.
    alors je mets mon code.
    quelqu'un pourrait il me dire comment faire et ou je me plante?
    merci d'avance!
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #!/usr/bin/perl
    #
    #
    #
    use DBI;
    require '/data/iddncgi/util.pl';
    print "\n";
    $cpt1 = '1';
    $cpt2 = '1';
    $debut_oeuvre = '102061';
    $milieu_oeuvre = ($fin_oeuvre - $debut_oeuvre)/2;
    $fin_oeuvre = '102161';
    $debut_aut = '102061';
    $milieu_aut = ($fin_aut - $debut_aut)/2;
    $fin_aut = '102161';
    &ConnectToBase("iddn");
    while ($debut_oeuvre, $fin_oeuvre, $debut_aut, $fin_aut)
    {
        $b = &SQL_Execute("SELECT md FROM oeuvre WHERE numero = '$debut_oeuvre'");
        $c = &SQL_Execute("SELECT md FROM oeuvre WHERE numero = '$fin_oeuvre'");
        $md1_oeuvre = $b->fetchrow();
    #$b->finish;
        print "MD1_oeuvre : $md1_oeuvre\n";
        $d = &SQL_Execute("SELECT md FROM aut WHERE numero = '$debut_aut'");
        $e = &SQL_Execute("SELECT md FROM aut WHERE numero = '$fin_aut'");
        $md1_aut = $d->fetchrow();
    #$d->finish;
        print "MD1_aut : $md1_aut\n";
        print "comparaison de MD1 numero $cpt1 \n";
        $cpt1++;
        print "numeros de ligne: aut=$debut_aut, oeuvre=$debut_oeuvre \n";
        if($md1_oeuvre == $md1_aut)
        {
            print "LES MD5 SONT IDENTIQUES, C\'EST CORRECT!\n";
        }
        else
        {
            print "LES MD5 SONT DIFFERENTS, CHERCHEZ L\'ERREUR!\n";
            $fin_oeuvre = $fin_oeuvre - $milieu_oeuvre;
            $fin_aut = $fin_aut - $milieu_aut;
    #    exit;
        }
        print "\n";
    }
    $b->finish;
    $d->finish;
    merci!!!

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    aie aie, g vraiment besoin d'aide!!!
    svp aidez moi!!!!!!!

  3. #3
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut Re: algo de bissection dans mon code
    Citation Envoyé par killy
    voila, je tente de faire un algo de bisection en vain, d'autant plus que je ne connais pas perl et que je tatonne pour coder ca.
    ben, c'est l'algo ou le code qui t'embête?
    si c'est l'algo, ce n'est pas le bon forum, si c'est le code, sois plus précis sur ce qui ne va pas: tout le monde n'est pas forcé de savoir ce qu'est la bisection...

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    pardon, je crois que ca s'appelle plutot la dichotomie, mais je suis pas certain...lol
    ceci dit, je veux faire ne boucle non infinie et je ne c pas comment faire pour que le code s'execute tant que les deux champs ne sont pas similaires!
    c'est a dire que la ou ily a le else, le programme ne devrait pas s'arreter mais je ne cpas comment formuler une boucle correctepour ca. je suis embete. voila, j'espere avoir ete plus precis mais c difficile.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Salut...

    Bein c'est supra simple, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    condition_darret = FALSE;
    while(condition_darret, bla, bla, bla)
    {
       si( machin = chose)
       {
            // c'est bon... tout roule !
       }
       else
        {
            // oula, c'est pas bon, j'arrete la boucle !!!
            condition_darret= TRUE;
         }
    }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut ...
    si ça peut t'aider : l'opérateur de comparaison de chaînes de caractères en Perl, c'est eq, et pas ==, et pour contrôler simplement ton 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
    $encore = TRUE;
    while ($encore, $debut_oeuvre, $fin_oeuvre,...){
      ...
      if($md1_oeuvre eq $md1_aut) {
        #si les chaines sont exactement identiques
        print "LES MD5 SONT IDENTIQUES, C\'EST CORRECT!\n";
        #fin de la boucle
        $encore = FALSE;
      } else {
        # modif variables pour la suite de la recherche
        print "LES MD5 SONT DIFFERENTS, CHERCHEZ L\'ERREUR!\n";
        $fin_oeuvre = $fin_oeuvre - $milieu_oeuvre;
        ...
      }
    }
    http://www.enstimac.fr/Perl/DocFr.html

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

Discussions similaires

  1. utiliser le langage latex dans mon code java
    Par guim2708 dans le forum Général Java
    Réponses: 0
    Dernier message: 27/05/2009, 22h08
  2. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52
  3. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02
  4. Réponses: 10
    Dernier message: 06/10/2005, 22h25
  5. Réponses: 1
    Dernier message: 21/02/2005, 12h40

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