logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C] convertire un nombre en lettres  (Lu 5298 fois)
Sims936

Profil challenge

Classement : 22649/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« le: 29 Octobre 2010 à 00:29:15 »

Salut à tous ,

Etant débutant en prog C , je recherche un type de programme(codes) spécifique :

Je recherche un type de programme en C permettant de traduire un nombre, en toutes lettres, avec certaines conditions :
Le nombre donné en paramètre devra être contenu dans un "int" jusque la simplet, avec comme chaine que : "-0123456789" (dont soustraction :"-")  exemple:  4 = quatre ou 2e exemple: 100-1000 = moins neuf cent )
Et il n'a droit qu'a un seul paramètre sinon renvoyer avec un '\n' , et également donner un message d'erreur dans les autres cas ...

Déja pu trouver quelques info ou types de prog mais me manque beaucoup si quelqu'un connaitrais bien mieux que moi ce qui est sur , déja vu ou déja eu serai cool vu vraiment pas à l'aise...

merciii bien les newbiecontest
« Dernière édition: 29 Octobre 2010 à 00:32:15 par Sims936 » Journalisée

En apprentissage ici ^^
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #1 le: 29 Octobre 2010 à 01:01:41 »

Boarf dans la théorie c'est pas trop compliqué ! Il suffit de découper le nombre en une suite de chiffres.
Cette suite est ensuite traduite en lettres avec des bêtes if(). Il faut juste faire attention à la précision (centaines, milliers, millions...)
Le plus simple est de faire un tableau pour faire la suite. Exemple :

nombre à écrire en lettres : 353257

On le "range" dans un tableau, dans le sens inverse, ce qui donne ça :
tableau[0] = 7
tableau[1] = 5
tableau[2] = 2
tableau[3] = 3
tableau[4] = 5
tableau[5] = 3

Chaque position du tableau nous donnant la précision. Une fois que c'est fait, il faut boucler pour lire tout le tableau :
Code:
while (position du tableau > i)
{
Si (tableau[i] = 0)
{
tableau2[i] = "zero"
}
Si (tableau[i] = 1)
{
tableau2[i] = "un"
}
[etc]
i++
}

Enfin, toutes les 3 positions, tu rajoutes dans tableau 2 les mots "centaines", "milliers"...

Ça reste somme toute assez basique et c'est très probablement optimisable, mais dans la théorie, ça fonctionne. Après, il ne te reste plus qu'à coder !

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Sims936

Profil challenge

Classement : 22649/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #2 le: 29 Octobre 2010 à 01:11:09 »

Thank you je vois déja un peu plus clair ... mais pour comprendre bien va falloir je dormes un peu après aujourd'hui surtout avec ce qui m'att demain !
Mais merci je comprend un peu mieux avec ce que tu viens de me dire ! sa m'éclaire dans mon trou noir
je regarde tout ça, tout demainnn si ce n'est plus ! dsl ma peur prend sur moi
Journalisée

En apprentissage ici ^^
akway

Profil challenge

Classement : 351/54283

Membre Complet
***
Hors ligne Hors ligne
Messages: 151


Voir le profil
« #3 le: 29 Octobre 2010 à 08:27:51 »

yop,

s' il s'agit d'un projet noté, tu vas surement te heurter a la bizzarerie de la langue française, pas de bol.

vingt et un ==> le "et" qui apparait parfois au changement de dizaine...
soixante et onze ==> encore un truc bien visqueux...
 
de memoire le mot cent s'accorde parfois...


bref, si le prof ne t'as pas imposé de langue pour l' écriture, esaie de le faire en anglais c'est plus simple




Journalisée

Please, do NOT feed the Troll.
the lsd
Administrateur

Profil challenge

Classement : 190/54283

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #4 le: 29 Octobre 2010 à 08:53:54 »

En y réfléchissant un peu plus (on est pas forcément très frais à trois heures du matin), il faudrait même découper ton nombre en centaines pour le travailler. Ça serait surement plus simple je pense.

Après effectivement, il y a plein d'exceptions (11 à 16, 21, 31, ..., 70 à 79, 90 à 99...) Ça, c'est chiant à gérer.

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Sims936

Profil challenge

Classement : 22649/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #5 le: 29 Octobre 2010 à 09:05:20 »

Oui j'ai pu voir des gens qui eux les découpais en dizaine centaine millier...
Vais pouvoir commencer juste commencer d'ici 2h.
Journalisée

En apprentissage ici ^^
Sims936

Profil challenge

Classement : 22649/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #6 le: 29 Octobre 2010 à 09:32:41 »

Pour l'écriture je crois le francais est interdit, a nous de definir les noms mais je pense si je met du francais , passera , mais a la base no depuis le debut il nous dises ne pas en mettre donc voir meme possible passera pas !
Et aussi quelques regles je ne suis pas sur si encore celle ci d'actualitée comme : interdit d'avoir de printf...

Bref sa sent pas bon lol

(dsl les fautes et tt je suis sur mon iphone for the moment & opera us enfin.. )
« Dernière édition: 29 Octobre 2010 à 09:41:37 par Sims936 » Journalisée

En apprentissage ici ^^
lemulot

Profil challenge

Classement : 6039/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 34

{EPITECH.}


Voir le profil
« #7 le: 29 Octobre 2010 à 14:36:23 »

Belle essai de triche.
Fait attention, tu risque le -42.

Sinon oui il faudra que tu gere les bizarrie francaises.

En bonus, tu pourra avoir plusieurs langue
Journalisée
Nil

Profil challenge

Classement : 79/54283

Membre Complet
***
Hors ligne Hors ligne
Messages: 223


Voir le profil WWW
« #8 le: 29 Octobre 2010 à 14:41:34 »

Mais, c'est excellent si le français est interdit! Je l'ai codé en Python pour l'anglais il y a quelques mois (c'est une épreuve sur project Euler) et c'était environ 40 lignes. On peut peut-être faire mieux, mais on peut aussi faire pire! Bonne chance pour ton devoir. On peut probablement t'aider si tu demande gentiment
Journalisée
Sims936

Profil challenge

Classement : 22649/54283

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #9 le: 29 Octobre 2010 à 15:57:08 »

Ho oui dur week end
Journalisée

En apprentissage ici ^^
Pages: [1]
  Imprimer  
 
Aller à: