MULTIPLICATION DE GRANDS NOMBRES

Signaler
Messages postés
4
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
26 février 2006
-
luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
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/36269-multiplication-de-grands-nombres

luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Bon pour te montrer un exemple de surchage d'addition. Si ta classe, on l'appelle VLI (very large integer) où chaque objet est constitué d'un tableau alloué statiquement (et non dynamiquement comme tu le fais dans ta source) de TAB_SIZE entiers (environ 1000 pour des grands chiffres). Ta classe a l'allure suivante:

classe VLI
{
public:
...

// on définie l'opérateur +. Puisque c'est opérateur est symétrique, il est plus logique de le déclarer en fonction ami et donc externe

friend VLI operator + (const VLI & _objet1, const VLI & _objet2);

private:

unsigned int tab[TAB_SIZE];
};

// et apres on définie la fonction d'addition
VLI operator + (const VLI & _objet1, const VLI & _objet2)
{
VLI new_VLI;
// la tu fais l'addition de ces deux VLI (_objet1 et _objet2), tu stockes le résultat dans new_VLI.

// et tu retournes le nouveau VLI créé.
return new_VLI;
}

Et maintenant dans ton programme, tu pourras écrire :

VLI c(a + b); // en utilisant l'opérateur de recopie et en considérant que a,b sont initialisés correctement.

Si tu surchares l'opérateur << du C++. Tu pourrais écrire: cout << a + b << endl;

Bon aller, voila pour une petite présentation. ++
luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Oke si tu débutes le C. J'ai pas fais assez attention. Tu précisais en C :)
Dans ma tete, le C++ permet tellement plus de chose, donc pour moi c'était du C++.
Mais meme si tu ne fais pas un système de classe. Tu peux te pencher sur les structures, et fournir une série de fonction avec. Comme des fonctions pour additionner, multiplier,... ces grands nombres.

Mon avis personnel étant que, ce site n'a pas pour but d'accueillir les essais personnels en matière de programmation. Si tu regardes ce site, il y a des quantités de sources très avancés qui ont un intérêt, car non seulement elle représente bcp de travail, ou elles présentent autre chose que ce que tout le monde sait à peu près faire.

Pour l'orienté objet, il y a des quantités de documents sur le C++ sur le web. En programmation basique, ton meilleur ami, c'est Google.

Pour ce qui est de la surchage des opérateurs, tu penses bien qu'il est hors de question de parser une string :)

Bon a part tout ca, bonne continuation en C :)
TRAX44
Messages postés
93
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
20 juillet 2006

j'ai commencé ce programme deux jour après avoir commencé a touché au C. Je ne saivais même pas (quand je l'ai fait) qu'il existait un system de classe en C.
Sinon pour surcharger les opérateur en orienté objet je vois pas comment il est possible de faire (a part parser une string).
Luthor, tu pourrais nous fair un petit tuto pour nous expliquer ? :D
Sinon, non c'est pas extraordinaire, ça permet juste de pas utiliser un truc tout pret que tu sais pas comment ça marche :)

@+
trax
luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
C'est pas réutilisable comme code ca. Faut créer une classe pour gérer ca, surcharger les opérateurs. Enfin plein de truc qui feraient que quelqu'un d'autre puisse l'utiliser.
Car en lui meme, le principe n'a rien d'extraordinaire.

++
TRAX44
Messages postés
93
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
20 juillet 2006

j'ai déjà fait un gros effort avant de poster. et je veux pas la note d'un ami mais celle d'un regart critique ! :)