bonjour,
j'ai un dm à faire mais je suis vraiment bloquée à la question 2
voici l'algorithme :
variable : n, u entier naturel
entrée : saisir n
initialisation : u prend la valeur n
traitement : tantque u >=37 faire
u prend la valeur u-37
fintantque
sortie : afficher n et u
question 1 : afficher pour n =35 et n =55
question 2 : soit un entier naturel n quelconque. quel lien existe t-il entre n et le nombre u obtenu en sortie?
réponse question 1 ) pour n =35 u= 3535
pour n =55 u =5518
réponse question 2) je suis vraiment bloquée pouvez vous me donner une petite aide afin que je réussisse à me débloquée l'exercice svp
merci d'avance à ceux qui m'aideront
Essaye de le faire "manuellement" :
tu ne peux pas réussir la question 2), puisque tes résultats à la 1) sont incorrects
Dès la première ligne du programme, ça doit attirer ton attention :
tu l'exécutes avec la valeur 35, et la première ligne est "tant que ..."
oui je veux bien les faire à la main sauf que mon prof m'a appris à faire les algorithmes que à l'aide du logiciel algobox
en revanche j'ai remarqué à la première ligne que u doit être inférieur ou égal à 37 non?
Donc tu ne sais faire un algorithme qu'en le rentrant dans un logiciel ?
variable : n, u entier naturel
entrée : saisir n
initialisation : u prend la valeur n
traitement : tantque u >=37 faire
u prend la valeur u-37
fintantque
sortie : afficher n et u
Représente-toi l'algorithme comme agissant sur des cases dessinées sur une feuille : une case "n", une case "u"
Alors, entrée : on a n=35
Bon ben initialisation, u=n, du coup dans nos deux cases on a la même chose !
Traitement : Tant que u >= 37 ! Est-ce le cas ici ? Si oui, on peut lire la suite, si non, ce n'est même pas la peine de regarder ce qu'il se passe dans notre boucle "tant que", puisqu'on ne l'exécute pas !
Ici, on a u=35, donc notre u ne satisfait pas la condition !
On passe la boucle "tant que", on arrive à la sortie : afficher u et n, et bien le contenu de nos cases n'a pas changé, c'est 35 pour les deux !
En revanche, avec n=55,
donc initialisation : u=55, et là notre u est bien supérieur ou égal à 37 ! Donc on rentre dans la boucle :
on nous dit que u vaut u-37, donc notre "nouveau" u vaut 55 ("l'ancien u") - 37 = 55-37=18
Notre u vaut maintenant 8, on revient au début de la boucle tant que et on regarde si u satisfait la condition : plus maintenant !
Donc on arrive à la sortie avec u=18 et n=55 !
Je te conseille d'essayer avec quelques autres nombres, pour voir si tu as bien compris
Ensuite, pour la question 2, il faut trouver le lien entre le u qui sort, et notre entier n au début :
Au début, u=n, et puis on lui retire 37 autant de fois qu'on peut, tant que l'on reste dans les positifs, et on renvoit ce qu'il reste à la fin ..... A quoi ça te fait penser ?
Si tu ne vois pas, demande-toi quand est-ce-que l'algorithme va nous renvoyer 0 !
ah ok merci beaucoup j'ai enfin compris la question 1
l'algorithme va nous renvoyer 0 quand n =37 non? par contre je ne voie pas du tout à quoi cela peut me faire penser dsl.
Alors, si on prend n=37 oui, ça va nous renvoyer 0 , mais ce n'est pas le seul cas, 0 aussi en fait !
Et il y en a encore d'autres : regarde 74, 111 et 148
On peut dire que n=u-37 seulement quand on a fait une seule fois la boucle "tant que", si on la fait deux fois, ou plus, ou même zéro fois, ce n'est pas vrai !
En fait, en me relisant j'ai vu que j'avais utilisé le mot "reste" dans mon précédent message : il est particulièrement adapté ici
74, 111, 148 sont égal à 0 car se sont des multiple de37 non ?
par contre je ne comprend vraiment pas pour la question2
Oui, ça va te renvoyer 0 car ce sont des multiples de 37 !
Ca ne t'aide pas pour la 2) justement ? A voir à quoi correspond la réponse de l'algorithme !
C'est l'idée, mais c'est u qui vaut 0, n ne change pas ! Et n n'est pas un multiple de u dans ce cas, mais de 37 !
ha oui mince mais je ne voie pas du tout, je comprend pas comment je peux expliquer et trouver la relation entre n et u.
merci pour votre aide car je suis vraiment perdue
je pense que je n'ai pas bien compris la phrase de départ :
"Au début, u=n, et puis on lui retire 37 autant de fois qu'on peut, tant que l'on reste dans les positifs, et on renvoit ce qu'il reste à la fin ..... A quoi ça te fait penser ? "
bonjour,
j'ai un dm à faire mais je suis vraiment bloquée à la question 2
voici l'algorithme :
variable : n, u entier naturel
entrée : saisir n
initialisation : u prend la valeur n
traitement : tantque u >=37 faire
u prend la valeur u-37
fintantque
sortie : afficher n et u
question 1 : afficher pour n =35 et n =55
question 2 : soit un entier naturel n quelconque. quel lien existe t-il entre n et le nombre u obtenu en sortie?
réponse question 1 ) pour n =35 u= 35
pour n =55 u =18
réponse question 2) je suis vraiment bloquée pouvez vous me donner une petite aide afin que je réussisse à me débloquée l'exercice svp
merci d'avance à ceux qui m'aideront
*** message déplacé ***
Bonjour, tu enlèves 37 au nombre jusqu'à que l'on ne puisse plus. Donc en sortie on a le reste de la division du nombre par 37.
n = 37q + r, et ça sort r
*** message déplacé ***
Bonjour,
Le multi-post est interdit , ici !!!
Lire ceci : ------> Sujet ancien- ne plus donner ce lien-merci
et cela : ------> [lien]
*** message déplacé ***
Qu'est-ce-que tu ne comprends pas dans ma phrase ?
Tu prends n'importe quel nombre, si tu peux lui retirer 37 (là, on dit qu'on "peut" si c'est plus grand que 37, car rien ne nous empêche en général de faire, par exemple, 1-37 ! et bien ici on considérera qu'on ne peut pas, on ne le fera tout simplement pas !), et bien tu lui retires 37, et tu regardes si tu peux à nouveau enlever 37, ainsi de suite jusqu'à ce qu'on obtienne un nombre u tel que 0 =< u < 37
Comme tu l'as dit, quand on prend un multiple de 37, on va récupérer 0 !
Si on prend 38, on va récupérer 1, comment peut-on écrire 38 en fonction de 37 ? C'est à dire écrire 38 = 37*q + r
Avec r tel que 0 =< r < 37
Avec 38 c'est immédiat : 38 = 37*1 + 1
Avec 39 : 39 = 37*1 + 2
Et si tu exécutes ton algorithme avec 38 et 39, tu recevrais respectivement 1 et 2 !
Maintenant prenons un nombre bien plus grand : 3706, et écrivons-le de la même façon que précédemment :
3706 = 37*100 + 6 (on a bien 6 qui est supérieur ou égal à 0 et strictement inférieur à 37)
Selon toute logique, que va nous renvoyer l'algorithme si tu commence avec n = 3706 ?
Et enfin, lorsqu'on écrit un entier m comme précédemment : m = pq + r avec 0 =< r < p (plus haut, on a p=37), qu'est-ce-que r ?
Si tu ne vois pas, dis toi que c'est la division qu'on voit en primaire
En fait, u est le reste de la division euclidienne de n par 37.
On a alors u=n-37*k avec k le nombre de tours de la boucle tantque ; cela veut dire que si n<37 ,on a u=n en sortie et si n37, on a en sortie n qui reste inchangé car il ne subit aucun traitement et u qui prend une valeur selon le nombre de tours k de la boucle.
donc est ce que le lien entre u et n c'est que si n est inférieur à 37 alors n=u et si n est supérieur à 37 u=n-37x , x étant le nombre de tour que réalise la boucle ?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :