|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Salut a tous.
Voilà le problème. On donne un nombre de points dans un repaire cartésien A, B, C, D… Il faut trouver la surface de tous les triangles possible calculer la surface et dire le quelle est le plus grand on affichant ces coordonner et sa surfsce. Code :
ABC ABD ACD BCD Pas ABC ACB CBA car c’est la même chose A D C |x,y | x,y| x,y |aire1 Puis de comparer le résultat avec la fonction max et afficher le les coordonne est le résultat de la surface maximal. Code :
si vous avez d’autre idée n’hésiter pas merci. |
||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Jean-Paul Inscription : août 2008 Messages : 21 ![]() |
Tu dis que tu veux éliminer les les triplets identiques ? Donc faut les identifier et les classer !
Cela devrait suffire comme réponse... Bon, de loin : si tu dis la lettre 'X', c'est que tu peux l'identifier ? donc que tu en as un identificateur, dans ton programme ? (que cet identificateur s'appelle 'X' ou 'Data_23'). Vu de loin : tu fais des boucles imbriquées pour sélectionner toutes les possibilités. Ok. Ensuite tu ne veux pas de doublons ? Alors construis ta liste des triplets uniques, et range-là ailleurs. Comment ? ben, par exemple, entre autres, tu tries ton triplet : DAC devient ACD (avec des quadruplets, on aurait pu avoir ACDC, mais bon, je m'égare), et tu vérifies que ce ACD n'existe pas déjà dans ta liste. Ça, c'est certainement ce que le sujet ne disait pas. Tu prends les questions dans le bon ordre, et ça va tout de suite mieux. Et cela te montre là ou le sujet qu'on t'a posé suppose que tu identifies toi-même les éléments manquants sur le chemin entre la question et le programme qui tourne. C'est valable pour tous les TPs. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
salut.
dite comment je peux générée çà ? Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Jean-Paul Inscription : août 2008 Messages : 21 ![]() |
Bonsoir,
Si tu sais poser ta méthode sur une feuille avec un crayon, c'est presque plus que du yaka pour terminer... Cela te donne une première manière de faire, parfois plus bulldozer que subtile, mais avec le mérite de fonctionner. Regardes bien. Tu as n sommets, ce qui te donne une variable. Tu cherche des triplets, donc : - Tu prends un premier sommet : ça pourrait pas te donner un indice de boucle qui parcourt la liste pour sélectionner le premier sommet ? Et tu peux deviner (heu, justifier) la valeur de départ et de fin de l'indice ? - Tu prends un second sommet : ça te donnerait pas par hasard un second indice de boucle, avec une valeur de début et de fin ? - Tu prends un troisième sommet : ne serait-on pas par le plus grand des z'hasards dans le même cas ? Et tu dois pouvoir dire pourquoi ce n'est pas la peine de revenir en arrière avec tes indices. Au milieu de ces trois boucles, il faut prendre des décisions : 3 indices, donc trois sommets. On a dit les mettre dans l'ordre : ce serait pas une fonction annexe ? Une fois dans l'ordre, vérifier que c'est pas déjà dans ta liste : tiens, on dirait une autre fonction possible. Si c'est ok, on ajoute à la liste : tiens, encore une fonction. Et puisqu'on a parlé de liste de triplets, faut aussi penser à décrire et initialiser la structure de données qui va avec. Bon, si je vais plus loin, je te donne la réponse toute cuite en Pascal/Basic francisé, et ce n'est pas vraiment le but du forum. Observes bien ce que tu fais à la main, l'algorithme ou le programme s'écrivent presque tous seuls dans la foulée. |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Salut.
merci pour ta repense AdmChiMay Donc voilà, pour ne pas dire que j’ai ne rien fais et que j’attente de vous une repense toute cuite. Code :
Mais moi je cherche que n !/((n-3)1*3 !) Par exemple : Pour 3 point ==> un triangle Pour 4 point ==> 4 triangle Pour 5 point ==> 10 triangle ext Je cherche le moine de filtrer les cas qui m’intéresse pas. merci |
||
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Jean-Paul Inscription : août 2008 Messages : 21 ![]() |
Bonjour,
Mon Basic date un peu (a minima de l'Apple //e), ou alors c'est du VBA-Excel, mais on devrait se comprendre. Je me positionne sur l'aspect méthode, donc algorithmique. Je comprends tes lignes, mais pas tout : - dimensionnement du tableau à 1..n, initialisation de l'aléatoire - générer les n coordonnées jusque là, ok. Mais après : - calcul de la longueur des côtés, - calcul des surfaces. Il manque une partie de ce que j'ai cité : - générer la structure de données pour les triplets triés dans l'ordre - utiliser cette structure de données pour calculer tes surfaces. Et je pense que ta réponse (enfin, celle attendue) ne tient pas en 30 lignes de codes. Biscotte ne pas avoir de doublons dans les triangles... Donc attends-toi à suer encore un peu. Ton tableau est "a" : je préfèrerai un nom plus "causant". Tu pourrais dire "tableauPoints", "nuage_points", ou simplement "TP" _ Le problème maintenant : quelle valeur pour z ? Une manière brute, type âge de la massue, serait de dire que au pire n!. Une version âge de bronze serait n(n-1)(n-2). Un raisonnement par récurrence donne quelque chose comme : le nombre de sous-ensemble distincts de 3 éléments parmi n. As-tu vu les dénombrements en math/proba ? Cela donne quelque chose comme C(n,3)=n!/6/(n-3)! A vérifier avec google, ou plutôt wikipedia. Bref, nous avons une valeur de z. Tu dois d'abord trouver la liste des triplets uniques. Donc remplir le tableau Triangles, donc trois boucles imbriquées : une pour chaque sommet. Comme je le mentionnait avant, au milieu des trois boucles, vérifier si tu connais ce déjà ce triplet, et si non, l'ajouter à Triangles. Grosso modo (je ne mets que l'ossature) : Code :
Bon, tu vois : faire à la main, et décomposer encore et encore, pour avoir des morceaux simples (ou presque). Mais c'est vrai, il te reste quelques lignes à taper... Bon Couragne ! |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
salut a tous.
Donc voilà en se basons sur l'aide que j'ai us je suis arrivée à la fin de se exo Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com