bonjour ou bonsoir excuser moi de vous déranger j'aurai besoin d'aide sur un algorithme:
l'énoncé:
on considere l'algorithme suivant qui vérifie si deux vecteur vec u(a;b) et vec v(c;d) sont colinéraires
1 liste de variables utilisées
2 a,b,c,d :nombres
3 Entrée
4.demander a,b,c,d
5 traitements
6 si......alors afficher "colinéaires"
sinon
afficher non colinéaires
Fin si
Q1)completer la ligne 6
Q2)modifier l'algorithme précédent pour qu'il décide si 3 point sont alignés a partir de leur coordonnées.
ce que j'ai fait:
Q1) si ab=cd alors afficher qu'il colinéaires ..
Q2)
Entrée:
demander a,b,c
traitement:
si ab=ac
afficher "a,b,c alignés
Bonjour,
tu devrais réviser la partie purement mathématique de la chose
deux vecteurs u(a;b) et vec v(c;d) sont colinéaires ssi ...
(ta condition est fausse)
Q2 des points ne sont pas des vecteurs
tu dois calculer les coordonnées de vecteurs définis par ces points
les points A(xA; yA) B (xB; yB) et C(xC; yC) sont alignés si les vecteurs ... sont colinéaires
c'est à dire si les coordonnées de ces vecteurs satisfont à ...
(et tu vois bien déja qu'il va falloir demander 6 coordonnées au départ !! xA, yA, xB, yB, xC, yC)
oui là c'est la bonne condition
(l'erreur n'était pas un problème d'algorithme mais de maths pures sur les vecteurs)
pour la 2 il faut d'abord résoudre le problème mathématiquement (quels calculs mathématique faut il faire)
avant d'écrire quelque algorithme que ce soit
l'algorithme n'est que la traduction formelle des calculs qu'il faut effectuer dans l'ordre.
pour Q2)sa sera Vec AB(xb-xa ; yb-ya).
VEC AC(xc-xa;yc-ya)
VEC AB(Xab;Yab)
vec AC(Xac;Yac)
SI Xab*Yac=Xac*Yab alors
afficher "colinéaires et alignés".
oui, reste à faire ça proprement : exprimer formellement tout ce qu'on calcule à partir de quelles données,
les données c'est défini par l'énoncé : "a partir de leur coordonnées (des 3 points)"
donc tout calcul intermédiaire doit être explicite et pas implicite par un simple jeu d'écriture,
en écrivant que le vecteur s'écrit "aussi bien" Vec AB(xb-xa ; yb-ya) que VEC AB(Xab;Yab) et on laisse ça "au lecteur", à lui de comprendre.
dans un algorithme y a pas de "lecteur" qui interprète ce qu'il lit.
ça c'est un calcul à effectuer
le calcul de Xab = xb - xa explicite
etc ...
(mais c'est pareil en maths quand on cherche à rédiger proprement : "posons Xab = xb -xa" etc )
et pas une très bonne idée de mélanger des notations mathématiques avec des notations "algorithmiques" : afficher un texte"
mathématiquement la condition s'écrit :
SI Xab*Yac=Xac*Yab alors les points sont alignés (c'est un fait mathématique, pas un message à afficher)
bon, c'est presque fait en fait, tout est dans la rédaction.
voila ce que ça donne en redaction
liste de variable:
xa,ya,xb,yb,xc,yc :coordoonées
Entrée:
Demander vec AB,Vec AC
traitement:
SI Xab*Yac=Xac*Yab alors les points sont alignés
FIN
Demander vec AB,Vec AC
non.
demander les données qui sont xa,ya,xb,yb,xc,yc et rien d'autre
ensuite à partir de ces données on calcule (l'algorithme doit calculer) les coordonnées des vecteurs etc
liste de variable:
xa,ya,xb,yb,xc,yc :coordoonées
Entrée:
demander xa,ya,xb,yb,xc,yc
traitements:
VEC AB=(xb-xa;yb-ya)=(xab;yab)
Vec AC=(xc-xa;yc-ya)=(xac;yac)
SI Xab*Yac=Xac*Yab alors les points sont alignés
Fin
en mathématique tu rédiges en supposant que le lecteur de ce que tu écris est suffisamment malin pour comprendre que
VEC AB=(xb-xa;yb-ya)=(xab;yab) veut réellement dire :
on pose xab = xb-xa et yab = yb-ya
alors VEC AB =(xab;yab)
un algorithme c'est bête
ça n'est pas capable d'interpréter des trucs comme ça
tout ce qu'on "pose" en mathématique doit être explicitement calculé par un calcul explicite sur des variable explicites
pas par des ellipses oratoires.
liste de variable:
xa,ya,xb,yb,xc,yc :coordoonées
et xab, yab, ... TOUTES les variables qui sont utilisées dans l'algorithme
...
traitements:
...
xab prend la valeur xb-xa (calcul explicite de la variable xab)
etc
...
SI Xab*Yac=Xac*Yab alors les points sont alignés
non
déja Xab n'est pas xab
le nom des variables doit être le même, "casse" comprise, (majuscules/minuscules) tout au long de l'algorithme
et surtout ça c'est une expression de raisonnement mathématique (quand je te dis que tu mélanges des "phrases mathématiques" et des "instructions dans un algorithme" allègrement)
tout à l'heure tu faisais le contraire, tu écrivais des instructions en guise de phrases mathématiques
maintenant qu'on traduit le raisonnement mathématique en algorithme, tu recommences dans l'autre sens.
dans l'algorithme c'est
SI xab*yxac=xac*yab alors afficher "les points sont alignés"
(et sinon afficher "les points ne sont pas alignés")
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :