Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Premier essai
Roxa380 Hors ligne Membre Points: 4 Défis: 0 Message

Premier essai

Posté le 12/04/2016 17:31

Salut !
Je suis en classe de 2nde et je viens tout juste de m'inscrire.
En classe, on vient a peine de commencer un chapitre sur l'algorithmique et le prof nous a donné un exercice avec des notions qu'on a pas encore vu.
Voici le sujet de mes tracas :
On veut écrire un algorithme et programmer la calculatrice permettant de calculer des factorielles.
On appelle "factorielle n" le nombre défini pour tout entier par :
n!= 1x2x3x...xn

Par convention, on décide que 0 ! est égal à 1

Bien entendu, nous n'avons pas vu en cours ce qu'étais une factorielle ni la façon de la calculer. Pourriez-vous m'expliquer la signification de tout ce charabia svp ?


Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 12/04/2016 18:00 | #


Bonjour et bienvenue à toi !

Je ne comprends pas ce qui te bloque, tu as toi même défini une factorielle dans ton message !

Factorielle de 3 vaut 3 fois 2 fois 1, ce qui fait 6 : 3! = 3*2*1 = 6.
Factorielle de 4 vaut 4 fois 3 fois 2 fois 1, ce qui fait 24 : 4! = 4*3*2*1 = 24.

De la même façon, factorielle de l'entier n vaut n fois n-1 fois n-2 etc... fois 2 fois 1 : n! = 1*2*3*...*n.

Je suis tenté de te donner la réponse triviale à ton problème mais il te faut chercher un moyen de le faire par toi même, maintenant que tu sais comment on calcule une factorielle.

Les notions dont tu vas avoir besoin sont : les variables, et la boucle "for".

Tu trouveras sur notre site de quoi te documenter sur ces thèmes si tes cours ne suffisent pas. Ne te décourage pas, il n'y a rien de compliqué, juste de la logique, et il faut bien un début à tout, même à l'algorithmique.

Bien sûr nous restons à ta disposition si tu as des questions, mais nous ne ferons pas l'algorithme à ta place, sinon à quoi bon aller en classe ?

Bon courage.
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 12/04/2016 18:04 | #


C'est assez simple : n! désigne le nombre égal à 1 × 2 × 3 × … × n
Exemples :
2! = 1×2 = 2
3! = 1×2×3 = 6
4! = 1×2×3×4 = 24

10! = 1×2×…×9×10 = 3628800


Ton algorithme doit donc calculer ce produit. Pour cela, une technique couramment utilisée est de faire un boucle de type "Pour" et de multiplier l'ancien résultat (initialisé à 1) par le nombre courant. Exemple de calcul pour 4! :

Initialiser P à 1
P prend la valeur P × 1 (c'est à dire 1)
P prend la valeur P × 2 (c'est à dire 2)
P prend la valeur P × 3 (c'est à dire 6)
P prend la valeur P × 4 (c'est à dire 24)
Afficher P


Avec ça, tu devrais arriver à trouver l'algo. Je ne te le met pas ici car si t'as pas cherché, tu progressera pas.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 12/04/2016 18:06 | #


Salut,

Pour réaliser l'exercice, tu dois comprendre comment on calcule une factorielle.
L'exercice te donne la piste à suivre :
On appelle "factorielle n" le nombre défini pour tout entier par :
n!= 1x2x3x...xn


On comprend qu'il s'agit du produit des nombres entiers strictement positifs jusqu'à n.
De ce raisonnement, on peut construire cet algorithme :

Saisir N // n
Affecter à A la valeur de 1 // n!
Affecter à B la valeur de 1

Tant que B inférieur ou égal à N
  Affecter à A la valeur de A * B
  Incrémenter B de 1
Fin du Tant que

Afficher A // On affiche le résultat de n!


Je t'invite à lire ce mémo sur le Basic Casio appliqué à l'algorithmique : http://www.planet-casio.com/Fr/programmation/algorithmique.php
Roxa380 Hors ligne Membre Points: 4 Défis: 0 Message

Citer : Posté le 14/04/2016 11:50 | #


j'avais essayé un programme en rapport avec ce qu'a expliqué Ne0tux :
"N="→N
"(N-1)!="→(N-1)!
(N-1)! * N→N!
N◢
Malheureusement, une fois que j'ai entré N et (N-1)! ça me met Erreur syntaxe.
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 14/04/2016 11:58 | #


C'est normal, ta calculatrice d'un ne reconnais pas le !, mais en plus tu lui demande de mettre une chaine de caractère "N-1≠" dans un groupe de variables (N-1)!

Non, là tu t'y prend assez mal. Essaie de nous donner l'algorithme en français, puis une fois que celui-ci sera correct, on t'aidera à le transposer en Basic.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 14/04/2016 14:00 | #


Bonjour Roxa,

Comme d'autres l'ont également suggéré sur ce topic, je te conseille à nouveau d'utiliser les boucles, et plus particulièrement la boucle "For" (dont tu trouveras mention sur cette page : http://www.planet-casio.com/Fr/programmation/conditions.php).

Le but de l’algorithmie est "d'automatiser" certains calculs à grand renfort de logique, ce qui sous-entend qu'on ne peut attaquer la programmation qu'en étant sûr à 100% que le logique soit bonne.

Ici la logique est tout à fait à ta portée ! Je te propose de regarder en détail le message de Totoyo, qui a eu la gentillesse de t'écrire la logique de cet algorithme, justement.

Fais nous signe si tu ne comprends pas son message !

Une fois que tu auras bien saisi la logique, il ne te restera qu'à l'implémenter, à la coder. Là encore nous pouvons t'aider si besoin, mais n'hésite pas à d'abord parcourir le site et le tutoriel que Totoyo t'a donné.

Bon courage !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Roxa380 Hors ligne Membre Points: 4 Défis: 0 Message

Citer : Posté le 17/04/2016 14:46 | #


Super ! J'ai compris. Merci beaucoup pour votre aide.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 85 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd