Bonjour,
J'ai arpenté les tutoriel et plusieurs pages de forum sans vraiment trouver de réponse à mon problème. N'hésitez pas à me rediriger si je suis simplement passé par dessus la réponse sans la voir !
Je m'adresse à vous ajourd'hui puisque mes professeurs sont plutôt légers sur les réponses (je suis le cours à distance, tout se fait par internet... pas facile pour la communication !), surtout si celles-ci creusent un peu plus profondément que le contenu explicite du cours. Je tiens à spécifier que je suis un apprenti programmeur, j'ai commencé en janvier en fait... Ma question concerne un travail qui est déjà remis, donc je ne cherche pas à vous faire faire mes devoirs.
Je programmais une "course" entre 6 méthodes pour calculer pi (Liebniz, Wallis, Brouncker...) pour déterminer laquelle arrivait à la précision voulue (16 décimales) avec le moins de tours de boucles (exemple, de fractions superposées (continues) dans le cas de l'algorithme de Brouncker). J'étais restreint aux bibliothèques stdio et math, je ne pouvais pas utiliser de tableau (donc de chaines de caractères...) et je dois travailler avec Visual Studio (2005, dans mon cas).
Je me suis rendu compte que j'avais besoin de stocker mes résultats dans un long double. Mes notes de cours sont explicites: double jusqu'à 64 bits (15 décimales significatives) et long double 80 bits (19 décimales).
Jamais aucun des 6 algorithmes n'a atteint la valeur de pi de référence. Je crois avoir trouvé la réponse sur MSDA où il est décrit que sous Visual Studio, le long double est égal au double (64 bits). Il me manquerait donc de la précision possible pour y faire tenir ma référence de 16 décimales. Même si mon travail est remis, je pense que c'est un bon défi à relever.. et je continue de chercher !
Mes questions (eh oui, pluriel...)
-Selon vous, ai-je bien cerné mon problème (grandeur de type) ?
-Officiellement, je ne peux pas me créer un type de variable personnalisé (contrainte du cours), surtout que je ne l'ai pas encore appris. Pour satisfaire ma curiosité, pouvez-vous me rediriger vers un tutoriel pour créer des types personnalisés sous VS2005 ?
-Si j'ai bien compris, une fois mon code compilé, si j'ai attribué 80 bits à une variable dans un compilateur qui le supporte, le programme devrais être portable, n'est-ce pas ?
-J'aurais besoin d'éclaircissements par rapport à la portabilité de programmes en C d'un SE à l'autre (différentes distributions Linux, différentes éditions Windows, Mac OSx...). Avez-vous un tutoriel pour ça ?
Si vous avez besoin d'un bout de code, ne vous gênez pas. Je peux aussi poster les liens vers MSDA. J'ai lu qu'on suggèrait minimiser les liens et le code, alors je me suis abstenu. Oh, si ça peut changer quelque chose, je suis sur un x86-64, mais mon Vista Home Basic est un système 32 bits.
Merci beaucoup d'avance !!
Partager