Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

NOMBRES EN LETTRES


Information sur la source

Description

Passe les nombres de 1 à 9999 en lettres en respectant toutes les règles de français
 

Source

  • #include<iostream>
  • using namespace std;
  • void main(void)
  • {
  • int Nb=10000;
  • int Milliers;
  • int Centaines;
  • int Dizaines;
  • int Unites;
  • char NomPart[10][10]={"dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf"};
  • char NomUnite[10][10]={"","un","deux","trois","quatre","cinq","six","sept","huit","neuf"};
  • char NomDizaine[8][17]={"vingt","trente","quarante","cinquante","soixante","soixante-","quatre-vingt","quatre-vingt-"};
  • char NomSpe[3][7]={"cent","-et-un","mille"};
  • while(Nb>9999)
  • {
  • cout<<"quel est le nombre a transcrire en lettres\n";
  • cin>>Nb;
  • if(Nb>9999)
  • cout<<"Le nombre doit etre inferieur a 10000\n";
  • };
  • Milliers=Nb/1000;
  • Nb=Nb%1000;
  • Centaines=Nb/100;
  • Unites=Nb%100;
  • Dizaines=Unites/10;
  • Unites=Unites%10;
  • if(Milliers>1 && Milliers<10)
  • cout<<NomUnite[Milliers]<<" "<<NomSpe[2]<<" ";
  • if(Milliers==1)
  • cout<<NomSpe[2]<<" ";
  • if(Centaines>1)
  • {
  • cout<<NomUnite[Centaines]<<" "<<NomSpe[0]<<" ";
  • if(Unites==0 && Dizaines==0)
  • cout<<"\bs";
  • };
  • if(Centaines==1)
  • cout<<NomSpe[0]<<" ";
  • if(Dizaines>1 && Dizaines!=7 && Dizaines!=9)
  • {
  • cout<<NomDizaine[Dizaines-2];
  • if (Dizaines==8 && Unites==0)
  • cout<<"s";
  • if(Unites>1)
  • {
  • cout<<"-"<<NomUnite[Unites];
  • Unites=0;
  • };
  • if(Unites==1)
  • {
  • Unites=0;
  • cout<<NomSpe[1];
  • };
  • };
  • if(Dizaines==1 || Dizaines==7 || Dizaines==9)
  • {
  • if (Dizaines==7 || Dizaines==9)
  • cout<<NomDizaine[Dizaines-2];
  • if(Dizaines==7 && Unites==1)
  • cout<<"\b"<<NomSpe[1]<<"\b\b";
  • cout<<NomPart[Unites];
  • Unites=0;
  • };
  • if(Dizaines!=0 && Centaines!=0)
  • cout<<" ";
  • cout<<NomUnite[Unites];
  • cout<<"\n";
  • };
#include<iostream>
using namespace std;

void main(void)
{
	int Nb=10000;
	int Milliers;
	int Centaines;
	int Dizaines;
	int Unites;
	char NomPart[10][10]={"dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf"};
	char NomUnite[10][10]={"","un","deux","trois","quatre","cinq","six","sept","huit","neuf"};
	char NomDizaine[8][17]={"vingt","trente","quarante","cinquante","soixante","soixante-","quatre-vingt","quatre-vingt-"};
	char NomSpe[3][7]={"cent","-et-un","mille"};
	while(Nb>9999)
	{
	cout<<"quel est le nombre a transcrire en lettres\n";
	cin>>Nb;
	if(Nb>9999)
		cout<<"Le nombre doit etre inferieur a 10000\n";
	};
	Milliers=Nb/1000;
	  Nb=Nb%1000;
		Centaines=Nb/100;
		Unites=Nb%100;
		Dizaines=Unites/10;
		Unites=Unites%10;
		if(Milliers>1 && Milliers<10)
			cout<<NomUnite[Milliers]<<" "<<NomSpe[2]<<" ";
		if(Milliers==1)
			cout<<NomSpe[2]<<" ";

		if(Centaines>1)
		{
			cout<<NomUnite[Centaines]<<" "<<NomSpe[0]<<" ";
			if(Unites==0 && Dizaines==0)
				cout<<"\bs";
		};
		if(Centaines==1)
			cout<<NomSpe[0]<<" ";
		if(Dizaines>1 && Dizaines!=7 && Dizaines!=9)
		{
			cout<<NomDizaine[Dizaines-2];
			
			if (Dizaines==8 && Unites==0)
				cout<<"s";



			if(Unites>1)
			{
				cout<<"-"<<NomUnite[Unites];
				Unites=0;
			};
			if(Unites==1)
			{
				Unites=0;
				cout<<NomSpe[1];
			};
		};
		if(Dizaines==1 || Dizaines==7 || Dizaines==9)
		{
			if (Dizaines==7 || Dizaines==9)
				cout<<NomDizaine[Dizaines-2];
			if(Dizaines==7 && Unites==1)
				cout<<"\b"<<NomSpe[1]<<"\b\b";
			cout<<NomPart[Unites];
			Unites=0;
		};
		if(Dizaines!=0 && Centaines!=0)
		cout<<" ";
		cout<<NomUnite[Unites];
		cout<<"\n";
};

