Bonjour j'ai un DM à faire mais là je bloque...
Voici l'énnoncé:
Ecrire un algorithme, qui à partir des coordonnées de deux points, donne une équation cartésienne de la droite passant par ces deux points.
Pour ca j'ai démonter que la droite D passant par les points A(xa;ya) et B(xb;yb) a pour équation (yb-ya)x-(xb-xa)y+ xbya-xayb=0.
Je vous remercie d'avance si vous pouvez m'apporter des explications
Bonsoir,
le problème n'est pas l'étude théorique des équations de droites par 2 points ("Pour ca j'ai démonter que ... equation") mais la rédaction d'un algorithme !!!
ton algorithme devra donc
- demander les valeurs des coordonnées et donc les mémoriser dans 4 variables xa, ya, xb, yb
- effectuer les calculs des coefficients yb-ya, etc
que l'on peut mettre dans des variables a,b,c
- afficher ces coefficients sous la forme d'un message mélangeant des valeurs calculées et du texte "x", "y", "= 0"
ou plus simplement afficher le texte statique "équation ax - by + c = 0",
voire rien du tout. puis les valeurs de a, b, et c
si on veut un affichage propre il faudra distinguer les cas selon le signe et la nullité des coefficients pour ne pas obtenir des "choses" du genre :
0x - -1y + -3 = 0
La réalisation pratique de cet algorithme dépend des contraintes données
- en langage dit "naturel" ?
- pour une machine donnée ?
- forme du résultat ?
Il n'y a aucune contrainte données qui soit marqué...
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 a EST_DU_TYPE NOMBRE
7 b EST_DU_TYPE NOMBRE
8 DEBUT_ALGORITHME
9 AFFICHER "Coordonnées de A : "
10 LIRE xA
11 LIRE yA
12 AFFICHER "("
13 AFFICHER xA
14 AFFICHER ";"
15 AFFICHER yA
16 AFFICHER ")"
17 AFFICHER "Coordonnées de B : "
18 LIRE xB
19 LIRE yB
20 AFFICHER "("
21 AFFICHER xB
22 AFFICHER ";"
23 AFFICHER yB
24 AFFICHER ")"
25 SI (xA==xB) ALORS
26 DEBUT_SI
27 SI (yA==yB) ALORS
28 DEBUT_SI
29 AFFICHER "A=B donc la droite (AB) n'existe pas."
30 FIN_SI
31 SINON
32 DEBUT_SINON
33 AFFICHER "L'équation réduite de (AB) est : x="
34 AFFICHER xA
35 FIN_SINON
36 FIN_SI
37 SINON
38 DEBUT_SINON
39 a PREND_LA_VALEUR (yB-yA)/(xB-xA)
40 b PREND_LA_VALEUR yA-a*xA
41 AFFICHER "L'équation réduite de (AB) est : y="
42 AFFICHER a
43 AFFICHER "x+"
44 AFFICHER b
45 FIN_SINON
46 FIN_ALGORITHME[b][/b]
Voila je pense que cet algorithme est bon. Il y a les valeurs des coordonné et le calcul des coefficients.
Ca me semble tout bon.
Bon, le problème de l'affichage de "y = 1x + -4" n'est pas résolu ni celui de "y = 0x + ..." ni de "y = 3x + 0" qui ne sont pas esthétiques, bien que justes.
résoudre ça, fait rajouter un paquet de conditions SI ... SINON pour tester
si a = +1, -1 ou 0, et si b est <0, >0 ou =0, avec le cas particulier où a et b sont nuls où il faut quand même afficher le b : "y = 0"
Comme Algobox est très "filandreux" (écriture lourde) cela n'est pas très pratique et conduit à un "assez gros" algorithme.
Au passage tu as changé ton fusil d'épaule, et tu ne sors plus l'équation sous la forme ax + by + c = 0 comme dans ton premier post,
mais pourquoi pas, y = ax + b est tout aussi bien, avce le cas x = xA traité, impec.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :