IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Souci avec result dans une fonction


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut Souci avec result dans une fonction
    Bonjour,

    J'ai commencé a coder en pascal il y a peu, et j'ai du mal a comprendre ceci : (voici le code pour l'exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function factorielle(x: integer): integer;
    var compteur, dernier_nombre: integer;
    begin
    dernier_nombre:=1;
    if(x=0) then result:=1;
    	for compteur:=1 to x do
    	begin
    		result:=compteur*dernier_nombre;
    		dernier_nombre:=result
    	end
    La fonction calcule bien la factorielle d'un nombre comme je le souhaite, mais je ne comprend pas pourquoi quand je demande la factorielle de 0 il n'exécute pas la boucle qui suit malgré le fait que je n'ai pas de ELSE apres mon IF. Je me suis dit que des que la fonction recevait une valeur pour result elle s'arrêtait mais si c'était le cas elle devrait s'arreter lors du premier passage dans la boucle.

    Si vous pouviez m'éclairer sur ce point je vous en remercierait grandement

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Hai,

    Quand x = 0, tu veux faire une boucle de 1 à 0. Il est clair que tu n'y entreras pas, et heureusement, puisque c'est inutile.

    Tu n'as pas besoin de la variable dernier_nombre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function factorielle(x: integer): integer;
    var compteur: integer;
    begin
        result:=1;
        for compteur:=1 to x do
        begin
            result:=result*compteur;
        end;
    end;

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de join avec result dans une datatable
    Par garciajulien dans le forum Linq
    Réponses: 0
    Dernier message: 02/03/2010, 14h35
  2. [AJAX] Acces aux données avec ajax dans une fonction javascript
    Par Sidi-Bou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2008, 12h04
  3. Problème avec structure dans une fonction
    Par Saliman dans le forum C
    Réponses: 2
    Dernier message: 22/11/2007, 11h45
  4. [8i][PL/SQL] erreur avec lpad dans une fonction
    Par sali dans le forum Oracle
    Réponses: 3
    Dernier message: 16/03/2006, 06h22
  5. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo