salut tout le monde pour la rentree j'ai a faire un algorithme demontrant la nature d'un quadrilatere ou M(A,B) N(C,D) P(E,F) Q(G,H)
je bloque au niveau du trapeze voila ce que j'ai fait
-saisir A,B,C,D,E,F,G,H
-((C-A)²+(D-B)²) affecter a I
-((G-A)²+(H-B)²) affecter a J
-((E-C)²+(F-D)²) affecter a K
-((G-E)²+(H-F)²) affecter a L
-((E-A)²+(F-B)²) affecter a Y
-((G-C)²+(H-D)²) affecter a Z
-afficher I,J,K,L,Y,Z
-SI (I=J=K=L) et (Y²=I²+K²)
-alors
-afficher CARRE
-sinon
-si (I=J=K=L)
-alors
-afficher LOSANGE
-sinon
-si (I=L) et (K=J) et (Y²=I²+K²)
-alors
-afficher RECTANGLE
-sinon
-if (I=J) et (K=J)
-alors
-afficher PARALLELOGRAMME
-sinon
-............
Deja pourriez vous me dire si le debut est correct ? et ensuite m'indiquer comment proceder pour faire l'etape du trapeze
Merci d'avance et en esperant une reponse rapide c'est pour lundi
Bonjour,
tu imbriques trop tes conditions, sans FIN SI
et sans réellement comprendre c qui se passe dans tes conditions...
ta structure est lourde, peut être as tu vu les vecteurs ?
nan pas encore les vecteurs mais est ce que j'ai fait c'est bon stp ? pck j'ai pris exemple sur un algorithme fait en classe
le prof nous a donner les conditions donc je n'ai fait que les recopier mais il nous n'a pas donner la condition pour le trapeze sachant que je dois ecrire cette algorithme en langage naturel
UP les gens svp je galere vraiment pour la derniere etape je pense qui me manque juste la condition mais je ne la trouve pas
Bonjour,
tu peux laisser tes "sinon" ou alors fermer tes si à chaque fois et refaire les tests en entier tous à chaque fois sur toutes les conditions à chaque fois, je ne pense pas du tout que refaire tous les tests à chaque fois rende l'algorithme moins lourd.
-if (I=J) et (K=J)
-alors
-afficher PARALLELOGRAMME
faute de frappe ? c'est if (I=L) et (K=J)
quant au trapèze il te faut déja trouver une relation "métrique" entre les côtés d'un trapèze et ses diagonales, valable pour tous les trapèzes
(I,J,K,L sont sensés être les mesures des côtés et Y, Z des diagonales)
ce problème de géométrie pure est à résoudre avant de traduire ça en algorithme.
on peut utiliser Al-Kashi dans deux triangles MPQ et PMN en écrivant que les angles entre les cotés et une des diagonales sont les mêmes (donc ont le même cosinus) ce qui donne une relation plausible
resterait à voir la réciproque : si les cosinus sont égaux est-ce que ça suffit.
pareil pour tes tests, tu supposes que MNPQ sont dans cet ordre un quadrilatère convexe, sinon tout les tests s'écroulent, les diagonales devenant des côtés etc.
Bien sûr avec des vecteurs tout cela serait bien plus simple ...
Oui c'est une erreur de frappe excuse moi donc pour le moment mon algorithme est correct je n'ai rien a changer ? Et je vient de m'apercevoir que j'ai fait les vecteurs enfin la base excuse moi d'avoir dis non je me suis tromper vraiment desoler
De plus j'ai touver un fichier que le prof a laisser pour le trapeze ou il dis que MNPQ est un trapeze <=>(MN)//(PQ) ou (MP)//(NQ) donc si je suis la fin de l'algorithme serais
- SI (MN)//(PQ) ou (MP)//(NQ)
-alors
- afficher TRAPEZE
- sinon
-fin
est ce que l'ensemble de mon algorithme serais correct ? en langage naturel je peut l'ecrire comme sa ? car je dois le rendre sur feuille ..
"en langage naturel" et correction des fautes de farppe (pourquoi aussi il y a un mélange de "si" et de "if" ??) ce me semble OK.
pour le trapèze tu peux "écrire comme ça" sachant que tant qu'à faire tu peux faire du même genre pour tous tes autres tests en écrivant des "côtés paralleles", "côtés égaux", "angles droit" textuellement en texte
mais je suis persuadé que ce n'est pas du tout ce qui est attendu !!
le problème est que "MN//PQ" n'est pas directement lié aux coordonnées en entrée de ton algorithme !
il s'agit bien de traduire ce "parallèles" en relations métriques (avec des mesures) à partir des seules données : les coordonnées
et de ce qu'on a déja calculé avec ces coordonnées (ici les mesures des côtés et des diagonales)
une condition du genre I(J² - L² - Y²) = L(K² - I² - Y²) pour traduire que MN//PQ (sauf erreurs)
mais si tu as vu les vecteurs ...
et surtout si tu as vu comment écrire que deux vecteurs sont colinéaires à partir de leurs coordonnées
ce MN//PQ se traduit par et
colinéaires
et donc la condition correspondante sur leurs coordonnées. (xy' = x'y)
c'est à dire puisque et
la condition s'écrit donc
si (C-A)(G-A)=(D-B)(H-F) etc
ce qui est tout de même beaucoup plus simple (et "robuste")
après .. à quel niveau de détail "en langage naturel" (sic) le prof attend ton algorithme, c'est uniquement à toi de voir.
okok merci je vais ecrire la condition de facon vecteurielles donc je recopie cs que tu ma dis je met "ou" et (MP)//(NQ) en vecteurs s'écrit (E-A)(F-B)=(G-C)(H-D) c'est bon ça ?
mon prof veut que enfaite je l'ecrive avec les etapes DECLARATION DES VARIABLES/ENTREE/TRAITEMENT/SORTIE donc je peut l'ecrire comme sa ou je dois changer quelque trucs ? merci de ton aide
une remarque d'abord : le découpage d'un algorithme avec la partie "sortie" est totalement artificiel et à mon sens aberrant
"sortie" c'est "on donne le résultat" mais ici le résultat (le type de quadrilatère) est effectué au sein du traitement (dans les chaines de "SI")
il sera donc impossible de respecter ce genre de "contrainte" artificielle héritée de l'age du COBOL...
DECLARATION DES VARIABLES/ENTREE/TRAITEMENT OK
mais la partie 'SORTIE" ne veut généralement rien dire du tout, lorsqu'on la met ça ne fait en fait pas partie de l'algorithme, c'est du commentaire sans signification
on "déclare" que l'algorithme a pour but de "sortir" le type de quadrilatère
c'est purement "déclaratif" et n'a rien à voir avec ce que fait réellement l'algorithme.
ou alors tu ne mets aucun "afficher" nulle part et tu définis une variable "TYPE'"
et à la place de tous tes "afficher" au fil de l'eau tu mets des
TYPE prend la valeur "carré" etc
puis tout à la fin dans "SORTIE" tu mets le seul "afficher" de ton algorithme :
afficher TYPE
(c'est bien pour faire plaisir au prof va ...)
sinon non, (MP)//(NQ) ne s'écrira pas comme tu le fais. (mélange de coordonnées)
le problème ici c'est que sortir un truc (cette relation) sans l'avoir vue en cours et sans la comprendre, tu vas avoir du mal à le justifier auprès du prof !!!
d'ailleurs il y a une faute de frappe dans ce que j'avais écrit
le défilement arrière pour aller vérifier les noms données à chaque variable y est pour quelque chose
ainsi que appeller ses variables A,B,C,D, etc par ordre alphabétique sans aucun rapport avec leur signification est tout aussi aberrant que de faire une section "SORTIE" artificielle
on choisit des noms de variables qui ont un sens.
coordonnées de M : Xm, Ym et pas A, B
ça évite de devoir se reporter à un "dictionnaire" à chaque fois qu'on écrit quelque chose !
vérifier ainsi que les coordonnées de PQ seraient (Yq - Yp; Xq - Xp) est immédiatement visiblement faux
alors qu'il faut se reporter au dictionnaire pour voir que (H-F; G-E) est la même chose et donc faux.
les vraies sont (G-E; H-F) et la condition donc
(C-A)(H-F) = (D-B)(G-E)
d'ailleurs dans mon truc faux (C-A)(G-A)=(D-B)(H-F) que ce soit faux saute aux yeux : il n'y a pas de E !
(et puis recopier ce que j'ai écrit sans le comprendre .. tout le monde peut faire des erreurs. recopier les erreurs d'un autre (mes erreurs) n'est pas malin)
je te rassure j'avais vu ton erreur je ne l'ai pas recopier donc le prof nous donne la conditions suivant (MN)//(PQ) ou (NP)//(MQ) donc dans mon algorithme je traduis ça par (C-A)(H-F)=(G-E)(D-B) ou (E-C)(H-B)=(G-A)(F-D) ??
Je croit que j'ai bien compris il fallais s'apppuyer sur xy'=x'y le prof nous la donné cette formule
confirme moi que j'ai compris en tout cas je te remercie de ton aide qui ma ete precieuse
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :