Algorithme pour resoudre l'exposent

Fermé
bjdcduicfdsu - 12 avril 2017 à 23:28
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 29 avril 2017 à 13:34
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

A voir également:

3 réponses

baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 13 565
12 avril 2017 à 23:38
Bonsoir,
öur débloquer la suite...
Voir
https://fr.wikipedia.org/wiki/Puissance_d%27un_nombre
0
bjdcduicfdsu
12 avril 2017 à 23:41
je sais comment resoudre la puissance mais je ne connais pas comment l'ecrire dans un exercice d'algo.
0
baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 13 565 > bjdcduicfdsu
13 avril 2017 à 00:24
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
bjdcduicfdsu
13 avril 2017 à 00:28
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
baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 13 565 > bjdcduicfdsu
13 avril 2017 à 00:41
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
bjdcduicfdsu > baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025
13 avril 2017 à 11:42
je ne sait pas comment l'ecrire autre que ça :/
0
einstein66 Messages postés 11 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 20 septembre 2017
24 avril 2017 à 18:17
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
baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025 13 565
24 avril 2017 à 21:10
La boucle n'est pas correcte X ¹ = X et pas X² (x*x)
0
einstein66 Messages postés 11 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 20 septembre 2017 > baladur13 Messages postés 47308 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 17 février 2025
29 avril 2017 à 12:50
Propose ta correction
0
einstein66 Messages postés 11 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 20 septembre 2017
25 avril 2017 à 13:10
#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
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
29 avril 2017 à 13:34
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