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] Arithmétique en virgule flottante


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 9
    Points
    9
    Par défaut [langage] Arithmétique en virgule flottante
    Bonjour,

    j'ai une équation, dans laquelle j'exprime une tension en fonction d'atténuations qui s'exprime comme ci-dessous:

    Tension = 20 - 0.00193At + 0.00302Att - 0.00259Attt - 0.0157Atttt - 0.00205Attttt - 0.00348Atttttt + 0.00333Attttttt

    Ce que j'aimerais bien savoir s'il vous plait, comment peut on coder de manière à ce que je puisse multiplier tous les coefficients de l'equation par 1000, en d'autres termes de façon à ce que je puisse obtenir l'expression suivante (en faisant apparaître l'opérateur de multiplication):

    Tension = 20 - 1.93*At + 3.02*Att - 2.59*Attt - 15.7*Atttt - 2.05*Attttt - 3.48*Atttttt + 3.33*Attttttt

    A l'heure actuelle, j'ai réussi uniquement à coder le programme de manière à ce que je puisse obtenir l'équation suivante (faire apparaître l'opérateur de multiplication) grâce au ptit programme ci-dessous:

    while($ligne){
    if ($ligne =~ /\=/) {
    $ligne =~ s/A/\*A/g;

    la ligne représente l'équation linéaire de tension.


    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut
    Bonjour,

    Bon j'ai essaye de comprendre ce que tu veux.
    Voila ce que je te propose :
    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
     
    my $ligne = "Tension = 20 - 0.00193At + 0.00302Att - 0.00259Attt - 0.0157Atttt \
    - 0.00205Attttt - 0.00348Atttttt + 0.00333Attttttt";
    if ($ligne =~ /\=/) {
        $ligne =~ s/A/\*A/g;
    }
    #print $ligne . "\n";
    my @op = split(/([0-9]*?\.*[0-9]*?\*At*)/, $ligne);
     
    foreach my $value (@op) {
        if ($value =~ /A/) {
            $value =~ s/(At*)/1000/;
            $value = eval $value;
            $value .= "*$1";
            print $value . "\n";
        }
    }
    $ligne = join('', @op);
    print $ligne . "\n";
    Il se peut que ca ne te convienne pas

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Re: Arithmétique en virgule flottante
    merci beaucoup pour le reponse, je vais tester le programme et je vous tiendrais au courant de la suite.
    juste une question par rapport au programme, la variable op represente quoi exactement (l'operateur de multiplications?)
    merci

  4. #4
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut Re: Arithmétique en virgule flottante
    Citation Envoyé par marouanitos
    juste une question par rapport au programme, la variable op represente quoi exactement (l'operateur de multiplications?)
    La variable contient les operations. Elle ne sert que pour un moment.
    Mais le mieux est de tester par vous-meme.

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

Discussions similaires

  1. [D7] Problème de virgule flottante
    Par Magnus dans le forum Langage
    Réponses: 17
    Dernier message: 22/09/2005, 15h56
  2. Probléme de débordement en virgule flottante
    Par wikers dans le forum Langage
    Réponses: 7
    Dernier message: 05/08/2005, 18h35
  3. convertir un edit en virgule flottante
    Par bertrand_declerck dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2005, 11h07
  4. Réponses: 6
    Dernier message: 16/05/2004, 20h03
  5. [Kylix] Kylix3: Pb de virgule flottante
    Par hubble dans le forum EDI
    Réponses: 1
    Dernier message: 22/06/2003, 17h36

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