Bonjour, voici un problème que j'ai du mal à résoudre, quelqu'un pourrait-il m'aider ?
Début
Entrer un entier M
0-> A
Pour i allant de 1 à M, faire
Si i divise M alors A +1 -> A
Fin Si
Fin pour
Afficher A
Fin
Comment exécuter cet algorithme ? Car je ne sais pas comment faire pour que M ne soit qu'un entier & que 0->A ?
Merci.
Bonjour,
sur AlgoBox 0->A se dit "affecter valeur à variable" la variable étant A et la valeur 0.
Ensuite, tu ne peux pas obliger l'utilisateur à entrer un entier. Sur AlgoBox, il n'y a qu'un seul type nombre.
Ce que tu peux faire (mais je ne pense pas que ce soit attendu), c'est, après que l'utilisateur a entré M, tester si M=floor(M). floor(M) c'est la partie entière de M, c'est-à-dire l'entier immédiatement inférieur ou égal à M (floor(3)=3, floor(3,5)=3, floor(pi)=3, floor(-3,5)=-4).
Bonjour, je vouus remercie de votre aide.
J'ai désormais compris comment faire.
Seulement, après avoir ajouter la variable "i", je dois lui affecter la valeur allant de 1 à M, seulement comment affecter un intervalle à une variable ?
Merci !
Début
Entrer un entier M
0-> A
Pour i allant de 1 à M, faire
Si i divise M alors A +1 -> A
Fin Si
Fin pour
Afficher A
Fin
pour cette boucle je ne sais pas faire pouvez vous m'aider svp
merci:?:?
en fait "Si i divise" ne peut pas etre programmé tel quel et je ne voit pas comment floor peut remplacer cet boucle des explications serraient la bienvenue
ce qui me parrait flou est l'intervention de ce "i" avec la boucle Pour i allant de 1 à M, faire
Si i divise M alors A +1 -> A
je ne sais si je m'exprime très bien?
merci
ah là je comprends mieux
i divise M c'est le reste de la division euclidienne de M par i vaut 0 et ça se dit dans beaucoup de langages M%i (et c'est bien le cas dans AlgoBox).
une remarque : quand tu as cliqué sur "si...alors...", la boite de dialogue qui s'ouvre comporte un pavé cliquable "commandes". C'est là que tu peux trouver entre autres l'existence de la commande %.
une autre remarque : on peut le faire avec floor, en demandant de tester si "floor(M/i)==M/i". En effet, ce sera égal ssi la division "tombe juste".
Pour la boucle, le i, c'est juste que tu testes tous les entiers de 1 à M pour savoir si ils sont diviseurs ou pas. Si un i est diviseur, on fait monter le compteur de diviseur (A) de 1, c'est tout.
merci beaucoup c'est super sympa je vais essayer de terminer et je vous feraais par de ma réponse
encore un trèèèèèèèèèès grand merci
voici l'algoritme
vous parait il juste?
VARIABLES
2 M EST_DU_TYPE NOMBRE
3 A EST_DU_TYPE NOMBRE
4 I EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 AFFICHER "Entrer un entier M"
7 LIRE M
8 A PREND_LA_VALEUR 0
9 LIRE I
10 POUR I ALLANT_DE 1 A M
11 DEBUT_POUR
12 SI (floor(M/I)==M/I) ALORS
13 DEBUT_SI
14 A PREND_LA_VALEUR A+1
15 FIN_SI
16 FIN_POUR
17 AFFICHER A
18 FIN_ALGORITHME
Merci
presque
la ligne "lire i" est à enlever. En effet, on ne demande pas à l'utilisateur de donner une valeur pour i, c'est l'algorithme qui le fera en faisant tourner la boucle : il commencera par i=1, puis il regardera i=2 etc...
ah ok donc une fois lire i supprimer l'algoritme est juste et par exemple pour m=3 on a
VARIABLES
2 M EST_DU_TYPE NOMBRE
3 A EST_DU_TYPE NOMBRE
4 I EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 AFFICHER "Entrer un entier M"
7 LIRE M
8 A PREND_LA_VALEUR 0
9 POUR I ALLANT_DE 1 A M
10 DEBUT_POUR
11 SI (floor(M/I)==M/I) ALORS
12 DEBUT_SI
13 A PREND_LA_VALEUR A+1
14 FIN_SI
15 FIN_POUR
16 AFFICHER A
17 FIN_ALGORITHME
on trouve
m=3
#1 Nombres/chaines (ligne 7) -> M:3 | A:0 | I:0
#2 Nombres/chaines (ligne 8) -> M:3 | A:0 | I:0
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 10)
#3 Nombres/chaines (ligne 10) -> M:3 | A:0 | I:1
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#4 Nombres/chaines (ligne 13) -> M:3 | A:1 | I:1
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 15)
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 10)
#5 Nombres/chaines (ligne 10) -> M:3 | A:1 | I:2
La condition n'est pas vérifiée (ligne 11)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 15)
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 10)
#6 Nombres/chaines (ligne 10) -> M:3 | A:1 | I:3
La condition est vérifiée (ligne 11)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 12)
#7 Nombres/chaines (ligne 13) -> M:3 | A:2 | I:3
Sortie du bloc DEBUT_SI/FIN_SI (ligne 14)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 15)
est ce type de résultat attendu
et encore merci beaucoup jcroyais que jmen sortirai jamais
un grand Merci pour tout Madame et si je ne comprends pas des choses sur d'autres sujets en maths je vous recontacterais un grand Merci vraiment
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :