Exercice en Algorithmique

Résolu
Bonjour,

L'exercice est comme suite :

Ecrire un algorithme qui affiche le factoriel d'un nombre donner par l'utilisateur.


Je propose ceci comme solution, mais je crois qu'il y a quelque chose qui cloche que j'arrive pas à trouver :

Algorithme_Factoriel
Variables: n, i, Fact : entiers

Debut
   i <- 0;
   Fact <- 1;
   Ecrire ("Donner un nombre entier :");
   lire (n);
   Tant que (i<=n) faire
     Debut
       i<-i+1;
       Fact<-Fact*i;
     Fin Tant que
   Ecrire ("Le factoriel de",n ,"est", Fact);
Fin
Configuration: Internet

8 réponses

  1. Salut,

    il manque la condition si n=0 alors Fact=1

    ...
    lire (n);
    si (n=0) alors
    Fact<-1;
    sinon
    ...
    ...
    fin si
    Ecrire ("Le factoriel de",n ,"est", Fact);
    FIN.
    1. nan!
      il manque certes la gestion des nombres négatifs ou à mantisse
      mais pas le 0 car on n'entre pas dans la boucle (1 n'est pas inférieur ou égal à 0) donc le résultat est 1
  2. Salut

    à moi, ça me semble bon.

    C'est quoi qui te tracasse ?
    L'as-tu "joué" sur le papier ?
    1. La ligne qui me semble fausse c'est :

      Fact <- Fact*i ;


      Je viens de l'écrire sur un bout de papier avant de le taper sur Comment ça marche.
      1. re
        quand je lis "Fact <- Fact * i" je comprends "multiplier le contenu de Fact par le contenu de i et stocker le résultat dans Fact"

        Quant à "jouer" l'algorithme sur papier revient à simuler son fonctionnement en écrivant sur papier le contenu des variables à la fin de chaque instruction
        1. Donc c'est correcte l'algorithme que j'ai proposer... ?
          1. oui c just mai normalement on le fait avec les fonctions récursives :)