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

Ada Discussion :

Appel de fonction dans une action


Sujet :

Ada

  1. #1
    Futur Membre du Club
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Appel de fonction dans une action
    Bonjour, suite à mon message précédent, j'obtiens ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Procedure Inclu1 ( E1, E2 : in Ensemble;E3: out ensemble) is
        --{ e.i. : les ensembles E1 et E2 existent }
        -- { e.f. : E3 correspond à l'inclusion des ensembles E1 et E2 }
        -- remarque : pour la réalisation de cette action, on n'appliquera pas
        -- la technique de sentinelle dans les recherches
     
     
     
       --LEXIQUE
          function inclu_ens (E3: in ensemble; E2: in ensemble)return boolean is --{détermine si un ensemble est inclu dans un autre}
          BEGIN 
             If E3.L=E2.L then return true; else return false;         
             END IF;
             end inclu_ens;
     
          J: Integer range 1..Lmax;
          K: Integer range 1..Lmax;     
     
       begin
          -- parcours de E1  
           K:=1; 
          for I in 1..E1.L  loop 
                -- schéma recherche de E2
               j:=1;
     
                while J <= E2.L and then E1.T(I)/= E2.T(J) loop
     
                J:=J+1;
     
             end loop;
              -- j<=Lde E2 +1 et E1.T(I)= E2.T(J) 
             if E1.T(I) = E2.T(J) then 
     
     
                E3.T(K):= E1.T(I);  -- on recopie les valeurs T[I] de E1 sur un nouveau ruban
     
                K:=K+1;
               else NULL;
     
             end if; inclu_ens (E3,E2);
           end loop;         
     
       E3.L:= K-1;     
     
          end Inclu1;
    Le problème est que je n'arrive pas à faire un appel correct de ma fonction booléenne inclu_ens... Quelqu'un peut-il me dire quel est le problème ??

    Merci par avance pour toutes les réponses que vous pourrez me donner et désolé d'être aussi encombrant...

  2. #2
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    Tu appelles ta fonction comme une instruction.
    Une fonction est une abstraction d'expression et non d'instructions.
    Dans l'appel que tu fais inclu_ens devrait être une procédure.

    La syntaxe correcte serait

    Variable booléenne := inclu_ens (E3,E2);

    A noter que du coup l'utilisation que tu en fais n'est pas très optimisée tu pourrais directement te servir de la valeur booléenne qu'elle retourne dans tes conditions d'arrêt de boucle ou autre expression
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If inclu_ens(E3,E2) 
                    then instructions ;
              End if;

  3. #3
    Futur Membre du Club
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut okay !!
    Citation Envoyé par Vivian Pennel
    Tu appelles ta fonction comme une instruction.
    Une fonction est une abstraction d'expression et non d'instructions.
    Dans l'appel que tu fais inclu_ens devrait être une procédure.

    La syntaxe correcte serait

    Variable booléenne := inclu_ens (E3,E2);

    A noter que du coup l'utilisation que tu en fais n'est pas très optimisée tu pourrais directement te servir de la valeur booléenne qu'elle retourne dans tes conditions d'arrêt de boucle ou autre expression
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If inclu_ens(E3,E2) 
                    then instructions ;
              End if;

    j'ai effectivement bien suivi ce que tu m'as conseillé et tout marche à merveille !! Merci pour ce conseil bien utile !!!

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

Discussions similaires

  1. Appel de fonction dans une requête
    Par ced dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/04/2007, 10h50
  2. Réponses: 10
    Dernier message: 08/12/2006, 02h18
  3. Appel de fonction dans une classe
    Par saint-pere dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2006, 22h13
  4. Appel de fonction dans une page JSP
    Par Addouna dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/03/2006, 12h56
  5. Appel de fonction dans une classe
    Par Seth77 dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2006, 10h32

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