Algorithme pour resoudre l'exposent

bjdcduicfdsu -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

J'ai un exercice d'algo don't je n'ai pas compris comment je dois proceder pour le savoir.
Mon exercice est le suivant:
Ecrire un algorithme qui saisit X et n, l’algorithme calcul X exposent n puis affiche la valeur sur l’écran. On suppose que l’utilisateur fournie des entiers naturels (négatif, nulle et positif) pour X et n.

J'ai commence par le basic:
Variable X,n en Numerique
Debut
Ecrire "Donner X et n"
Lire X,n

3 réponses

  1. baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention   14 386
     
    Bonsoir,
    öur débloquer la suite...
    Voir
    https://fr.wikipedia.org/wiki/Puissance_d%27un_nombre
    0
    1. bjdcduicfdsu
       
      je sais comment resoudre la puissance mais je ne connais pas comment l'ecrire dans un exercice d'algo.
      0
    2. baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention   14 386 > bjdcduicfdsu
       
      une piste :
      élever un nombre X à la puissance n (si n est positif) c'est multiplier ce nombre X par lui même n fois.
      je vous invite à chercher ce qu'il faut faire si n'est négatif, (ne pas oublier le cas ou n est nul).
      0
    3. bjdcduicfdsu
       
      donc je dois continuer de la façon suivante:

      Si n==0 Alors
      X exp n ==1
      SiNonSi n>0 Alors
      X exp n <-- X*X*X....*X
      SiNon
      Ecrire "Error"
      FinSi
      0
    4. baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention   14 386 > bjdcduicfdsu
       
      error ? les exposants négatifs cela existent. Non ?
      autre question qui se pose comment on calcule le résultat de X*X*X....*X
      0
    5. bjdcduicfdsu > baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention  
       
      je ne sait pas comment l'ecrire autre que ça :/
      0
  2. einstein66 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour,
    Voici une solution :

    Algorithme Exposant
    var X,n,tmp,i:entier
    Debut
    afficher("Entrez deux valeurs : ")
    saisir(X,n)
    tmp=X
    Pour( i <-- 1 à n) faire
    tmp=tmp*X
    finPour
    afficher("X^n =",tmp)
    Fin
    0
    1. baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention   14 386
       
      La boucle n'est pas correcte X ¹ = X et pas X² (x*x)
      0
      1. einstein66 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > baladur13 Messages postés 47319 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Propose ta correction
        0
    2. einstein66 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      #include <stdio.h>
      #include <stdlib.h>

      int main(int argc, char *argv[])
      {
      int x,n,tmp,i;
      printf("Votre nbre: ");
      scanf("%d%d",&x,&n);
      tmp=x;
      for(i=1;i<n;i++)
      {
      tmp=tmp*x;
      }
      printf("%d^%d=%d",x,n,tmp);
      return 0;
      }

      Compilez ceci et vous me direz si la boucle n'est pas correcte
      0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Et la récursivité dans tout ça ?

    double power(double x, int n) {
        return (n == 0) ? 1 : x * power(x, n - 1);
    }

    Je vous laisse gérer les cas particuliers...

    NB. Pour optimiser le calcul rappelons que
    x^(2*n) = (x^2)^n


    PS. Pour les exercices n'oubliez pas Google !
    0