Commentaires et avis

signaler à un administrateur
Commentaire de rrk275 le 02/12/2005 23:14:11

juste une question ?
ne pense tu pas que le mettre sous forme de fonction genre (pour que ce
soit reutilisable..)
char *nbenlettres()
{
..
}
en fin bon c'est comme meme bien.

signaler à un administrateur
Commentaire de dletozeun le 02/12/2005 23:59:50

genial! Je me souviens d'une source qui fait la meme chose mais qui est nettement plus ambitieuse puisqu'elle allait jusqu'aux milliards! En tout je m'etais bien amusé dessus! Elle faisais des fautes d'othographes enormes et de fois c'etait pas du tout francais! Je testerais une autre fois cette source parce la il est trop tard....

signaler à un administrateur
Commentaire de max12 le 04/12/2005 02:18:41 administrateur CS

Ouais si c'est pas sous forme de fonction ça n'a pas grand intérêt (sauf celui éducatif)

A+

signaler à un administrateur
Commentaire de blassiou083 le 25/01/2006 23:13:06

Après il est "relativement" facile de le mettre sous forme de fontion void ChiffesEnLettre(int Nb)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

convertir les nombres en lettres [ par djamine ] salut les amisje cherche un code pour convertir les nombres (1 2 3 .....) en lettres ( un, deux , trois....)l'utilisateur donne le nombre et le progra Acces a chaque bit d'un nombre binaire [ par djemmy ] Je dois obtenir, à partir de 4 nombres décimals(compris entre 0 et 15), les 4 nombre en binaire correspondants. De ces nombres binaires je dois en fab nombres aléatoires en c++ [ par johanb ] bonjour a tous, voici mon problême.Dans un programme, je dois générer deux fois un nombre aléatoire entre 0 et n (appelé max dans le programme). Voici Extraire deux nombres d'un nombre [ par cyberlewis ] Slt,Par exemple j'ai le nombre hexa : F5CBComment extraire ce nombre en deux (dans deux variables), ce qui donnerait : "F5" et "CB" svp ?Merci d'avanc Liste de nombres aléatoires [ par byoushin ] Bonjour,je cherche comment générer une liste de nombre aléatoire.J'ai essayé en initialisant dans main srand(GetTickCount()); ou aussi srand(time(NULL générateur de nombre aléatoire [ par sadral ] Je fais des recherches sur les générateurs de nombres pseudo-aléatoires et je cherche de la doc dessus,si il y en a qui ont fais des études dessus, ca calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ] Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas Nombres aléatoires [ par mondrone ] Voila : Avant j'utilisais randomize() pour r&#233;init le g&#233;n&#233;rateur de nombres al&#233;atoires et rand() ou random(x) pour g&#233;n&#233;re Chiffre ou lettre ? [ par ralebole ] Bonjour a tousJe voudrais savoir comment faire pour savoir si c'est un nombre ou une chaine des lettresExemple char petibuf[10];la personne rentre nor RECHERCHE DE SOURCE [ par VRSMK13 ] bonjour a tous voila j'essaye de faire un programe en c sous linux... le principe est le suivant en fonction du nombre des sous reseaux le programme d


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.