X ^(n)sur turbo pascale

Fermé
rajaoui - 15 mai 2009 à 16:48
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 15 mai 2009 à 17:08
Bonjour,
j'ai un exercice en turbo pascal ,l'énoncé est le suivant :
Exercice 1 : Calcule Xn

• Ecrire 3 algorithmes. Chaque algorithme demande à l’utilisateur les valeurs de X et de n, ensuite, il affiche le résultat Xn
• Compare leurs Complexité.


or j'ai trouvé qu'un algorithme le voici :

Program exposant;
Uses crt ;
Function exposant ( i , j : integer ) : integer ;
Var i2 , a : integer ;
Begin
i2 := 1 ;
For a := 1 To j Do i2 := i2 * i ;
exposant := i2 ;
End ;
Var resultat, x, n : integer ;
BEGIN
Write ('Entrez un nombre : ') ;
Readln (x) ;
Write('Entrez un exposant : ') ;
Readln (n) ;
resultat := exposant ( x , n ) ;
Writeln ( resultat ) ;
Readln ;
END.



pouvez vous m'aider pour les deux autres?
A voir également:

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
15 mai 2009 à 17:08
Celui que tu as posté c'est le premier, puisqu'il est itératif (il utilise une boucle)

Ensuite il faudrait que tu fasses un algorithme récursif (il s'appelle lui même)
Et à chaque fois tu fais n calculs pour l'entrée n, c'est ce qu'on appelle la complexité linéaire

Mais tu devrais pouvoir améliorer ton deuxième algorithme pour le faire en complexité logarithme (c'est à dire en O(log n) calculs)
1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
15 mai 2009 à 16:52
Ton premier algorithme est itératif de complexité linéaire
Ton deuxième devrait être récursif de complexité linéaire
Ton troisième devrait être récursif de complexité logarithmique
0
j'ai rien compris tu peux pas m'aider plus ! deja le premier que j'ai posté c'est lequel?
0