Déterminer le rôle d'un algorithme puis le faire fonctionner
-
HHappylau' dernière édition par Hind
Bonjour j'ai un DM, voici l'énoncé:
Dans un repère,AB est un vecteur où A(xA;YA) et B(xB;yB).
On considère l'algorithme suivant:Entrées
Saisir xA,yA,xB,yBTraitement
Si xA<xB alors:
xmin prend la valeur xA
xmax prend la valeur xB
sinon
xmin prend la valeur xB
xmax prend la valeur xA
FinSi
Si yA < yB alors:
ymin prend la valeur yA
ymax prend la valeur yB
sinon
ymin prend la valeur yB
ymax prend la valeur yA
FinSi
dx prend la valeur (xmax-xmin)/5
dy prend la valeur (ymax-ymin)/5
xmin prend la valeur xmin-dx
xmax prend la valeur xmax+dx
ymin prend la valeur ymin-dy
ymax prend la valeur ymax +dySorties
Tracer la fenêtre définie par (xmin;ymin)et(xmax;ymax)
Tracer le vecteur de (xA;yA) à (xB;yB)[b]a)Faire fonctionner cet algorithme dans les deux cas suivants:
.A(1;6) et B(2;4)
.(4;-1) et B(-2;4)
b)Espliquer le rôle de chacun des tests de l'algorithme.
c)Pourquoi calcule t'on dx et dy?
Peut-on modifier dans l'algorithme des valeurs de ces variables?[/b]pour le a), en suivant l'algorithme je trouve:
pour le 1er cas: A(1;6) et B(2;4)
.xmin prend la valeur xA et xmax prend la valeur xB
.ymin prend la valeur yB et ymax prend la valeur yA
.dx = (xmax-xmin)/5
= (2-1)/5
= 1/5
.dy = (ymax-ymin)/5
= (6-4)/5
= 2/5
.xmin = 1-(1/5)
= 4/5
.xmax = 2+(1/5)
= 11/5
.ymin = 4- (2/5)
= 18/5
.ymax = 6+(2/5)
= 32/5
.Tracer la fenêtre (...) et le vecteur (...) je n'ai pas compris?je trouve des resultats bizard je ne suis pas sur d'avoir compris, et le b) et c) je n'arrive pas non plus..
je remercie d'avance les personnes qui voudront bien m'aider
-
SShloub dernière édition par
Salut,
Tes résultats ne me semblent pas bizarres. Pour le tracé, place A,B,(xmin;ymin) et (xmax;ymax) sur un plan. Trace le segment qui va de A à B. Trace le rectangle "parallèle aux axes" dont 2 sommets sont (xmin;ymin) et (xmax;ymax).
As-tu compris à quoi sert cet algorithme ?
-
HHappylau' dernière édition par
D'accord merci!
pour le 1er cas de la question a) je pence avoir compris, donc sur ma copie j'aurais un repère avec un vecteur AB et un rectangle autour ?
il sert a délimiter le minimum et le maximum pour faire un zoom et être au plus précis ?,je ne sais pas ^^
:rolling_eyes:
-
SShloub dernière édition par
J'obtiens quelque chose comme ça.
Tu remarques que le cadre dessiné est plus grand que le cadre de départ défini par les xmin ymin et xmax ymax.
En effet, on a écarté ces points (de 1/5 de chaque côté). Au final on a agrandi ce cadre.
-
HHappylau' dernière édition par
Pour le 2e cas du a) : A(4;-1) et B(-2;4)
.xmin prend la valeur xB
.xmax prend la valeur xA
.ymin prend la valeur yA
.ymax prend la valeur yB
.dx = ( xmax - xmin ) /5
= (4- (-2))/5
= 6/5 = 1.2
.dy = ( ymax-ymin )/5
= (4-(-1))/5
= 5/5 = 1
.xmin = -2 - (6/5)
= -3.2
.xmax = 4 + 1.2
=5.2
.ymin = -1 - 1
= -2
.ymax = 4 + 1
= 5
j'ai tracer le vecteur AB, puis le rectangle, qui encadre le vecteur.
c'est juste?le b) expliquer le rôle de chacun des tests de l'algorithme
Je ne sais pas comment expliquer le rôle de " chaque tests "
-
HHappylau' dernière édition par
Oui merci, j'ai la même chose!
c'est a cela que servent dx et dy? a agrandir le cadre ? c'est la question c)
-
SShloub dernière édition par
Et bien à quoi servent tous ces "si" au début de l'algorithme ?
Oui c'est précisément le but de dx et dy, agrandir le cadre. Tu notes qu'on ne les calcule qu'une fois pour les utiliser deux fois (intérêt de les stocker et leur donner un nom).
Voilà ce que j'ai pour le deuxième cas (pour information je n'ai fait que programmer l'algorithme donné).
-
HHappylau' dernière édition par
Merci! j'ai pareil
donc pour le a) c'est bon!
le c) aussi
et le b), les "si" ben.. c'est pour trouver (xmin;ymin) et (xmax;ymax) , la fenêtre,
je ne sais pas comment expliquer
-
SShloub dernière édition par
C'est ni plus ni moins pour trouver xmin (entre xa et xb), ymin (entre ya et yb), etc.
-
HHappylau' dernière édition par
Chaque test correspond à un "si"?
Donc le 1er test sert à trouver xmin et xmax entre xa et xb
le 2e test à trouver à trouver ymin et ymax entre ya et yb ?
-
SShloub dernière édition par
C'est ça. On appelle parfois ça test logique ou conditionnel.
-
HHappylau' dernière édition par
D'accord
Merci beaucoup de votre aide !
-
HHappylau' dernière édition par
Ah, il y a aussi une dernière question : Peut-on modifier dans l'algorithme des valeurs de ces variables ?
-
SShloub dernière édition par
J'imagine que la question appelle à se demander "Pourquoi 1/5 et pas autre chose ?"
-
HHappylau' dernière édition par
Ben.. si c'est +, ça agrandirais trop le cadre? oui on peut modifier?
Je ne sais pas quoi répondre a cette question
-
HHappylau' dernière édition par
Ben.. si c'est +, ça agrandirais trop le cadre? oui on peut modifier?
Je ne sais pas quoi répondre a cette question
-
SShloub dernière édition par
Ça dépend de ce que l'on désire, il faut peut-être répondre que ce 5 est arbitraire et pourrait tout à fait être modifié (voire stocké dans une autre variable pour l'aspect pratique).
-
HHappylau' dernière édition par
je réponds donc que oui on peut modifier des valeurs de ces variables , cela dépend de ce que l'on désir
"ce 5" ?!
-
SShloub dernière édition par
Oui, si on veut une fenêtre plus grande, on choisira une valeur plus petite, et vice-versa. D'ailleurs on peut avoir deux valeurs différentes dans le calcul de dx et dy si on veut plus agrandir en largeur qu'en hauteur ou l'inverse.