bonjour,
s'il vous plait si quelqu'un peut m'aider dans un script shell qui permet de convertir un chiffre passé en paramètre compris entre 0 à 1000 en lettres!!! merciii d'avance :?
Version imprimable
bonjour,
s'il vous plait si quelqu'un peut m'aider dans un script shell qui permet de convertir un chiffre passé en paramètre compris entre 0 à 1000 en lettres!!! merciii d'avance :?
C'est à dire ? Un chiffre est un caractère comme les autres.
cad un nombre de type entier compris entre 0 et 1000.merci d'avance
la solution que tu cherches est une encapsulation de syntaxes
et ainsi de suiteCode:
1
2
3
4
5
6
7 switch $VAR case valeur) action ;; valeur2) action ;; esac
1 = un
2 = deux
la seule difficulté c'est de gérer les dizaines, centaines et milliers mais la solution est d'encapsuler dans l'ordre
4 caractères de long = millier + centaines + dizaine + unité
3 = centaine + dizaine + unité
2 = dizaine + unité
1 = unités
n'oublies pas de gérer les les pluriels !!!! spéciaux sur les nombres
merciiiiii :):D
voici un petit exemple pour expliquer ce qui se passe au juste :
tu devra donc utiliser des variables auxilières dans ton script, par exemple :Code:
1
2
3
4
5
6 a=123 #entier b=$a" 4" #affiche 123 4 donc "b" est désormais une chaîne c=${b/ /} #affiche 1234 et "c" est une chaine #pour éliminer le "4" tu n'a qu'à faire : d=${c/4/} #et voilà d="123" une chaine
enfin, pas de quoi sinda wrabi m3ak dans ton script :zoubi:Code:aux=${numéro de l'argument} #puis suivre la méthode dessus (pas nécessairement à la lettre) :D
en fait,j'ai mal citer le probleme apparement
le script shell que je veux,il faut que je lui donne un entier entre 0 et 1000: par exple je lui donne 232 et il dois me rendre "deux cent trente deux" voilà ;)
mercii pour ceux qui m'ont repondu et j'epere que j'aurai une reponse qui va m'aider car j'en arrive pas à le faire sachant que je suis encore debutante e programmation shell..
la réponse je l'ai donné après à toi de faire le script maintenant y'a plus rien à faire à part le rédiger.
manifestement tu n'a pas compris alors je reprend
tu découpe la chaine de chiffres 232 par exemple en 2,3,2
tu genre le dernier (unité)
puis le chiffre des dizaineCode:
1
2
3 2) lastchar="deux" ;;
et ainsi de suite de droite à gauche d'où l'imbrication des structures switchCode:
1
2
3
4 3) dizaine="trente" ;;
puis les centaines
après tu gère l'affichage du résultatCode:
1
2
3
4 2) centaine="deux cent" ;;
tu affiche avec un echo $resultat ça donne bien "deux cent trente deux"Code:resultat=$millier" "$centaine" "$dizaine" "$unite
là je peux pas aller plus loin sans le faire completement à ta place...
Bonjour.
Apparemment, ce genre d'exercice est à la mode depuis quelques temps. Plusieurs sujets ont déjà été postés (et pourront peut être t'inspirer, même si ce n'est pas le même langage) :
http://www.developpez.net/forums/d10.../script-shell/ (forum Linux)
http://www.developpez.net/forums/d85...sformer-cpp-c/ (forum C)
http://www.developpez.net/forums/d85...nombre-11-a19/ (forum C)
Après, il serait bien de présenter un début de solution même si ça ne fonctionne pas.
Cordialement,
Idriss
Bon courage pour gérer les "s" et les tirets.
bonjour,
mercii infiniment, j'ai réussi hmdlh grâce à vous de rédiger le script et ça s'exécute sans aucun problème, vraiment mercii pour tous les gens qui m'ont répondu...
cordialement :)