Soyez le premier à donner votre avis sur cette source.
Vue 3 502 fois - Téléchargée 223 fois
// Fichiers d'en-tête (header) #include <iostream.h> // Entrée du programme ( Fonction principale "main" ) int main(void) { // Déclaration et initialisation de "x" chaine de caractéres char *Unite[9]; Unite[0] = "zero"; Unite[1] = "un"; Unite[2] = "deux"; Unite[3] = "trois"; Unite[4] = "quatre"; Unite[5] = "cinq"; Unite[6] = "six"; Unite[7] = "sept"; Unite[8] = "huit"; Unite[9] = "neuf"; // Déclaration et initialisation de "x" chaine de caractéres char *Bizzare[6]; Bizzare[0] = ""; Bizzare[1] = "onze"; Bizzare[2] = "douze"; Bizzare[3] = "treize"; Bizzare[4] = "quatorze"; Bizzare[5] = "quinze"; Bizzare[6] = "seize"; // Déclaration et initialisation de "x" chaine de caractéres char *Dizaine[9]; Dizaine[0] = ""; Dizaine[1] = "dix "; Dizaine[2] = "vingt "; Dizaine[3] = "trente "; Dizaine[4] = "quarante "; Dizaine[5] = "cinquante "; Dizaine[6] = "soixante "; Dizaine[7] = "soixante-dix "; Dizaine[8] = "quatre-vingt "; Dizaine[9] = "quatre-vingt-dix "; cout << "Programmer par \"Duckz\"\n\nCe programme prend en compte\nles nombres entier non signe\nde 0 a 9999."; // Boucle infini ( Boucle "for" non paramétré ) for(;;) { // Déclaration et initialisation des variables unsigned int a = 0, b = 0, c = 0, d = 0, y = 0, z = 0; // Affiche à l'écran... cout << "\n\nEntrez un chiffre : "; // Enregistre dans la variable "a" l'entrée du clavier cin >> a; if ( a > 9999 ) cout << "\nCe programme ne traite pas\nles nombres superieur a 9999"; else { // Affiche à l'écran... cout << "Votre chiffre en lettre : "; if ( a == 0 ) cout << Unite[0]; else { d = a / 1000; a %= 1000; c = a / 100; a %= 100; b = a / 10; a %= 10; // Serie de conditionnement if ( a > 0 ) y = 0; if ( b > 0 ) y = 1; if ( c > 0 ) y = 2; if ( d > 0 ) y = 3; // Traitement selon le conditionnement switch (y) { case 3 : if ( d == 1 ) cout << "mille "; else cout << Unite[d] << " mille "; if ( c == 0 && b == 0 && a == 0 ) break; case 2 : if ( c == 1 ) cout << "cent "; if ( c > 1 ) cout << Unite[c] << " cents "; if ( b == 0 && a == 0 ) break; case 1 : if ( b == 1 && a > 0 && a < 7 ) { cout << Bizzare[a]; break; } if ( b == 7 && a > 0 && a < 7 ) { if ( a == 1 ) cout << Dizaine[6] << "et " << Bizzare[a]; else cout << Dizaine[6] << Bizzare[a]; break; } if ( b == 9 && a > 0 && a < 7 ) { if ( a == 1 ) cout << Dizaine[8] << Bizzare[a]; break; } if ( b > 0 && b != 8 && a == 1 ) cout << Dizaine[b] << "et "; else cout << Dizaine[b]; case 0 : if ( a == 0 ) break; cout << Unite[a]; break; } } } } return 0; }
17 oct. 2002 à 16:54
...
17 oct. 2002 à 22:04
sinon ca marche très bien. (faut aussi juste faire un test si le nombre est négatif)
18 oct. 2002 à 10:19
Même remarque que kjus. N'hésite pas à retravailler ton code et à actualiser ta source sur le site
à+
23 oct. 2002 à 17:15
J'ais totalement reforgé et optimisé mon code au maximum.
Le "Bug" ( si on entre autre chose qu'un nombre entier non signé ) et toujours présent.
Prochainement, peut etre, la version v3.0 permettant de gérer des nombre beaucoup plus élevés.
24 oct. 2002 à 15:21
1/ Pas de goto. Débrouille toi mais vire les goto Flag1 (ex : while(je-veux_continuer){...}
2/ for(;;). On utilise généralement while(1)
3/ Les séquences de condition ne sont pas efficace
if(a>0)...
else if(a>...)
else...
On ne refait pas la comparaison à chaque fois
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.