|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
Étudiant Inscription : février 2013 Messages : 15 ![]() |
ok merci beaucoup, donc je garde jusqu'a 999 (la simplification des centaine ce n'est pas grave, je n'ai plus trop de temps, j'ai encore le programme a faire)
donc après 1000 ca donnerait simplement : DEBUT Fonction(milliers) Si n=1000 Faire afficher "mille" et Fonction(c) Si n>1000 Faire afficher Fonction(c) et mille et Fonction(c) FIN |
|
|
00
|
|
|
#22 |
![]() ![]() Patrick GonordEnseignant Chercheur Inscription : juin 2005 Messages : 5 434 ![]() |
Cet algorithme est faux : tu dois au moins essayer de le faire tourner mentalement sur des exemples pour le confirmer un minimum. Dans ton cas si on a 1500 il va afficher "un mille...".
Il faut être plus attentif et ne pas y aller au pif. Tu perds un temps fou à procéder au hasard. Il faut aussi être plus précis sur ta manière d'écrire un algorithme et notamment bien préciser sur quoi il s'applique. Je te propose plutôt une formulation du genre: //--------------------------------------------------
// L'algorithme FonctionMilliers affiche le nombre entier n , 0<= n <1000000
FonctionMilliers(n)
DEBUT
SI n< 1000000
SI n>1999 FonctionCentaines(n/1000)
SI n>999 afficher "mille"
FonctionCentaines(n modulo(1000))
FIN
//--------------------------------------------------//--------------------------------------------------
// L'algorithme FonctionCentaines affiche le nombre entier n , 0<= n <1000.
// si mode = normal , en appliquant la règle du pluriel de vingt et cent
// si mode = singulier en gardant le singulier
//
FonctionCentaines(n, mode)
DEBUT
...
FIN
//--------------------------------------------------
// L'algorithme FonctionMilliers affiche le nombre entier n , 0<= n <1000000
FonctionMilliers(n)
DEBUT
SI n< 1000000
SI n>1999 FonctionCentaines(n/1000, singulier)
SI n>999 afficher "mille"
FonctionCentaines(n modulo(1000), normal)
FIN
//--------------------------------------------------
__________________
Publication : Concepts en C Mon avatar : Glenn Gould -------------------------------------------------------------------------- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
|
|
|
30
|
|
|
#23 |
Étudiant Inscription : février 2013 Messages : 15 ![]() |
merci merci bien pour vos aides,
mais je ne comprend pas, pourquoi : SI n>1999 FonctionCentaines(n/1000) ? ah oui c'est bien mieux, je n'avais pas pensé à : SI n>999 afficher "mille" FonctionCentaines(n modulo(1000)) |
|
|
00
|
|
|
#24 |
|
Membre expérimenté
![]() Inscription : octobre 2004 Messages : 329 ![]() |
Si on est plus grand que "mille neuf cent quatre-vingt-dix-neuf", alors on commence à devoir dire quelques chose avant "mille". La division entière par 1000 revient à transformer "112458" en "112", et c'est bien "cent douze" qu'il faut afficher avant "mille".
|
|
|
00
|
|
|
#25 | ||
Étudiant Inscription : février 2013 Messages : 15 ![]() |
ah ok merci !
vraiment merci a tous pour votre aide sur l'algo, vous avez du me prendre pour un vrai nul mais c'est le cas mais au moins vous m'avez aidé et permis de comprendre donc merci beaucoup !!!!!! j'ai fais le programme en c (j'espère qu'il n'y aura pas trop d'erreur...) et promis après je vous laisse tranquille c'est promis Code :
pour le n modulo 1000 j'ai trouvé la forme sur internet parce que comme vous l'avez compris je ne suis pas très bon dans la prog... |
||
|
|
00
|
|
|
#26 |
|
Membre expérimenté
![]() Inscription : octobre 2004 Messages : 329 ![]() |
Quand tu postes, si tu peux mettre le code entre balise "[code]" ça aide à lire.
(Et ce que tu as posté n'est pas du C) |
|
|
00
|
|
|
#27 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 614 ![]() |
|
|
|
00
|
|
|
#28 |
Étudiant Inscription : février 2013 Messages : 15 ![]() |
ah mince, merci, bon ba je vais repotassé mon programme pour avoir du c...
|
|
|
00
|
|
|
#29 | ||
Étudiant Inscription : février 2013 Messages : 15 ![]() |
Je bloque, comment on fait pour traduire ça en c :
Code :
Code :
'1':begin val(s[3],c);write('cent ',tran(c));end; |
||
|
|
00
|
|
|
#30 | ||
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 614 ![]() |
Si « tran » est le nom de ta fonction, alors :
Citation:
… soit le nom de la fonction immédiatement suivi par ses parenthèses (avec des espaces éventuels quand même) et précédé par son type comme pour n'importe quelle variable. Le type d'une fonction correspond donc au type de la valeur qu'elle va retourner. Il n'y a malheureusement pas de type « string » en C. La manière normale des les manipulers en C consiste à utiliser un pointeur vers un char, et plus précisément le premier des caractères de la chaîne à transmettre, laquelle doit se terminer par un caractère nul « '\0' » (code ASCII 00) pour qu'on puisse en détecter la fin. Ce caractère est automatiquement ajouté lorsque tu définis des chaînes constantes avec les guillemets « " " » et quand tu utilises les fonctions standard de manipulation des chaînes. Ça veut dire que tu peux facilement échanger des chaînes de caractères toutes faites mais qu'il est plus difficile de les modifier et/ou de changer leur taille. Citation:
On utilise beaucoup les blocs entre accolades en C. Ils sont parfois facultatifs mais toujours nécessaires pour contenir le code d'une fonction. |
||
|
|
00
|
|
|
#31 |
Étudiant Inscription : février 2013 Messages : 15 ![]() |
ok, merci, mais comment on fait pour utilisé les chiffres de la 2eme colonne, on est obligé de passé par des matrices ou on peut directement appelé la 2eme colonne ?
|
|
|
00
|
|
|
#32 | |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 614 ![]() |
Citation:
En l'occurrence, tu peux écrire ton programme sans jamais avoir besoin de retourner une chaîne de caractère. À dire vrai, ta fonction pourrait même ne jamais rien retourner du tout, et être une procédure en Pascal. Les seules chaînes que tu as à manipuler sont celles que tu envoies vers l'écran directement. |
|
|
|
00
|
|
|
#33 | ||
Étudiant Inscription : février 2013 Messages : 15 ![]() |
OK, donc ça donne ça :
Code :
|
||
|
|
11
|
|
|
#34 |
|
Membre émérite
![]() ![]() |
Bonjour,
Les fonctions imbriquées en C, ce n'est pas standard, et les implémentations sont généralement assez foireuses (pile exécutable, trampolines, etc.). Donc, à moins de savoir ce que tu fais, il vaut mieux éviter. Surtout que là, ça vient sûrement d'une absence de compréhension du fonctionnement de la fonction. return est sans doute ce que tu cherches... Enfin, je pense qu'il vaut mieux que tu relises un cours de C à tête reposée. Bonne journée !
__________________
Récursivité en C : épidémie ou hérésie ? "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman |
|
20
|
|
|
#35 | ||
Étudiant Inscription : février 2013 Messages : 15 ![]() |
J'aimerais que vous me disiez exactement ce qui ne va pas et pourquoi ca ne va pas et comment rectifier les erreurs de mon programme car me dire de revoir mes cours ca ne m'avance pas beaucoup...
Code :
|
||
|
|
00
|
|
|
#36 | |||||
![]() ![]() Patrick GonordEnseignant Chercheur Inscription : juin 2005 Messages : 5 434 ![]() |
Code :
La fonction ne renvoie rien donc son type de retour est void, pas char const *. Sur ce genre de fonctions, au lieu d'un switch, il est avantageux d'utiliser un tableau : Code :
Citation:
__________________
Publication : Concepts en C Mon avatar : Glenn Gould -------------------------------------------------------------------------- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
|
|||||
|
|
20
|
|
|
#37 | ||
Étudiant Inscription : février 2013 Messages : 15 ![]() |
ok, merci, c'est plus clair mais ce qui est très difficil c'est de savoir quoi utiliser (le " static char const")
ah daccor on n'a pas le droit d'écrire un fonction dans une autre en C... donc pour les reste c'est : Code :
|
||
|
|
00
|
|
|
#38 | ||
![]() ![]() Patrick GonordEnseignant Chercheur Inscription : juin 2005 Messages : 5 434 ![]() |
Code :
__________________
Publication : Concepts en C Mon avatar : Glenn Gould -------------------------------------------------------------------------- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com