Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction entier et numérique

    16 avril 2015 à 9:06:40

    Bonjour à tous,

    Pourriez vous m'aider svp

    a) Ecrire une fonction "est_entier" qui vérifie que l'argument passé est bien de type entier (-1; 1; 2) et affiche un message spécifique si ce n'est pas le cas

    b) Ecrire une fonction "est_numérique" qui vérifie que l'argument passé est bien de type numérique ( -1.3  2.7). Le séparateur de décimales est le point. La fonction affichera un message spécifique si ce n'est pas le cas. 

    c) Proposer une solution alternative originale "est_numérique2" qui exploite le code de retour d'une commande $?  pour déterminr si un argument passé est numérique

    a)

    #!/bin/bash

    function est_entier {

    if [ $1 != [+--]([0-9])+ ]

    then

            echo pas un nombre entier

    else

           echo $1

    fi

    }

    b)

    function est_numerique {

    if [ $1 != [+--]([0-9])+[/.]([0-9])+ ]

    then

         echo est pas numerique

    else

         echo $1

    fi

    }

    c) Je ne sais pas comment faire

    Merci d'avance 

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2015 à 10:55:52

      salut,

      et si tu testais tes codes avant de les poster ?

      tu verrais que ça ne fonctionne pas !

      bash ne gère pas les regex, au moins avec sa commande de test simple; tu dois utiliser la commande de test étendu.

      tes regex sont des regex étendues, alors que bash ne comprend que les regex simples. et en plus elles sont fausses.

      il est par ailleurs recommandé de mettre la regex dans une variable avant de l'utiliser.

      pour le 'c)', tu pourrais utiliser egrep , avec tes regex étendues. ;)

      -
      Edité par dantonq 16 avril 2015 à 10:57:37

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

      Fonction entier et numérique

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown