Ecrire un programme sur algobox qui détermine si un point est ou non le milieu d'un segment


  • P

    je dois écrire un programme sur algobox qui decide si un point est ou non le milieu d'un segment
    VARIABLES
    2 x_A EST_DU_TYPE NOMBRE
    3 y_A EST_DU_TYPE NOMBRE
    4 x_B EST_DU_TYPE NOMBRE
    5 y_B EST_DU_TYPE NOMBRE
    6 x_I EST_DU_TYPE NOMBRE
    7 y_I EST_DU_TYPE NOMBRE
    8 DEBUT_ALGORITHME
    9 LIRE x_A
    10 LIRE y_A
    11 LIRE x_B
    12 LIRE y_B
    13 LIRE x_I
    14 LIRE y_I
    15 SI ((x_A+x_B)/2=x_I ET (y_A+y_B)=y_I) ALORS
    16 DEBUT_SI
    17 AFFICHER "I est le milieu de [AB]"
    18 FIN_SI
    19 SINON
    20 DEBUT_SINON
    21 AFFICHER "I n'est pas le milieu de [AB]"
    22 FIN_SINON
    23 FIN_ALGORITHME

    ça marche pas
    quelqu'un pourrait-il m'aider
    d'avance merci


  • I

    Bonjour patco,

    Le test ‘’égal à’’ se traduit par ==, on double le signe dans algobox, il te suffit je pense de faire cette modif pour ton algorithme fonctionne.

    SI ((x_A+x_B)/2
    ==x_I ET (y_A+y_B)/2
    ==y_I) ALORS

    Tout réside dans cette ligne, le reste n’est qu’esthétique. Mais tu peux quand même donner un peu d’allure à tout ça et faciliter / guider la saisie des coordonnées.

    Plutôt que de faire afficher directement le résultat brut, tu peux créer une variable de type CHAINE qui prendra la valeur que tu veux si I est milieu ou non. Ca te permet de faire afficher le résultat au moment où tu le souhaites et non pas de "le subir".
    De cette façon, tu pourras afficher un résultat présentable en rappelant notamment les coordonnées de tes points, par ex :

    1 VARIABLES
    2 x_A EST_DU_TYPE NOMBRE
    3 y_A EST_DU_TYPE NOMBRE
    4 x_B EST_DU_TYPE NOMBRE
    5 y_B EST_DU_TYPE NOMBRE
    6 x_I EST_DU_TYPE NOMBRE
    7 y_I EST_DU_TYPE NOMBRE
    8 milieu_ou_non EST_DU_TYPE CHAINE
    9 DEBUT_ALGORITHME
    10 AFFICHER "Saisir l'abscisse de A"
    11 LIRE x_A
    12 AFFICHER "Saisir l'ordonnée A"
    13 LIRE y_A
    14 LIRE x_B
    15 LIRE y_B
    16 LIRE x_I
    17 LIRE y_I
    18 SI ((x_A+x_B)/2==x_I ET (y_A+y_B)/2==y_I) ALORS
    19 DEBUT_SI
    20 milieu_ou_non PREND_LA_VALEUR "est"
    21 FIN_SI
    22 SINON
    23 DEBUT_SINON
    24 milieu_ou_non PREND_LA_VALEUR "n'est pas"
    25 FIN_SINON
    26 AFFICHER "Avec A("
    27 AFFICHER x_A
    28 AFFICHER ";"
    29 AFFICHER y_A
    30 AFFICHER ") et B("
    31 AFFICHER x_B
    32 AFFICHER ";"
    33 AFFICHER y_B
    34 AFFICHER "), le point I("
    35 AFFICHER x_I
    36 AFFICHER ";"
    37 AFFICHER y_I
    38 AFFICHER ") "
    39 AFFICHER milieu_ou_non
    40 AFFICHER " le milieu de [AB]"
    41 FIN_ALGORITHME

    Résultat :

    Algorithme lancé
    Saisir l'abscisse de A
    Saisir l'ordonnée A
    (. . . je n’ai pas fait pour B et I, tu pourras compléter . . . )
    Avec A(3;2) et B(-5;4), le point I(-1;3) est le milieu de [AB]
    Algorithme terminé

    Ce ne sont que des propositions bien sûr.
    Dis-nous si ça marche.


  • P

    merci beaucoup ça marche


Se connecter pour répondre