problemes dans un problème, incompréhension
Posté le 18/05/2016 18:10
Bonjour à tous, alors voilà je souhaite créer un programme (sur calculatrice casio graph 35+) pour me faciliter la vie (oui je suis capable de perdre des heures à créer un programme pour gagner quelques secondes en cours...) SAUF QUE je bloque sur mon programme et je ne comprends pas pourquoi mon programme ne marche pas! (pourtant je n'ai pas l'impression que je bloque sur des choses compliquées m'enfin vous me direz je suis très nulle...).
But du programme: on lui donne deux entiers naturels A et B et l'algorithme doit chercher un entier naturel C tel que le reste de la division euclidienne du produit AB par C soit égal à un... En gros "A*C RmdrB=1"... (à utiliser pour des congruences).
Mon programme pour l'instant:
? -> A
?-> B
2-> C
While [b]ARmdrB≠1
A*C->A[/b]
C+1-> C
WhileEnd
C-1->C
C◢
J'ai pour l'instant deux problèmes:
- l.4 pour ma condition de "Tant que" ma calculatrice m'indique une erreur, j'ai donc remplacé par "While (A-BIntg(A/B))≠1" mais je n'aime pas la formule et surtout je ne comprends pas pourquoi ma condition "Rmdr" ne marche pas... une idée ? (avec ou sans parenthèse d'ailleurs).
- l.5, une erreur encore mais pourquoi le produit ne marche pas ? J'ai bien essayé de faire quelque chose de biscornu en intégrant une nouvelle variable X qui prend la valeur A juste avant pour avoir X*C->A mais le problème ne s'arrange pas.
Désolé si ce que je dis n'est pas clair, n'hésitez pas à me demander des précisions!
Merci d'avoir pris le temps de me lire et je l'espère, me répondre,
Bonne soirée!
Droue30.
Citer : Posté le 18/05/2016 18:20 | #
Bonjour Droue30
J'ai modifié ton post pour intégrer correctement le code.
J'ai testé l'algorithme sur ma machine et je n'ai aucune de tes erreurs. As-tu bien utilisé la commande Rmdr sans taper manuellement les lettres ? Tu peux la trouver dans le catalogue ([SHIFT][4]) si besoin. Pour l'instruction de produit, il n'y a pas de raison que ça ne fonctionne pas. Pense à utiliser la touche produit (×), et au pire simplifie en "AC→A".
Par contre l'algorithme n'a pas l'air de marcher... je n'ai pas trop compris ce que tu as fait. Tu peux tout simplement implémenter l'algorithme "bourrin" :
C+1→C
WhileEnd
C◢
Mais on peut faire mieux !
Citer : Posté le 21/05/2016 09:44 | #
Effectivement j'ai réessayé de faire marcher mon programme aujourd'hui et ça a marché!
Mais pour le coup j'ai simplifié avec votre algorithme, c'est plus joli et compréhensible.
Merci beaucoup de m'avoir aidée (et intégré le code comme il faut aussi...)
Bonne journée à vous !