Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Exercice d'alignement de points en Algorithme

Posté par
WWEFan42
12-11-09 à 19:34

Alors voila, c'est un exercice de DM qui parle d'alignements des points (jusque là tout va bien) mais il faut automatiser les calculs et ca je ne sais pas du tout faire. Alors merci d'avance !

On se place dans un repère.
1) Soient trois points A, B et C.
   On souhaite automatiser les calculs permettant d'affirmer que les points A, B et C sont alignés ou non.
   Elaborer une démarche et écrire un algorithme permettant de résoudre la question.
2) Programmer cet algorithme sur Algobox.
3) A l'aide du programme, dire, dans chacun des cas suivants, si les points A, B et C sont alignés ou no :
   A(1;-2), B(3;4) et C(-1;-8)
   A(-3;2), B(3;1) et C(0;2)
   A(1;-4), B(100;62) et C(-2,6;-6,4)

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 13-11-09 à 07:54

Bonjour quand même...

Il y a plusieurs démarches possibles.
Que proposes-tu ?

Soient les trois premiers points de la question 3
Comment ferais-tu (sans l'algorithme pour l'instant) pour savoir s'ils sont ou ne sont pas alignés ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 19:12

Ben moi j'ai appris à voir des point alignés dans un repère avec une fonction affine ax + b (avec une formule pour trouver a) et on voyait si le troisieme point était sur la droite.
Donc c'est pour ca que je suis un peu bloqué.

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 13-11-09 à 19:44

Bon, pourquoi pas. C'est l'une des méthodes possibles.

Imaginons que l'on demande au programme de trouver l'équation de la droite qui passe par les points A : (xA ; yA) et B : (xB ; yB)

Quelle est cette équation ? y = ... ?

Et ensuite, par exemple, on remplacera le x de cette équation par xC et on vérifiera que la valeur prise par y est bien égale à yC

Ceci ne sera pas difficile à programmer (d'ailleurs j'ai fait le programme qui attend tes réponses).

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 19:50

Excuse-moi mais je n'ai pas trop compris ton dernier post ! Je ne fais des algorithmes que depuis deux semaines donc je comprends pas trop encore =)

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 19:53

Sinon je fais
a prend la valeur yB-yA/xB-xA (c'est la formule qu'on m'a donnée pour trouver a)
puis je fais l'équation pour trouver p.

Je ne sais vraiment pas =).

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 13-11-09 à 19:58

Oui, tu as bien commencé !

3$y\,=\,\frac{y_B\,-\,y_A}{x_B\,-\,x_A}\,+\,p

et pour trouver la valeur de p il faut, par exemple, dire que cette droite passe par le point A : (xA ; yA)

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:01

Qu'est ce que tu entends par la avec "Dire que cette droite passe par le point A(xA;yA)" ?

Désolé de te poser autant de question et en tout cas merci de m'aider à comprendre cet exercice !

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:05

J'ai commencé à taper l'algorithme sur Algobox :
En Variable, j'ai déclaré xa, yA, xB, yB, xC, yC, ax et b

Jusque la est-ce que c'est juste ou pas ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:10

Ton message de 20 h 01 : parce qu'il faut calculer la valeur de p

Ton message de 20 h 05 : pourquoi pas (je n'ai eu besoin que de xA, yA, xB, yB, xC et yC) mais tu peux ajouter d'autres variables. Ce n'est pas grave.

Si je comprends bien tu écriras que ax = (yB - yA)/(xB - xA)
c'est une possibilité

Tu sais il n'y a pas du tout qu'une seule manière d'écrire un bon programme. Ce qui compte c'est qu'il trouve le bon résultat, assez rapidement et dans tous les cas où il est prévu de fonctionner.

Mais il faut savoir quelle valeur donner à b ou à p ...

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:15

Oui effectivement j'ai mis ensuite :
Lire xA, yA, xB, yB
Puis AX prend la valeur (yB-yA)/(xB-xA)

Donc jusque la tout est bon

Puis pour trouver P on fait quel calcul ? J'avais pensé à b prend la valeur AX + ????

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:16

Je ne sais pas trop quel calcul faire pour trouver p ou b !
Si on le fait à la main sans Algorithme on fait bien :

ax + b = xA

c'est ca ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:18

Pour le calcul de p je t'ai dit comment faire (message de 19 h 58) :

il faut écrire que pour x = xA alors y = yA puisque la droite passe par le point A : (xA ; yA)

Je vais quitter l' pour quelque temps ; ne t'étonne pas si je ne réponds pas. Je ne sais pas si je reviendrai ce soir, mais je suis sûr d'être là demain matin très tôt. Je lirai ce que tu as fait.

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 13-11-09 à 20:21

OK Merci pour ton aide !

Donc sur Algobox je dois déclarer x et y comme variable ou pas ?

Puis je mets x recoit xA
             y recoit yA

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 07:28

Comme je te l'ai écrit, j'ai rédigé tout le programme avec seulement 6 variables déclarées : les 3 couples de deux coordonnées des points A, B et C

Mais si tu trouves plus pratique d'employer des variables intermédiaires tu peux toujours le faire.

L'étape qu'il faut correctement franchir avant de commencer à programmer dans Algobox est de définir parfaitement ta démarche.

Il faut donc résoudre le problème "à la main", sur ton brouillon. Et ensuite on "code" cette démarche.

Tu sais qu'une droite (non parallèle à l'axe des ordonnées) a une équation du type

y = m x + p

Tu as su trouver le coefficient directeur m d'une droite qui passe par les points A et B

si xA xB

3$m\,=\,\frac{y_B\,-\,y_A}{x_B\,-\,x_A}

Il faut continuer (trouver p)

Tu sais que la droite à trouver passe par le point A
donc
yA = m xA + p

Ceci te permet de calculer p (ou de le faire calculer par le programme)

La dernière étape consistera à vérifier qu'avec les valeurs m et p trouvées le point C a des coordonnées qui vérifient

yC = m xC + p

si le point C est bien sur la droite définie par A et B
____________________

Tu vois que se dessine un squelette du programme :

. déclarer les variables : les coordonnées ainsi que m et p
. entrer les coordonnées des trois points A, B et C
. calculer le coefficient directeur m
. calculer l'ordonnée à l'origine p
. tester si les coordonnées du point C vérifient l'équation de la droite (AB)
. afficher la réponse

Qu'en penses-tu ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 11:17

Oui merci ca commence à être plus clair. Je vais essayer de le programmer cet après-midi.

Merci de ton aide.

Une fois que j'aurais programmer, pourras-tu me dire si avec les valeurs données tu trouves les mêmes résultats ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 11:29

Bon alors pour A(1;-2), B(3;4) et C(-1;-8), j'ai trouvé que A, B et C n'étaient pas alignés

Est-ce que c'est juste ou non ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 11:33

Je viens de m'apercevoir d'une erreur car je n'ai pas déclaré xC et yC. Donc je vais le refaire.

Cette fois ci, je trouve qu'il sont alignés. Juste ou non ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 11:41

Si tu veux je peux t'envoyer une capture d'écran, mais la photo est trop grosse pour que je te l'envoie ici. =)

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 12:07

Alors je te donne les trois réponses :
. 1ère série : alignés
. 2ème série : pas alignés
. 3ème série : alignés

Si tu veux, je peux poster le programme (je sais comment faire... ) ; mais j'aimerais être sûr que tu n'as plus de questions avant de le poster.

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 12:47

OK pour le 1 et le 2 mais j'ai trouvé pour le 3 qu'ils n'étaient pas alignés.

Je veux bien que tu postes le programme s'il te plait pour vérifier que c'est à peu près le même programmes que j'ai fait ! Merci

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 12:49

Pour dire que A, B et C sont alignés ou pas , est-ce que tu as utilisé Si .... Alors .... Sinon ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:14

Excellent tes résultats de 12 h 47 !
____________________

On va donc chercher à comprendre ce qui se passe pour le troisième cas

Conseil :

Modifie très légèrement ton programme (temporairement, tu le remettras comme au début ensuite) : c'est une pratique courante de ceux qui programment. Quand il y a un problème on cherche à comprendre d'où vient le problème et pour cela on fait imprimer par le programme des données intermédiaires qui ne serviront plus ensuite

Déclare une nouvelle variable : yM
fais faire par le programme le calcul
yM = m xC + p
et demande au programme d'afficher la valeur de yM

Normalement tu attends une réponse yM = -6,4

Mais... peux-tu recopier très exactement la réponse de ton programme ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:24

Bon alors j'ai introduit le calcul yM = M*xC + P juste après le calcul de P.

Je trouve toujours A, B et C non alignés
Mais je trouve comme tu as dis, yM = -6.4

La réponse de mon programme est simplement de dire si A, B et C sont alignés ou pas, je ne demande pas d'afficher des valeurs.

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:36

Bon, je t'explique.

Un programme travaille avec des nombres arrondis. Il ne peut pas conserver une infinité de chiffres
Par exemple pour 2/3 il n'a pas une infinité de 6 dans l'expression 0,666 666 666 666 ...
et il est très probable qu'il a quelque chose comme 0,666 666 667

Si le résultat d'un calcul est 0,666 666 666
et que l'on demande au programme : ces deux nombres sont-ils égaux ? Il répondra : "NON"

Donc il faut se méfier beaucoup dés que l'on veut comparer deux nombres.
Il est prudent d'écrire : la différence entre les deux nombres est-elle plus petite que 0,000 000 001
par exemple.

Je te donne mon programme où tu vas trouver cette manière de faire. Et mon programme répond bien que les trois points sont alignés (et ils le sont).

1   VARIABLES
2      xA EST_DU_TYPE NOMBRE
3      yA EST_DU_TYPE NOMBRE
4      xB EST_DU_TYPE NOMBRE
5      yB EST_DU_TYPE NOMBRE
6      xC EST_DU_TYPE NOMBRE
7      yC EST_DU_TYPE NOMBRE
8      m EST_DU_TYPE NOMBRE
9      p EST_DU_TYPE NOMBRE
10  DEBUT_ALGORITHME
11     LIRE xA
12     LIRE yA
13     LIRE xB
14     LIRE yB
15     LIRE xC
16     LIRE yC
17     //calcul du coefficient directeur de la droite (AB)
18     m PREND_LA_VALEUR (yB-yA)/(xB-xA)
19     //calcul de l'ordonnée à l'origine de la droite (AB)
20     p PREND_LA_VALEUR yA-m*xA
21     //test : le point C est-il sur la droite (AB) ?
22     SI (abs(m*xC+p-yC)<1e-9) ALORS
23       DEBUT_SI
24       AFFICHER "Les trois points sont alignés"
25       FIN_SI
26       SINON
27         DEBUT_SINON
28         AFFICHER "Les trois points ne sont pas alignés"
29         FIN_SINON
30  FIN_ALGORITHME


Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:44

C'est exactement ce que j'ai mis sauf pour les lignes 17, 18, 21, 22

Les lignes 17 et 18 sont elles obligatoires ?

Peut-tu m'expliquer la ligne 21 car moi j'ai mis "SI (yC == MX*xC + P) ALORS" ?

En tout cas, Merci de ton aide car j'y arrivais vraiment pas ! =)

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:45

Avec une écriture que tu connais mieux voici ce qu'écrit la ligne 22 :

SI |m xC + p - yC| < 1.10-9 ALORS...

abs( ... ) veut dire "valeur absolue"
et
1e-9 veut dire 0,000 000 001 = 1.10-9 (un milliardième)

On cherche à savoir si
yC = m xC + p
ou si
m xC + p - yC est très très proche de zéro

D'accord ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:48

Les lignes 17, 19 et 21 ne sont pas obligatoires mais sont très utiles.
Ce sont des commentaires

Ils permettent à quelqu'un qui n'a pas écrit lui-même le programme de comprendre ce qui est fait.
Et ils te permettront dans quelques mois, quand tu auras oublié ce que tu avais fait, de relire plus facilement le programme.

Comprends-tu tout bien ?
As-tu essayé de rentrer le programme ? Trouves-tu maintenant que les points sont effectivement alignés ?

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:49

Ah oui d'accord.

Ben oui maintenant ca marche A, B et C sont alignés.

Donc c'est bon.

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:52

Mais je n'ai pas mis "abs" dans Si ... ALORS ...
J'ai juste mis MX*xC + P -yC < 1e-9

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:55

On cherche une valeur très proche de 0 car on a des chiffres à virgules donc Algobox arrondi et nous dit ensuite que f(xC) n'est pas égal à yC.

Est-ce que c'est bien ça ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:56

Il faut la valeur absolue...

Si la valeur est positive cela ne change rien

Mais suppose que la valeur soit négative comme -5

Alors le point n'est pas sur la droite, et ton programme dira que les points sont alignés parce que

-5 < 0,000 000 001

Il faut la valeur absolue !

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:56

Ton message de 13 h 55 :

OUI ! Je suis content. Tu as très bien compris !

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 13:59

Merci.

Faut dire que tu m'as très bien expliqué ! Avec un peu d'entrainement, je commence de plus en plus à comprendre les algorithmes.

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 14:01

Pour ma part, je trouve très amusant ce petit logiciel Algobox

C'est un beau travail de celui qui l'a conçu.

Je t'en prie et à une prochaine fois !

Posté par
WWEFan42
re : Exercice d'alignement de points en Algorithme 14-11-09 à 14:06

C'est un beau travail qui ne cesse d'être amélioré !

Une dernière petite question, comment mettre le topic en mode résolu ?

Posté par
Coll Moderateur
re : Exercice d'alignement de points en Algorithme 14-11-09 à 17:51

Sur le forum de cette les topics restent ainsi. Rien n'indique qu'ils sont ou non résolus. Peut-être d'ailleurs qu'un jour quelqu'un l'ouvrira et demandera des précisions supplémentaires.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1489 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !