Methodes

Résolu/Fermé
ss10 Messages postés 5 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 4 février 2012 - 2 janv. 2012 à 21:51
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 3 janv. 2012 à 03:11
bonsoir,

voici l'enoncé de mon probleme
je veux testez la methode d'implémentation de la fonction puissance :
static double pow(double x,int n)
cette methode renvois la valeur de x elevé a la puissance n.(n est entier positif ou négatif ou nul)

ya t'il qulqu'un qui peut m'aider
merci
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 janv. 2012 à 22:31
avec quel langage ?
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 3/01/2012 à 03:14
Utilise la méthode de Horner.
En C par exmple:
johand@osiris: ~/src/CCM/C $ cat powint.c 
#include <stdlib.h> 
#include <stdio.h> 

float powi(float base, int pow) 
{ 
  float res = 1.0; 
  float facteur = base; 
  if (pow < 0) 
    { 
      facteur = 1.0 / base; 
      pow = -pow; 
    } 
  while(pow) 
    { 
      if(pow & 1) 
 { 
   res = res * facteur; 
 } 
      facteur = facteur * facteur; 
      pow = pow >> 1; 
    } 
  return res; 
} 

int  main(int argc, char *argv[]) 
{ 
  float f; 
  int p; 
  if(argc >=3) 
    { 
      f = atof(argv[1]); 
      p = atoi(argv[2]); 
      printf("%f to the power %d is %f\n", f, p , powi(f, p)); 
      return EXIT_SUCCESS; 
    } 
  else 
    { 
      fprintf(stderr, "Usage is %s base power\n", argv[0]); 
      return EXIT_FAILURE; 
    } 
} 

    
johand@osiris: ~/src/CCM/C $ gcc -Wall -o powint powint.c 
johand@osiris: ~/src/CCM/C $ ./powint 5 -3 
5.000000 to the power -3 is 0.008000 
johand@osiris: ~/src/CCM/C $ ./powint 0.3 4 
0.300000 to the power 4 is 0.008100


Ceci permet de réduire la complexité d'un ordre O(n²) à un ordre O(n). n étant l'argument exposant de la fonction.
Je n'ai pas traité toutes les conditions d'erreur de atoi et atof.
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0