Conversion d'un réel en entier puissance de 10

  • Créateur du sujet Créateur du sujet soulard.morgan
  • Date de début Date de début
A

Anonyme

Invité
Bonjour a tous !

Je commence a dévellopper des programmes sur MacOs X et je suis confronté
a un problème simple mais que j'ai du mal a résoudre.

Je travaille sur un bout de programme écrit en C.

J'essaye de convertir un nombre réel (ex : 0.057087) en entier puissance de dix, afin
de réaliser une simplication de fraction.

L'idée principale étant de multiplier le numérateur (ex : 0.057087) par des puissances de dix
Bloc de code:
a=Numerateur*(pow(10,x)) ;
en parrallèle avec le dénominateur,
Bloc de code:
 b=pow(10,x) ;
en fonction d'une intégrale "x", qui serait la puissance de dix.

Malheureusement je ne sais pas comment réaliser une fonction qui permètrait de multiplier un nombre "Numerateur" par des puissance de dix jusqu'a obtenir un nombre entier...

Ceci est important; puisque j'ai un résultat en virgule flottante que je doit traduire en entier (ex : 0.057087 = 57087 / 1000000)

Le programme que je souhaite réaliser est un programme de conversion d'unité de longueur internationale (en Millimètres) vers des Pieds Entiers et des pouces sous forme de fraction.

Si quelqu'un a une solution a proposer, je lui en serait reconnaissant
 

J'ai trouvé dans ce programme la fonction dont j'avait besoin (convertir un nombre réel en fraction)

terminal.png


Il me reste seulement a trouver cette fonction dans les sources...

Merci !
 
bah j'ai trouvé :p;)

indices : ANDing ORing Bitwise


Bon pour ce qui est de grep -r "expression" je n'arrive pas a le faire marcher.
J'ai lu le "man grep" mais je n'arrive pas a lancer de recherche.

Je suis sur un wiki http://rpgstats.com/wiki/index.php?title=Bitwise#top pour les opérateurs bit par bit...

J'ai les méninges qui chauffent... en plus j'ai une angine carabinée:siffle:

J'ai fouillé dans les sources, pour l'instant rien de concluant...

Bref en gros, je suis largué...:rose:
 
pose toi 5 secondes avec une feuille de papier
multiplicateur / diviseur
quelle est "le rapport" entre un multiplicateur et un diviseur , un numérateur et un dénominateur ?

tu as juste un tout petit problème de logique sur quelque chose de super simple
alors tu mets ça à plat et surtout tu quittes ton clavier et ton écran

:)
 
pose toi 5 secondes avec une feuille de papier
multiplicateur / diviseur
quelle est "le rapport" entre un multiplicateur et un diviseur , un numérateur et un dénominateur ?

Bonjour.

Le rapport sert surtout pour la simplification.
En fait le problème que j'ai c'est plutôt de créer une itération ou l'on multiplie un nombre par 10
jusqu'a temps qu'il ne soit plus du type float.
Une des solutions c'est de convertir le type float en chaine de caractère, puis de l'analyser...


Bref Il va falloir que je me démerde... :D

Merci.

P.S: J'ai regardé sur ton site system info et je me demandais si ton logiciel récupère la vitesse du processeur en le demandant a la machine ou en regardant dans un fichier....
 
Bonjour.

Le rapport sert surtout pour la simplification.
En fait le problème que j'ai c'est plutôt de créer une itération ou l'on multiplie un nombre par 10
jusqu'a temps qu'il ne soit plus du type float.
Une des solutions c'est de convertir le type float en chaine de caractère, puis de l'analyser...


Bref Il va falloir que je me démerde... :D

Merci.

P.S: J'ai regardé sur ton site system info et je me demandais si ton logiciel récupère la vitesse du processeur en le demandant a la machine ou en regardant dans un fichier....

pourquoi faire simple quand on peut faire n'importe quoi : str et des float ????????????
ptain c'est simple ton truc tu as appris ca a la petite ecole ...



:D:p;):D man 3 sysctl

autre approche avec exec

Bloc de code:
#include <stdio.h>
#include <sys/param.h>
#include <sys/sysctl.h>

int main(void)
{
    char machine[64];
    int mem_total;
    size_t len;
    
    len = sizeof(machine);
    sysctlbyname("hw.machine", &machine, &len, NULL, 0);
    
    len = sizeof(mem_total);
    sysctlbyname("hw.physmem", &mem_total, &len, NULL, 0);
    
    printf("%s : %iM \n",machine, (mem_total/1048576));
    
    return 0;
}
 
En parlant de calculs, vous savez comment je peux mettre la conjecture de Syracuse sous forme d'un petit programme. J'ai r&#233;ussi &#224; le faire avec ma TI-83, mais le processeur ultra puissant de 6 Mhz ne me permet pas de d&#233;marrer depuis une puissance de 10 ou 12 :rateau:

Merci
 
Bloc de code:
def is_even(x):
    if (x%2 == 0)
        return True 
    return False

def is_odd(x):
    if  is_even(x) is True:
        return False
    return True

def conjecture(n)
  while n > 1:
    print n
    if is_odd(n) is True:
      n = 3 *n + 1
    else:
     n =  n / 2
  print n
 
je pense qu'il faut que je retourne dans le sujet plus basiques mais pour exécuter ça le terminal ne suffit pas ?

:rose:


Il y a un bug dans ton fichier python :rolleyes:

Bloc de code:
acme12:~/Desktop> python python.py
  File "python.py", line 1
    def is_even(x):
    ^
SyntaxError: invalid syntax
A moins que je ne sache pas comment on lance un fichier python ... :mouais:

:coucou:
 
Bloc de code:
def is_even(x):
    if (x%2 == 0):
        return True 
    return False

def is_odd(x):
    if  is_even(x) is True:
        return False
    return True

def conjecture(n):
  while n > 1:
    print n
    if is_odd(n) is True:
      n = 3 *n + 1
    else:
     n =  n / 2
  print n