X ^(n)sur turbo pascale

rajaoui -  
KX Messages postés 19031 Statut Modérateur -
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?
Configuration: Windows XP
Firefox 3.0.10

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  3. rajaoui
     
    j'ai rien compris tu peux pas m'aider plus ! deja le premier que j'ai posté c'est lequel?
    0