Fonction div_euclid/ méthode des différences successives HELP

Résolu/Fermé
ro292 Messages postés 25 Date d'inscription mardi 17 février 2015 Statut Membre Dernière intervention 21 février 2015 - 17 févr. 2015 à 17:59
ro292 Messages postés 25 Date d'inscription mardi 17 février 2015 Statut Membre Dernière intervention 21 février 2015 - 21 févr. 2015 à 19:38
Bonjour
Je suis étudiant en TS spécialité ISN et j'ai un travail à faire pendant les vacances.
Il s'agit de la partie 1 de ce sujet ("http://chatel.maths.free.fr/IMG/pdf/tparithmetique-2.pdf").
A ce que j'ai compris, il faut faire une bête division mais je ne comprend pas comment mettre en place la méthode des différences successives.
Je connais le principe (enfin je crois) , on a "a" et "b" deux entiers.
Si a>b alors a=a-b et
Si b>a alors b=b-a
Mais je ne vois pas quoi faire dans le programme...
Si quelqu'un pouvait m'éclaircir le sujet afin que je comprenne vraiment ce qu'il faut faire "concrètement" m'arrangerai beaucoup :)
Merci d'avance.

Ps: je suis sur Spyder 3.3

1 réponse

Salut,
"Si a>b alors a=a-b "

c'est un bon début mais il faut le mettre dans un algorithme et compter le nombre de fois où c'est effectué.

Si tu as 10 billes et que tu veux diviser par 2, il suffit de compter le nombre de groupe de 2 que l'on peut enlever des 10 billes, le reste si il y en a un sera lorsque il restera moin de 2 billes a retirer...
-1
ro292 Messages postés 25 Date d'inscription mardi 17 février 2015 Statut Membre Dernière intervention 21 février 2015
17 févr. 2015 à 19:09
Merci Jwtdd,
Mais comment ça compter le nombre de fois? Je pensais faire une boucle, dès que a=b on aura la valeur mais je ne vois pas comment dire au programme de me donner le reste de la différence...
Par exemple je pense faire une boucle "tant que" a>b mais du coup dans le programme le "b>a" n'apparaitra pas. En soi faire la boucle "tant que" est relativement facile c'est quand il faut faire le reste que je ne vois pas trop comment l'écrire.
Merci d'avance
0
oubli le début d'algo que tu as écrit et refait avec l'exemple que j'ais donné
nomme tes variables(dividende,diviseur,quotient, reste) et tu y verras plus clair

utilises "quotient" comme un compteur(égal à 0 au début), et "reste" (égal à la dividende au début) le résultat de chaque itération de reste=reste-diviseur

il n'y a qu'une comparaison nécessaire dans l'algorithme:
tant que (reste>=diviseur)
0
ro292 Messages postés 25 Date d'inscription mardi 17 février 2015 Statut Membre Dernière intervention 21 février 2015
18 févr. 2015 à 10:13
Pour l'exemple, je pense que
dividende=10
diviseur=2
quotient=5
Mais a ce que j'ai compris il faut faire en étape donc
dividende=10
diviseur=0
quotient= reste=0

dividende=10
diviseur=1
quotient=10

dividende=10
diviseur=2
quotient=5 on a donc 5 groupe de 2 billes

Franchement là je suis un peu perdu.
Merci de votre réponse
0
Non le diviseur et la dividende sont fixe(entré en argument de la fonction) , y a que quotient et reste que tu peux changer car tu les renvoi à la fin...
La "méthode des différences successives" c'est déjà assez explicite...

avec dividende=10 et diviseur=2 a chaque itération les variable (quotient et reste) doivent prendre les valeurs suivante:

compteur=0
10 - 2 = 8 compteur=1
8 - 2 = 6 compteur=2
6 - 2 = 4 compteur=3
4 - 2 = 2 compteur=4
2 - 2 = 0 compteur=5

reste=0 quotient=5
0
ro292 Messages postés 25 Date d'inscription mardi 17 février 2015 Statut Membre Dernière intervention 21 février 2015
19 févr. 2015 à 18:09
D'accord! Je ne pensais qu'en division c'est pour ça. Mais pour l'exercice, comment demander à avoir le reste?
En fait, si a>b alors a-b=a mais je ne comprends toujours pas pourquoi il faudrait "un reste"
Je veux dire si on a
a=10 et b=4
on fait 10-4=6
d'où 6-4=2
et 2<4 donc le reste = 2?
Sinon le reste ça serai quoi ?.
Pour récapituler, je fais une boucle "tant que" a>b alors a prend la valeur a-b et dès que a=b, le nombre de boucles est le quotient.
Enfin si j'ai compris.
0