ESPACE GÉOMÉTRIQUE

lynxtyle Messages postés 79 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 31 octobre 2011 - 16 mai 2011 à 08:06
eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014 - 1 juin 2011 à 13:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53108-espace-geometrique

eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014
1 juin 2011 à 13:03
j'ai pas bien saisi le rôle de la fct random ...
mon compilateur me dit que c'est un type et non une fonction... de plus , elle n'existe pas dans ma bibliothèque MATH
-->je veux bien que vous m'expliquez d'avantage ce type, faute de quoi je ne pourrais pas avancer selon LA PROPOSITION DE LYNXTYLE
@++
lynxtyle Messages postés 79 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 31 octobre 2011 2
17 mai 2011 à 19:44
Un point est une notion mathématiques subjective... moi pour pas m'embêter je le définirai comme un carré de taille minimum.

Techniquement l'affiche des formes géométriques ne servirons pas à grand chose (juste à faire joli... mais pour en faire un écran de veille on ne demande pas plus^^), ce qui sera intéressant se sera l'utilisation de la formule pour déterminer l'ensemble des points du contour de ta courbe (en utilisant une première aproximation de pi : celle fournis par la librairie math).

voilà une marche à suivre possible :
-tu défini un diamètre pour ton cercle de valeur X
-tu utilise la fonction random paramètré pour te fournir 2 nombres compris entre 0 et X que tu sauvegarderas dans des variables x et y
-ensuite tu calcul la longeur de la droite [centre du cercle de diamètre X ; point de coordonnées x,y]
-si la longueur de cette droite est inférieur à X/2 alors le point est dans le cercle (point_dans_le_cercle++; total++;)sinon le point ne l'ai pas (dans ce cas on a juste total++;)
-et à ce moment tu peux afficher un carré de coté X, un cercle de diametre X et un carré de coté 1(pixel) de coordonnées x,y (donc inscrit au minimum dans ton carré)

arrivé ici tu recommence tout (avec un clear d'écran entre 2 afin d'avoir un affichage sympa)... je te conseil une boucle de taille MAX_int avec quand même dans la boucle la possibilité de faire un break propre. En fin de boucle (ou break) tu propose le résultat de point_dans_le_cercle/total.... t'auras quelques chose qui avoisinera pi. Le top étant d'ensuite récupérer l'int en []char pour le sauvegarder puis de récupérer la totalité des expériences avec une bibliothèque de gestion des grands nombres pour les additionners puis faire la division : tu pourrais avoir une approximation de pi avec vraiment beaucoup de chiffre significatif... (pour ma pars je me suis amusé à le faire avec OpenCL pour le calcul GPU et GMP pour faire les additions et la division final... les résultats son bleuffant : ça fait un bon benchmark GPU d'ailleur !)

voilou t'as la marche à suivre... au boulot et bon courage
eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014
17 mai 2011 à 18:53
-->çà veut dire en outre que je dois créer une autre structure 'point' et que mes formes géométriques seront formées par des point et non pas par des entiers??
-->et donc si c'est le cas, je dois changer les paramètres des méthodes de telle sorte à ce qu'elles soient applicables pour des points??
-->merci pour les consignes, gvé voir ce que je pourrais faire..
@++
lynxtyle Messages postés 79 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 31 octobre 2011 2
17 mai 2011 à 13:09
De rien.

Bon pour la proposition que je t'ai faite :
-tu te place dans un carré de taille X de coté
-tu inscrit un cercle dans ce carré de diamètre X
-tu créé une bloucle (très grande ou infini qui s'arrête à l'appuis d'une touche pourquoi pas) avec un random() pour obtenir des coordonnées de point inscrit dans le carré (donc avec des coordonnées x,y compris entre [0;X]) et tu vérifi s'ils sont inscrit aussi dans ton cercle... ceci permettant d'incrémenter 2 compteurs : incrist_dans_cercle / total
-avec ces 2 valeurs tu peux alors en déduire une valeur approché de pi (plus tu fera d'essai plus ta valeur de pi sera précise... de plus avec cette méthode tu peu, si ton random() est vrai, en déduire une certaine certitude sur le nombre de chiffre significatif à retenir (loi de proba)
-enfin pour donner un réel interet récupère ces valeur soit avec une librérie de traitement des grands nombres (supérieur à MAX_int) soit en récupérant les résultat sous forme d'un []char afin de traiter une infinité de teste (tu rajoute un enregistrement/lecture fichier pour pouvoir stopper et reprendre les testes et c'est parfait... voir même rajouter une connexion à une DB SQL pour faire les testes sur un réseau d'ordinateur...)

enfin bon il y a beaucoup de possibilité de codes facils et sympas à faire en rapport avec les maths...

après tu fais ce que tu veux de mes dires... même si tu les prends pour des insultes, quand un code proposé n'est même plus corrigeable alors qu'il se trouve sur une plateforme de partage, il ne faut pas s'attendre à des éloges. (tu as le forum pour demander de l'aide et des conseils et beaucoup de doc sur internet... et pour le le Visual_C# tu as le site de Microsoft MSDN pour les développeurs...)

Les grandes ligne pour la correction de ce code actuel :
-revoir ta découpe de fichier
-éviter le copier/coller d'autre sources sans comprendre tout le code inscrit (il y a un minimum avant de venir poster ici)
-regarder le travail déjà proposé ici (tu n'aurais peut être pas mis Initié si tu voyais le travail juste de niveau débutant)
-commenter tes sources
-proposer des sources avec un minimum d'intérêt (avec un contexte minimum)
-utiliser les spécifications du langage utilisé (même si le C ou le C++ sont toléré dans du C# il est conseillé de rester exclusivement en C# quand on développe C#... et d'utilise du C quand on travail en C [cf. une autre de tes sources]...)
-on ne publie que du code un minimum fini : ce n'est pas parce que ça compile que c'est bon... on le nettoie, on le commente, on regarde si on ne peut pas l'optimiser un peu, on fait attention à la découpe du code (je ne met pas le triangle dans le main et le cercle et le carré à part), on lui donne un contexte d'utilisation si celui-ci n'est pas explicite, etc... et enfin on le publie en hésitant pas à demander conseil pour l'optimisation du code (sans se faire passer pour monsieur je sais tout mieux que tout le monde et qui à toujours raison sur tout)

Pour ma part je pense que si tu suis ces conseils et que tu tente un code comme celui que je t'ai proposé, tu auras des remarques positives quand tu le plubiras. (j'attends avec impatience ton prochain post "recherche de pi par la simulation" et n'hésite pas à demander conseil !)
eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014
17 mai 2011 à 10:22
merci pour la reponse .. j'essayerais d'ameliorer ce programme dès que possible ..
merci encore une fois
lynxtyle Messages postés 79 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 31 octobre 2011 2
17 mai 2011 à 00:47
@EISHTEIN je n'ai plus envie de me prendre la tête avec toi alors : BRAVO tu sais faire un "Hello World"... vraiment toute mes félicitations !

Maintenant que cela est dit je te conseil de revoir tes bases afin de faire des codes propres et de poster des choses avec un minimum intérêt...

Aller pour la route : pourquoi tu nous ferai pas une approximation de pi grâce à un cercle et une fonction random() ? ça serai un minimum plus intêressant que là et au moins ça sera enfin d'un niveau débutant.
eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014
16 mai 2011 à 20:44
et encore une chose... le meilleurs programmeur c'est toujours celui qui commence par optimiser un PROGRAMME 100% FAUUUUUUUUUUUX XD XD
eishtein Messages postés 52 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 23 janvier 2014
16 mai 2011 à 20:43
dis moi au moins les erreurs...gté dis que c juste un prototype si gte fais voir ma vrai version du programme tu vas craindre c sur et certain.....
lynxtyle Messages postés 79 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 31 octobre 2011 2
16 mai 2011 à 08:06
Le vrai Einstein doit se retourner dans sa tombe... rien que le titre me fesait craindre le pire...
Programme sur le béaba des maths/programmation... mal conçu... c'est une horreur !

désolé et sans vouloir être méchant mais cela ne vaut pas plus (on ne te félicitera juste que sur le fait que le programme compile et fonctionne à peu près)
Rejoignez-nous