bonjour ,
Je cherche un lib qui peut donner tous les chiffres de factoriel 100 ( 100! ) .
Cette fonction est implémentée avec python et je ne vois pas où
trouver un équivalent avec c++ !
@+
bonjour ,
Je cherche un lib qui peut donner tous les chiffres de factoriel 100 ( 100! ) .
Cette fonction est implémentée avec python et je ne vois pas où
trouver un équivalent avec c++ !
@+
Et pourquoi tu prendrais pas quelques minutes pour l'écrire ? Surtout si tu disposes du code source Python.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Pourquoi pas , mais je ne sais pas comment il faut s'y prendre ..Et pourquoi tu prendrais pas quelques minutes pour l'écrire ? Surtout si tu disposes du code source Python.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 import math fact = str(math.factorial(100)) print(fact) resultat = 0 for i in fact: resultat = resultat + int(i) print(resultat)
Rien de bien compliqué dans le fait de convertir du code python en C++. Si tu ne sais pas ce qu'une fonction fait, regarde sa doc sur internet et ensuite cherche son équivalent en C++. Surtout que ce code n'a vraiment rien de compliqué...
Ce qui est compliqué, c'est de créer une classe pour gérer les calculs avec assez de chiffres significatifs, car il y en a des chiffres significatifs dans 100!...
Il existe heureusement des bibliothèques pour ça, comme https://gmplib.org/ (je ne sais pas si c'est la meilleure, ce n'est pas mon domaine du tout).
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Python étant écrit en C, la source est disponible
https://hg.python.org/cpython/file/7...module.c#l1218
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
ok , je peux déjà créer une lib perso , et mettre des classes et fonctions plus simples dedans .
Mais pour le compilateur gcc et c++ , l'organisation de cet ensemble m'est totalement inconnu .
Où trouver un tuto pour voir une installation de lib et les dossiers systèmes qui vont avec ,
qu'il faudra déplacer ou modifier ?
@+
Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.
@lautrec1 :
ok , en fait ce tuto montre l'installation de lib et j'ai déjà installé la lib SFML avec codeblocks .
Ce qui convient à mon attente , c'est les bases pour la création des fichiers d'une lib .
Je pourrai ensuite tester cette lib avec codeblocks .
Salut,
À vrai dire, il n'y a pour ainsi dire pas de différence entre le fait de créer une application et celui de créer une bibliothèque... Il n'y a que la génération du fichier final qui change : une bibliothèque (statique) n'est qu'une archive qui contient l'ensemble des fichiers objet générés par la compilation, pour une bibliothèque dynamique, c'est un peu plus compliqué (surtout sous windows), parce que les symboles sont exportés et qu'il est possible de charger ces symboles dynamiquement.
Mais le plus simple est, tout bonnement, de demander à ton EDI de générer un projet qui correspond à ce que tu veux faire... Tous les EDI "corrects" te proposent une série d'assistants qui te permettent de choisir le type de projet que tu veux créer... A toi de choisir le bon
Notes cependant que, pour pouvoir tester une bibliothèque (qu'elle soit statique ou dynamique), tu devra l'utiliser dans un projet "séparé" de type "application" car une bibliothèque vient systématiquement sans la fonction principale main
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Juste une remarque à 2€ :
- Il y a un DllMain dans les Dll Windows (initialisation des données de la Dll lors du chargement de la Dll dans un processus ou lors de la création d'un thread)
- Pour beaucoup de Dll, un exécutable "standard" comme les "harness" de tests ou l'objectViewer COM/OLE peuvent très souvent faire l'affaire.
Dans un projet c++ console , je veux intégrer la source C du calcul de tous les chiffres de factoriel 100 .Python étant écrit en C, la source est disponible
https://hg.python.org/cpython/file/7...module.c#l1218
Supposons que je nomme cette lib facto dans ce projet codeblocks .
Comment se présentera le codage ci-dessous ?
Je rappelle que je débute avec c++ ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int main() { // Appel lib facto // -------- } // Après main comment déclarer facto ? { }
Os Ubuntu sur pc
La façon de décorer des noms de variables et de fonctions par le compilateur se fait différemment être le C et le C++.
Pour avoir une décoration de forme C++ pour les fonctions C, il faut les déclarer au sein d'un bloc extern "C" {}, avant de les appeler.
Source: Eckel, Thinking in C++ 2.
EDIT : extern "C" {} au lieu de extern "C" {};
Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.
Avec facto.h :
La compilation bloque sur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef FACTO_H_INCLUDED #define FACTO_H_INCLUDED extern "C" { /* Math module -- standard C math library functions, pi and e */ /* Here are some comments from Tim Peters, extracted from the discussion attached to http://bugs.python.org/issue1640. They describe the general aims of the math module with respect to special values, IEEE-754 floating-point exceptions, and Python exceptions. ..... tous le module >>https://hg.python.org/cpython/file/7937aa6b7e92/Modules/mathmodule.c#l1218 } #endif // FACTO_H_INCLUDED
#include "Python.h"
#include "_math.h"
Python.h est un gros bazar >> https://hg.python.org/cpython/file/5...clude/Python.h
En pinaillant, tu ne dois dans le "extern" que déclarer (pas définir) que les fonctions que tu utilises et placer les définitions dans un autre fichier .c .
Bien sûr, le problème n'est pas tellement que "Python.h" est gros mais surtout qu'il appelle lui-même d'autres .h qu'il faut aller chercher je-ne-sais-où. Le but n'est pas de télécharger tout le code de Python non plus.
Une solution serait de dépouiller le code C que tu importes. Mais est-ce une solution tenable ?
J'ai un peu surfé pour télécharger la librairie GMP (GNU), censée faire des opérations entre autres sur des BigInteger (je crois que Java dispose de cette classe bien utile), mais rien de concret de ce côté.
Bon courage.
Olivier
Toujours à adapter le problème à la structure de la machine, mais se soigne pour faire l'inverse.
Voir les possibilités , c'est déjà avancer . Un forum donne quelques points de vue mais
peu souvent une solution très satisfaisante .
C++ fait appel à des librairies quand elles existent .
Python est plus compact dans le codage , avec des lib différentes .
C'est bien de ne pas ignorer les deux ..
[Résolu] pour la forme
L'idée n'était pas d'inclure Python mais de lire le code de leur méthode factoriel pour le réécrire dans ton programme..
Rien qu'en le lisant, ça utilise en tout 4-5 méthodes seulement, toutes les méthodes de transformation en PyObject sont inutiles.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager