Bonjour,
Avant-propos : j'essaye de comprendre ce que tu écris, mais ce serait
mieux si tu pouvais ponctuer (et « majusculer ») chacune de tes phrases,
afin qu'on sache plus facilement où une phrase se termine et où l'autre
commence.
Le 25/12/2021 à 17:44, Badou001 a écrit :
Bonjour cher communauté je suis un nouveau débutant en programmation et je
rencontre un problème je voudrais développer un programme qui a partir d'une
liste de points donnés (un point est défini avec ses coordonnées) divisé cette
ensemble de points en sous ensemble tel que la distance entre tout les points de
cet sous ensemble est inférieur strictement à 20km le but est de savoir combien
de sous ensemble on aura et que sont les points de chaque sous ensemble
Première réponse évidente : si tu as n points, et si tu définis n sous-
ensembles contenant chacun un point, alors les distances seront toujours
égales à 0 dans chaque sous-ensemble. Cela répond donc à la question
telle que tu l'as posée. Ou alors c'est que je n'ai pas compris à cause
du manque de ponctuation.
je me
suis dit que cet algorithm marche :
Soit E = ensemble de points x tel que E={X1,X2,X3,......Xn}
Ce sont des points d'un espace à une seule dimension ? Si oui, les
distances entre Xi et Xj sont simplement la valeur absolue de Xi-Xj.
Mais sinon, il faudrait commencer par décrire la structure de données,
à savoir comment tu représentes un point (qui ne sera pas un simple
nombre).
Pour i allant de 0 à n on a
Attention, tu as décrit l'ensemble comme allant de X1 à Xn, alors je
ne suis pas sûr que i doive aller de 0 à n.
Note que dans beaucoup de langages de programmation, à commencer
par le C, il est préférable de numéroter n éléments de 0 jusqu'à
n-1 plutôt que de 1 jusqu'à n.
Fi = Xi
Qu'est-ce que c'est, Fi ? Un point, comme Xi ?
E= E - Fi
Comment définis-tu la soustraction de E avec Fi ?
Pour j allant de 0 a n et i !=j on a
Si la distance entre Xi et Xi est inférieur à 20km alors Fi = {Xi,Xj}
Ah, maintenant Fi est un ensemble de deux points ?
E= E - Fi
On affiche F1,F2,F3,....Fn on arrête lorsque E est vide
D'une part ta condition d'arrêt semble être quand tu as autant
d'ensembles à deux points que de points de départ (c.-à-d. n),
d'autre part ta condition d'arrêt semble être que l'ensemble E
est vide. Ça me semble contradictoire.
Voilà l'idée pour lalgorithm je sais pas si ca va marcher mais le problème c'est
que je n'arrive pas a le coder
Je crois que le problème en réalité c'est que tu essayes de
décrire un algorithme avant de décrire la structure de tes
données. Commence donc par écrire en C les types de données
représentant un point, puis un ensemble de points. Essaye de
voir comment tu pourrais décrire plusieurs ensembles contenant
certains des points de l'ensemble de départ. Fais même en sorte
de pouvoir saisir un certain nombre de données (par exemple
trois ou quatre points de l'espace à trois dimensions), puis
de les afficher.
j'ai rencontré des problèmes avec les tableaux
aussi avec la notion de point définie avec ses coordonnées
Eh bien voilà. C'est la première chose à faire avant de réfléchir
à un algorithme.
aussi un problème de calcul de distance
Bon, ça ce sera quand tu auras défini tes données. Mais quand tu
y seras, sache que la distance entre deux points (x1, y1, z1) et
(x2, y2, z2) est la racine carrée de ((x2-x1)² + (y2-y1)² + (z2-z1)²)
ainsi que le compteur ... je suis bloqué si vous pouvez
m'aider ou m'éclairer je vous en remercie
Il y aura probablement plusieurs compteurs. Mais encore une fois
ne mets pas la charrue avant les bœufs. Commence par bien décrire
les données, le reste viendra ensuite.
-- Olivier Miakinen