est01 Posté(e) le 20 octobre 2016 Auteur Signaler Posté(e) le 20 octobre 2016 Lorsqu'on applique la fonction factoriser_entier sur les nombres de 0! à 20! et qu'on calcule 0! à 20!, on constate que le premier zéro terminale dans la forme décimale apparaît pour 5!, en même temps, 5 apparait dans la forme factorisée de 5!.De plus, on constate que, pour les nombres suivants, le nombre de zéros équivaut à l'exposant de la puissance de 5 dans la forme factorisée. C'est pourquoi , nous pouvons conjecturer que le nombre de zéros de n! est égal à l'exposant de 5 dans la forme factorisée . C'est mieux ?
E-Bahut Boltzmann_Solver Posté(e) le 20 octobre 2016 E-Bahut Signaler Posté(e) le 20 octobre 2016 il y a 14 minutes, marcsa a dit : Lorsqu'on applique la fonction factoriser_entier sur les nombres de 0! à 20! et qu'on calcule 0! à 20!, on constate que le premier zéro terminale dans la forme décimale apparaît pour 5!, en même temps, 5 apparait dans la forme factorisée de 5!.De plus, on constate que, pour les nombres suivants, le nombre de zéros équivaut à l'exposant de la puissance de 5 dans la forme factorisée. C'est pourquoi , nous pouvons conjecturer que le nombre de zéros de n! est égal à l'exposant de 5 dans la forme factorisée . C'est mieux ? Oui, c'est mieux.
est01 Posté(e) le 20 octobre 2016 Auteur Signaler Posté(e) le 20 octobre 2016 donc je peux recopier la partie B? Juste pour B1 et B2, je dis seulement quelles lignes il faut ajouter ?
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 Du coup pour la partie C je vois vraiment pas ..;
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 Il y a 23 heures, marcsa a dit : Voilà ce que je ferais pour la C1 nbCinq(m):={ local compteur, q; compteur:=0; q:=m/5 tant que q==floor(q) faire compteur = compteur+1; q:=q/10 ftantque; retourne compteur; }:; Bonjour, Je suis en accord avec ce code à la syntaxe près et une coquille dans la boucle. Ensuite, arrives tu à utiliser des codes maintenant ?
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 Je ne vois pas où sont mes erreurs ... oui j'arrive un peu mieux mais pour la suite je ne vois pas comment faire
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 8 minutes, marcsa a dit : Je ne vois pas où sont mes erreurs ... oui j'arrive un peu mieux mais pour la suite je ne vois pas comment faire Pourtant, tu as su corriger ce genre d'erreurs dans la partie B. Teste ton code avec XCAS, tu verras qu'il te renverra des erreurs. Mais tes erreurs sont des erreurs de rigueur. Compare ton code et ceux proposés dans ton énoncé, tu verras que tu n'as pas repris le code avec rigueur. Mets une capture d'écran d'XCAS avec le résultat des différents programmes.
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 nbCinq(m):={local compteur, q;compteur:=0;q:=m/5;tant que q==floor(q) fairecompteur = compteur+1; q:=q/10;ftantque;retourne compteur;}:; et maintenant ?
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 c'est bon maintenant ça marche . je peux le recopier dans ma copie alors ?
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 1 minute, marcsa a dit : c'est bon maintenant ça marche . je peux le recopier dans ma copie alors ? C'est mieux !!! Ton code marche et te donnera la bonne réponse pour une raison qui est dans les questions suivantes. Mais en l'état, tu n'aurais pas tous les points car ça aurait pu échouer aussi avec d'autres diviseurs que 5. Réfléchis à la signification de chaque ligne et compare avec l'objectif de ce programme. Je pense que tu devrais voir une ligne "incorrecte".
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 je comprends que l'objectif du programme est de donnée le nombres à l'exposant de 5 dans la forme factorisée. je ne vois cependant pas de ligne incorrecte ...
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 6 minutes, marcsa a dit : je comprends que l'objectif du programme est de donnée le nombres à l'exposant de 5 dans la forme factorisée. je ne vois cependant pas de ligne incorrecte ... Et analyse chaque ligne ! Si tu l'avais fait, tu verrais que tu ne fais pas ce que tu dis. Donc, détaille le rôle de CHAQUE ligne.
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 on initialise les variables compteur et q: compteur prend la valeur 0 et q prend la valeur m/5 puis la boucle: tant que q est égal à une partie entière, on incrément le compteur de 1 et q prend la valeur q/10 fin de la boucle on affiche le compteur, qui correspond à l'exposant de 5 je ne vois vraiment pas où est les problème
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 2 minutes, marcsa a dit : on initialise les variables compteur et q: compteur prend la valeur 0 et q prend la valeur m/5 puis la boucle: tant que q est égal à une partie entière, on incrément le compteur de 1 et q prend la valeur q/10 fin de la boucle on affiche le compteur, qui correspond à l'exposant de 5 je ne vois vraiment pas où est les problème Tu ne fais que lire le programme sans l'analyser. Je te demande de me le détailler. Donc, dis moi pourquoi on fait ces lignes, LIGNE PAR LIGNE. Exemple pour la première et dernière lignes : nbCinq(m) :={ : sert à déclarer le nom de la fonction. .... }:; sert à dire que la fonction s'arrête. Explique moi le reste.
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 nbCinq(m):={ sert à déclarer le nom de la fonction local compteur,q; sert à délclarer le nom des variables compteur:=0; sert à initialiser la variable compteur (prend la valeur 0) q:=m/5; sert à initialiser la variable q (prend la valeur m/5) tantque q==floor(q) faire sert à donner la condition pour laquelle la boucle tant que doit continuer de tourner compteur:=compteur+1; sert à dire quelle valeur prend la variable compteur au fur et à mesure que la boucle fait "un tour" q:=q/10; sert à dire quelle valeur prend la variable q au fur et à mesure que la boucle fait "un tour" ftantque sert à dire que la boucle s'arrête que la condition donnée n'est plus valable (càd quand q n'est plus égal à la partie entière) retourne compteur; sert à dire qu'il faut afficher la valeur de compteur une fois que la boucle est finie }:; sert à dire que la fonction s'arrête
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 3 minutes, marcsa a dit : nbCinq(m):={ sert à déclarer le nom de la fonction local compteur,q; sert à délclarer le nom des variables compteur:=0; sert à initialiser la variable compteur (prend la valeur 0) q:=m/5; sert à initialiser la variable q (prend la valeur m/5) tantque q==floor(q) faire sert à donner la condition pour laquelle la boucle tant que doit continuer de tourner compteur:=compteur+1; sert à dire quelle valeur prend la variable compteur au fur et à mesure que la boucle fait "un tour" q:=q/10; sert à dire quelle valeur prend la variable q au fur et à mesure que la boucle fait "un tour" ftantque sert à dire que la boucle s'arrête que la condition donnée n'est plus valable (càd quand q n'est plus égal à la partie entière) retourne compteur; sert à dire qu'il faut afficher la valeur de compteur une fois que la boucle est finie }:; sert à dire que la fonction s'arrête Très clairement, tu n'as pas compris l'algorithme. Tu t'es contentée de reprendre celui du sujet et ta modification n'a pas altéré la valeur car le nombre de zéros correspond à l'exposant de la puissance de 5. Il faut que tu travailles ta rigueur. Tu n'es pas bête mais vraiment pas assez rigoureuse. Ton erreur, c'est dans q := q/10. Tu cherches les exposants de la puissance de 5. Donc, il faut diviser par 5 et non par 10.
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 pourtant quand je l'ai testé, ça m'a donné les bonnes valeurs de l'exposant de 5 je vous avais bien dit que j'étais nulle en algorithme !! j'en ai marre de ce DM ça va me plomber toutes mes vacances
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 3 minutes, marcsa a dit : pourtant quand je l'ai testé, ça m'a donné les bonnes valeurs de l'exposant de 5 je vous avais bien dit que j'étais nulle en algorithme !! j'en ai marre de ce DM ça va me plomber toutes mes vacances Ce n'est pas tant l'algorithmique que la rigueur générale qui te manque. Tu n'es pas si mauvaise en algorithmique pour une terminale. Et comme je te l'ai dit, je sais qu'il marche et qu'il donne la bonne réponse. Mais c'est un coup de chance. Accroche toi !!
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 donc maintenant que vous m'avez corrigé l'erreur, il est correct ? je dois le recopier tel quel ?
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 1 minute, marcsa a dit : donc maintenant que vous m'avez corrigé l'erreur, il est correct ? je dois le recopier tel quel ? Oui.
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 Pour la 2), recopie la commande et que remarques tu ?
est01 Posté(e) le 21 octobre 2016 Auteur Signaler Posté(e) le 21 octobre 2016 seq(nbCinq(n!)-nbZero(n!),n,1,100) ou soustrait le nombre de zéro à l'exposant de 5 pour n allant de 1 à 100?
E-Bahut Boltzmann_Solver Posté(e) le 21 octobre 2016 E-Bahut Signaler Posté(e) le 21 octobre 2016 il y a 1 minute, marcsa a dit : seq(nbCinq(n!)-nbZero(n!),n,1,100) ou soustrait le nombre de zéro à l'exposant de 5 pour n allant de 1 à 100? Je ne te demande pas ce que fait la commande, juste de regarder le résultat. Après, je te ferai réfléchir sur la signification de la commande.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.