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 :

[Exercices] Liste d'exercices corrigés en shell script et bash


Sujet :

Shell et commandes GNU

  1. #41
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Freedom57 Voir le message
    Qu'en pensez vous?
    Ben déjà c'est bien d'avoir créé une fonction ce qui permet de dissocier "travail" et "affichage". Si par exemple on ne veut plus afficher le truc mais l'envoyer dans autre chose ça devient possible.
    Mais pourquoi limiter le nombre à 255 ? Si j'ai envie de convertir 12477 en binaire comment je fais ???

    Sinon dans le contrôle des arguments, les elif sont inutiles vu que chaque if réussi se termine par un exit. Ou alors ce sont les exit qui sont inutiles...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  2. #42
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Mais pourquoi limiter le nombre à 255 ? Si j'ai envie de convertir 12477 en binaire comment je fais ???
    Parce que la consigne dit:

    Vous devez travailler sur 8 bits et chaque bit devra être contenu dans une case d'un tableau mono-dimensionnel et à la fin on affiche toutes les cases de ce tableau pour avoir la valeur en binaire lisible de droite à gauche, à partir de la valeur décimale saisie au départ.
    Citation Envoyé par Sve@r Voir le message
    Sinon dans le contrôle des arguments, les elif sont inutiles vu que chaque if réussi se termine par un exit. Ou alors ce sont les exit qui sont inutiles...
    Oui, ils sont inutiles du point de vue de l'interpreteur. Mais pas forcement pour quelqu'un qui doit relire le code, non ? Cela permet de maintenir une cohérence (elif => je suis toujours sur le même type de problème,if => je rencontre un nouveau problème ...). Puisque si je retire les elif, je dois les remplacer par des if, je ne suis pas sûr que ce soit plus lisible. Quoique il en soit, je dois conserver les exit sinon je peux passer une chaîne de caractère à la fonction convert ...

  3. #43
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Freedom57 Voir le message
    Oui, ils sont inutiles du point de vue de l'interpreteur. Mais pas forcement pour quelqu'un qui doit relire le code, non ? Cela permet de maintenir une cohérence (elif => je suis toujours sur le même type de problème,if => je rencontre un nouveau problème ...). Puisque si je retire les elif, je dois les remplacer par des if, je ne suis pas sûr que ce soit plus lisible.
    Ca peut aussi se lire de cette façon: il y a plusieurs étapes de vérification avant de travailler réellement et chaque étape est éliminatoire mais chaque étape est indépendante des autres (on peut la retirer si besoin).
    Code bash : 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
    # Existence d'argument
    if [[ $# != 1 ]] ; then
            echo "Nombre d'argument incorrect"
            exit
    fi
     
    # Argument entier
    if ! let $1 ; then
            echo "$1 n'est pas un entier"
            exit
    fi
     
    # Argument dans la plage acceptable
    if [[ $1 -gt 256 ]] ; then
            echo "$1 > 255"
            exit
    fi
     
    # Ici tout est correct, on peut travailler...
    Pas tout aussi lisible... avec un peu plus de modularité ???

    Citation Envoyé par Freedom57 Voir le message
    Quoique il en soit, je dois conserver les exit sinon je peux passer une chaîne de caractère à la fonction convert ...
    Quand je dis de supprimer les exit, c'est sous-entendu "le faire tout en gardant la fonctionnalité" !!!!!
    T'as plein de elif pour gérer les différents cas, tu rajoutes en final un else pour le cas où tout est ok !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #44
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Pas tout aussi lisible... avec un peu plus de modularité ???
    Oui c'est vrai, c'est modulaire et finalement très compréhensible. Je crois qu'il vaut mieux le faire comme ça plutôt que:

    Citation Envoyé par Sve@r Voir le message
    T'as plein de elif pour gérer les différents cas, tu rajoutes en final un else pour le cas où tout est ok !!!
    Merci pour ton retour.

  5. #45
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    Citation Envoyé par ok.Idriss Voir le message
    Bonjour.

    Hum, il ne me semble pas ... j'ai re-testé : REPLY n'est que la variable par défaut d'un read.

    read => $REPLY existe avec la valeur lue
    read line => $line existe avec la valeur lue mais pas $REPLY


    Et personnellement je préfère nommer mes variables dans la mesure où ça ne déteint pas sur les performances.

    Je déterre un vieux sujet, mais c'est juste pour dire qu'en bash, il y a tout de même une différence entre la variable $REPLY du read et une variable que l'on nommera explicitement, voici un exemple parlant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ read < <(echo -e '\t toto')
    $ echo "$REPLY"
    	 toto
    $ read VAR < <(echo -e '\t toto')
    $ echo "$VAR"
    toto
    Après, c'est peut-être un bug ...
    Cordialement.

Discussions similaires

  1. Exercice liste liée
    Par Isendar dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 30/05/2008, 07h50
  2. Liste chaînée , exercice simple et perte d'élément
    Par Alternative451 dans le forum C
    Réponses: 1
    Dernier message: 21/04/2008, 15h07
  3. Probleme exercice list
    Par Gebudi. dans le forum C++
    Réponses: 6
    Dernier message: 31/07/2006, 15h43

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