dans le zip
Télécharger le zip
impressionnant,une petite critique : tu devrais mutualiser ta procédure pour éliminer les zéros non significatifs du résultat.Un super bon point : si tu rajoute le calcul modulo, tu pourras implémenter RSA.Ceci dit, je vais faire un peu de recup dans ton code.
un mot :ENORME c'est vraiment genial et pile ce que je cherchais !!!Win Xp fait la meme chose avec sa power toy calculator mais s'arrete a 512 chifre et puis avori a sa portée un algo de calcul manuel des 4 principales operations, ca c'est vraiment cool !!!!!Je cherchais a faire un truc dans le genre mais sa aurai etait tres tres lent si j'avais reussit...Frenchement BRAVO, GRANDIOSE10/10@++ merci, et bonne prog(j'essairai d'adapter ton prog, pour fair qq chose de plus abouti)
Chapeau bas l'ami,ton truc est terrible je te met 10/10.Je me suis permis de créer une dll a partir de ton code, afin de le réutiliser dans n'importe quel prog sans tout rettaper. Mais tout le merite te revient.Je ne sais pas pourquoi, mais je n'arrive pas à publier la source.Si tu veux que je te l'envoi afin que tu le fasses (cela serait plus logique). Donne moi ton email.++
Resalut,G trouvé une failleSi tu fait : 4 - 1,333 tu obtient -103 329 au lieu de 2,667De même-4 + 1 = 5 au lieu de -3Il y a en fait un pb au niveau des signes et virgules dans les nbres sourcesMais cela reste un super truc.Encore bravo
Merci pour cette bonne note ça m'arrive pas trop souvent !En fait je ne gère que les entiers positifs.Si tu as supprimé la Sub suivante , le résultat est forcémmentérroné.Private Sub Text1_KeyPress(KeyAscii As Integer)Dim X X = Asc(Chr(KeyAscii)) If (X < 48 Or X > 57) Then KeyAscii = 0 'que des chiffres If X = 8 Then KeyAscii = 8 'sauf le rub outEnd SubVous pouvez recupérer , modifier , adapter , améliorer et publier c'est du pur open source !
Ton code est pas mal, mais un peu lent pour les grand nombre.Je te conseille de remplacer les chaine de caractère par des tableau d'octet, tu verras, c'est bcp plus rapide (il faut juste des routines de conversion pour les afficher) et le code est plus simple (les retenu par exemple pour la multiplication sont plus facile etc.)
Et comment faire pour les puissances?... je n'arrive pas à obtenir un résultat "normal", c'est à chaque fois ce type de résultat... par exemple pour 20^55 on a 3,6028797018963968e+71... des sources que j'ai trouvé ici celle-ci se rapproche le plus de ce que j'aimerais obtenir omme résultat...
J'avais fait une fonction Puissance ( une simple boucle de la fonction Multiplication ), mais les temps de calcul étaient "inhumains" ( 2^10000 en plus d'une minute )Public Function Puissance(X As String, Y As String, cde As Boolean, nb_chiffres As Long) As StringPuissance = ""nb_chiffres = 0If X <> "" And Y <> "" Then If verify_entiers_positifs(X, Y) Then If X = "0" Then Puissance = "0" Else If X = "1" Or Y = "0" Then Puissance = "1" Else If Val(Y) > 0 And Val(Y) < 10001 Then '10001 temps de calcul inhumain ???(a determiner) Puissance = X Dim j For j = 1 To Val(Y) - 1 Puissance = Multiplication(Puissance, X, 0, 0) Next j nb_chiffres = Len(Puissance) Else Puissance = "Y est trop grand, temps de calcul inhumain, trouver une autre methode" End If End If End If Else Puissance = "Des nombres entiers positifs uniquement" End IfEnd IfEnd FunctionPour info: Val(Y) donne un Doubleet20^55=360287970189639680000000000000000000000000000000000000000000000000000000temps calcul < 1 sec (ouf!)Vois le prog de DNOB700http://www.vbfrance.com/codes/JUSTE-AUTRE-LIBRAIRIE-CALCUL-PRECISION-INFINIE_22182.aspxplus "pro" que le mien.
ok, merci je vais tester ça... pour le temps d'exécution c pas grav', du moment que le résultat est là :)
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte