Déterminer le rôle d'un algorithme puis le faire fonctionner


  • H

    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,yB

    Traitement
    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 +dy

    Sorties
    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 😄


  • S

    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 ?


  • H

    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:


  • S

    J'obtiens quelque chose comme ça.

    fichier math

    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.


  • H

    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 " 😕


  • H

    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)


  • S

    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é).

    fichier math


  • H

    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 😕


  • S

    C'est ni plus ni moins pour trouver xmin (entre xa et xb), ymin (entre ya et yb), etc.


  • H

    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 ?


  • S

    C'est ça. On appelle parfois ça test logique ou conditionnel.


  • H

    D'accord 😄
    Merci beaucoup de votre aide ! 😁


  • H

    Ah, il y a aussi une dernière question : Peut-on modifier dans l'algorithme des valeurs de ces variables ? 😕


  • S

    J'imagine que la question appelle à se demander "Pourquoi 1/5 et pas autre chose ?"


  • H

    Ben.. si c'est +, ça agrandirais trop le cadre? oui on peut modifier?
    Je ne sais pas quoi répondre a cette question


  • H

    Ben.. si c'est +, ça agrandirais trop le cadre? oui on peut modifier?
    Je ne sais pas quoi répondre a cette question


  • S

    Ç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).


  • H

    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" ?!


  • S

    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.


Se connecter pour répondre