Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
897 connectés 

  FORUM HardWare.fr
  Programmation

  [ algo ] - convertir un reel en fraction.... 0.5 --> 1/2

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ algo ] - convertir un reel en fraction.... 0.5 --> 1/2

n°106443
ZuL
Posté le 01-03-2002 à 03:08:52  profilanswer
 

comment qu'on fait ???

mood
Publicité
Posté le 01-03-2002 à 03:08:52  profilanswer
 

n°106445
ZuL
Posté le 01-03-2002 à 03:18:05  profilanswer
 

accessoirement.y'a pas une fonction prédéfinie de VB qui le fait ???

n°106446
Minouchett​e
† Mistrust The Angels †
Posté le 01-03-2002 à 03:46:26  profilanswer
 

[:xx_xx]

n°106447
Meganne
Féministe Ardant
Posté le 01-03-2002 à 03:49:40  profilanswer
 

[:rofl]

n°106448
ZuL
Posté le 01-03-2002 à 04:05:19  profilanswer
 

[:tomawack]  
 
 
 [:vancrayenest]

n°106449
Minouchett​e
† Mistrust The Angels †
Posté le 01-03-2002 à 04:06:45  profilanswer
 

[:xx_xx]

n°106450
Ventilo
Ventilo? Depuis 1998!
Posté le 01-03-2002 à 04:19:58  profilanswer
 

:lol:  
 :eek2:  :hello:

n°106540
ZuL
Posté le 01-03-2002 à 10:57:30  profilanswer
 

allez aideeeez moué...

n°106544
Lord II
PIB2000
Posté le 01-03-2002 à 11:04:16  profilanswer
 

Que va t'apporter cette nouvelle notation ??? ( en gros en a tu vraiment besoin)


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°106557
ZuL
Posté le 01-03-2002 à 11:15:04  profilanswer
 

beh au lieu d'afficher, pour mon polynome de newton interpolé, 1.66E-3x^2 je voudrais afficher (5/3)x^2
(C un exemple, pas fait gaffe aux valeurs)

mood
Publicité
Posté le 01-03-2002 à 11:15:04  profilanswer
 

n°106559
ZuL
Posté le 01-03-2002 à 11:22:20  profilanswer
 

bon en fait j'ai un debut de méthode qui tourne mais ce con de VB m'emmerde
 
en fait il a du mal a manipuler les grands grands entiers...style j'ai deux variant (ds le style 1.66E16) et jepeux les diviser (/), mais la division entiere et le modulo me font des stacks overflow  [:tomawack]

n°106567
Rawhead re​x
Argghhhhh
Posté le 01-03-2002 à 11:37:06  profilanswer
 

J'imagine que ce qui te fait planter c'est que tu effectues une decomposition en nombres premier du total :
1.66E16/3.54E8=decomp(1.66E16)+"/"+decomp(3.54E8)
 
Si c'est ca, avant de decomposer le nombre tu separe mantisse et exposant et tu effectue la decomposition sur chacun :
decomp(166)+"/"+decomp(354)+decomp(1E16/1E8)
 
Si c'est ce que tu fais deja et qu'il ne veut pas traiter les grands exposants: tu fais un switch sur l'exposant auxquel tu adjoint des valeurs precalculees que t'auras stockes dans un tableau de reference:
 
if(exposant=8) then affiche "2^8*5^8"
 
J'espere que ca pourras t'aider

n°106571
ZuL
Posté le 01-03-2002 à 11:40:01  profilanswer
 

euh en fait je vois pas trop
disons qu'a ma fonction on peut lui passer 0.5 comme on peut lui passer 1.66666666666666666667
dans le premier cas ca tourne niquel........dans le deuxième ca explose parce que les fonction prédéfinies de VB de divisions entières ne sont pas prévues pour de graaaaaaaaands entiers...
 
et je comprend pas du tout ton explication :D

n°106579
Rawhead re​x
Argghhhhh
Posté le 01-03-2002 à 11:55:20  profilanswer
 

Tu appliques quoi comme algo pour transformer ton decimal en fraction ??
C'est un truc idoine de VB et si oui y fait quoi ??

n°106609
HelloWorld
Salut tout le monde!
Posté le 01-03-2002 à 12:56:22  profilanswer
 

Mon premier programme sur calculette! :lol:
L'algo utilisé par ma calcu (je l'avais retrouvé :D) est simpliste :
 
genre : 0.5
il multiplie par 10 puis il simplifie vite fait :
0.5 * 10 => 5/10 simplifié en 1/2
pour simplifier, il cherche juste si c'est divisible par 2, 3 et 5 je crois
 
bref des exemples pour mieux comprendre:
 
0.25 => 25/100    simplifie par 5   => 5/20    => par 5    =>1/4
 
c'est rapide mais ca chie assez facilement :
 
0.333333   => 333333/1000000 ... pas de simplification, on garde ca ! :(
 
alors j'avais codé un algo "brute force"
excuse pour mon VB, c'est tres loin ...

Code :
  1. Dim a As Integer;
  2. Dim b As Integer;
  3. Dim egal As boolean;
  4. Dim nombre As Double;   'le nombre a trouver
  5. a = 1;
  6. b = 1;
  7. egal = false;
  8. Loop
  9.     if(a/b = nombre) then
  10.         Exit Do
  11.     else
  12.         if (a/b > nombre then
  13.             b = b+1;
  14.         else
  15.             a = a + 1;
  16.     end if
  17. Do


vala !
sur calculette ca ramait, mais sur PC ca doit etre gourmand mais ca va assez vite ... mais peut etre que sur du grand nombre, executé beaucoup de fois et en VB, ca va etre lent ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°106615
ZuL
Posté le 01-03-2002 à 13:10:26  profilanswer
 

beh le probleme C que j'ai des depassement de capacités vu que je manipule des E16
ca tourne très bien avec des 1/2 1/4 et tt et tt
mais des que j'ai des  1.3333333333 ou des conneries ds le style ca patauge

n°106618
ZuL
Posté le 01-03-2002 à 13:19:56  profilanswer
 

rhaaaaaaaaa j'suis blasé...en fait le seul pbleme C que mon pgcd etait définit en long et non en variant comme ts les autres...
bon ca tourne :D

n°106621
Titoine42
Posté le 01-03-2002 à 13:29:05  profilanswer
 

zul a écrit a écrit :

rhaaaaaaaaa j'suis blasé...en fait le seul pbleme C que mon pgcd etait définit en long et non en variant comme ts les autres...
bon ca tourne :D  




 
pas bo le Variant  :gun:

n°106805
ZuL
Posté le 01-03-2002 à 19:06:29  profilanswer
 

titoine42 a écrit a écrit :

 
 
pas bo le Variant  :gun:  




 
nan pas beau mais C le long est pas assez long...

n°106930
Krueger
tout salaire demande dutravail
Posté le 02-03-2002 à 00:19:21  profilanswer
 

Moi j'aurais pas cherché loin, j'aurais défini des objets fractions ainsi que les opérations nécessaires dessus.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°106933
verdoux
And I'm still waiting
Posté le 02-03-2002 à 00:25:29  profilanswer
 

Krueger a écrit a écrit :

Moi j'aurais pas cherché loin, j'aurais défini des objets fractions ainsi que les opérations nécessaires dessus.  




Je vois pas le rapport.

n°106934
Krueger
tout salaire demande dutravail
Posté le 02-03-2002 à 00:33:21  profilanswer
 

Oups, désolé j'avais pas bien lu le sujet. :sarcastic:


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°106935
ZuL
Posté le 02-03-2002 à 00:45:39  profilanswer
 

ceci dit ca merde toujours puisque la fonction Mod de VB ne prend que des doubles (mes entiers sont + grands que ca)
la division entiere idem
donc C caca
VB  :gun:  
 
pour info je fais :  
 
xp : pour valeur = 1.268
je recupere partie entiere : 1
je recupere partie reelle 1.268-1  -->  0.268
je recupere la longueur partie reelle : len(reelle)-2  -->3
je fais valeur*10^3/10^3  ---> 1268/1000
j'applique l'algo d'euclide pour le pgcd  
je divise numérateur et denominateurs par le pgcd
 
donc en fait ca tourne niquel pour des 0.5  0.225 etc...
par contre pour des 1.6666666666666666667 (style 5/3   ca arrondit a la fin)  ca chie lamentablement...paske VB il a du mal a traiter un   1E16  :sweat:

n°106938
The_chosen​_one
There can only be one !
Posté le 02-03-2002 à 02:44:00  profilanswer
 

slt, je passai juste par ce forum ...
pour les valeurs du genre 1.33333333333333, le truc, c didentifier :
(bon, c juste un algo, suis pas une bete en prog)
 
a = 1.333333333333
10*a = 13.33333333333
10*a = 12 + a
a = 12/9
on simplifi -> a = 4/3
 
voila :) :hello:
 
EDIT :
joubliai : pour savoir sil fo multiplier par 10, 100 ou plus, il fo reperer la taille de la sequence ki se repete, par exemple sur 4.321553215532155 il fo faire :
 
a = 4.321553215532155
100000*a = 432155.3215532155 car la sequence fait 5 chiffres
100000*a = 432151 + a
a = 432151/99999
on simplifi -> a = 432151/99999 (merci maple)  :lol: putain g reussi a trouver un nb premier =)
...etc ...

 

[jfdsdjhfuetppo]--Message édité par The_chosen_one--[/jfdsdjhfuetppo]

n°106989
Krueger
tout salaire demande dutravail
Posté le 02-03-2002 à 12:59:17  profilanswer
 

:jap:


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°107074
The_chosen​_one
There can only be one !
Posté le 02-03-2002 à 18:26:50  profilanswer
 

g tue le tmoic avec mon idee ou koi ?
elle est pas bonne ?

n°107086
Krueger
tout salaire demande dutravail
Posté le 02-03-2002 à 19:16:20  profilanswer
 

Ben si, mais ils sont peut-être partis en week-end. :D


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
n°107132
ZuL
Posté le 02-03-2002 à 22:31:51  profilanswer
 

The_chosen_one a écrit a écrit :

g tue le tmoic avec mon idee ou koi ?
elle est pas bonne ?  




 
nan j etais effectivement parti en wikend :)
merci beaucoup j V appliquer ca dès demain :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ algo ] - convertir un reel en fraction.... 0.5 --> 1/2

 

Sujets relatifs
logiciel temps réel[VBSCRIPT] convertir un nb de secondes au format mm:ss
[algo] "le mot le plus long" et analyse combinatoireconvertir base de donnes paradox en .sylk
[PHP] Comment on fait pour convertir une date en jours ou s. Unixconvertir trame en uart de differents formats ?
[ALgo][Graphe] planarisationConvertir un fichier RTF en HTML
Macro VBA pour convertir les fonts de 350 fichiers ....algo tri par extraction...
Plus de sujets relatifs à : [ algo ] - convertir un reel en fraction.... 0.5 --> 1/2


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR