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

Shell et commandes GNU Discussion :

calcul de deux nombres en shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut calcul de deux nombres en shell
    bonjour à tous,
    j'ai une petite qeuestion qui va vous sembler banale mais lorsque onne sait pas, on ne pourra jamais le savoir à moins de vous le demander
    voilà je veux faire la somme de deux nombre : x=90.23 et y= 0
    je fais pour ensuite ajouter d'autres nombres mais il m'affiche syntaxe erreur
    je pense que c un problème de type!!!
    est ce que vous pouvez m'aider?
    merci

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    si tu veux utilisez des variables je te conseille cette methode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat=$(echo $X" "$y"+ ps. quit" | dc)
    si tu es habituer au RPN plus casse pied sur les petits calcul mais le reve pour les gros....

    si tu est habitué à l'algebraique alors (ideal pour les petits calculs mais galere pour les gros):

    la notation $(( truc + machin )) ne marche pas pour tous les shells donc cette methode est à proscrire si tu risques un jour de donner ton script en exemple sur un forum ou de le donner à un autre utilisateur. de plus ne pas oublier les espaces apres et avant les parenthéses.

  3. #3
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut
    merci pour ta réponse mais je ne comprends rien à ces deux syntaxes
    il m'affiche
    dc: stack empty
    ça veut dire quoi et qu'est ce que je dois faire?

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    la notation polonaise inverse
    empiles les valeurs et après tu calcules

    resultat=$(......................)
    le retour d'affichage de la commande entre () est valorisé dans resultat

    concrètement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    asterix(root/root)[PASDEBASE]/exploit/unix/bin/fp>echo $x" "$y" + ps. quit" | dc                
    5
    asterix(root/root)[PASDEBASE]/exploit/unix/bin/fp>r=$(echo $x" "$y" + ps. quit" | dc)
    asterix(root/root)[PASDEBASE]/exploit/unix/bin/fp>echo $r
    5
    asterix(root/root)[PASDEBASE]/exploit/unix/bin/fp>
    attention aux majuscules/minuscules c'est peut etre pourquoi ton stack (la pile de données) est vide

  5. #5
    Membre éclairé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Par défaut
    Citation Envoyé par nina2007 Voir le message
    bonjour à tous,
    voilà je veux faire la somme de deux nombre : x=90.23 et y= 0
    je fais pour ensuite ajouter d'autres nombres mais il m'affiche syntaxe erreur
    je pense que c un problème de type!!!
    est ce que vous pouvez m'aider?
    merci
    Je me demande si en shell c'est possible de faire des calculs sur des flottants. A mon avis, le shelle n'opere que sur les entiers. Il faudra vérifier

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ggnore@info1:~ $ echo "5.123 + 1.321" | bc
    6.444
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  7. #7
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut
    ceci marche bien echo "5.123 + 1.321" | bc
    mais si je veux récupérer la somme dans une variable s...ça marche pas
    je fais quoi?

  8. #8
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ bla=$(echo "5.123 + 5.432" | bc)
    $ echo $bla
    10.555
    frp31 te l'avait déjà indiqué
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  9. #9
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut
    oui...merci ça marche

    merci à vous tous:yaisse 2:

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

Discussions similaires

  1. [WD12] Calcul du PGCD de deux nombres
    Par orditosh dans le forum WinDev
    Réponses: 10
    Dernier message: 15/04/2009, 17h39
  2. Réponses: 6
    Dernier message: 09/11/2007, 19h33
  3. comment calculer le produit de deux nombres en PHP
    Par batalich dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2007, 09h02
  4. Réponses: 9
    Dernier message: 12/10/2006, 00h36
  5. Algorithme permettant de calculer le PGCD de deux nombres
    Par zeyd dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 25/11/2005, 20h37

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