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

Turbo Pascal Discussion :

Appel d'une procédure dans une autre


Sujet :

Turbo Pascal

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Points : 13
    Points
    13
    Par défaut Appel d'une procédure dans une autre
    bonjour,

    pouvez-vous me dire si on peut appeler une procedure dans une autre procedure!!

    merci

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Koe,

    La vraie question est : pourquoi penses-tu que ce pourrait être impossible ?

    Et même en admettant que tu te poses la question, le moindre petit test t'aurait déjà donné la réponse.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Points : 13
    Points
    13
    Par défaut
    parceque je l'ai déja utilisé dans mon programme mais sa ne fonctionne pas!!!
    ce que je veux c'est utiliser le resultat d'une procedure dans une autre

    j'atend votre réponse...
    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Poste ton code sinon on peut pas deviner d'où vient l'erreur.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Si tu reçois le message d'erreur "Unknown identifier", c'est que la procédure appelée est définie(dans le code) après la procédure qui l'appelle.
    Dans un tel cas, il faut la définir avant de l'appeler.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Points : 13
    Points
    13
    Par défaut
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    program securite;
     
    type 
      mat=array[1..2,1..2] of integer;
      tabl=array[1..2]of integer;
      tablr=array[1..2] of real;
      matr=array[1..2,1..2]of real;
     
    procedure chiffrement(t:mat; msg:string; var r:tabl);
    var
      w:tabl;
      i,k:integer;
    begin
      for i:=1 to length(msg) do
      if (i mod 2)=1 then
        begin
          begin
            w[1]:=dor(msg[i]);
            w[2]:=dor(msg[i+1]);
            begin
              r[k]:=0;
              begin
                r[1]:=(t[1,1]*w[1]+t[1,2]*w[2]) mod 26;
                r[2]:=(t[2,1]*w[1]+t[2,2]*w[2]) mod 26;
              end;
            end;
          end;
          for k:=1 to 2 do
            writeln('r[k]:',r[k]);
        end;
    end;
     
    procedure dechiffrement(t:mat;x:string;r:tabl;var s:tablr);
    var
      p,k:integer;
      e:tabl;
      b:real;
      a:matr;
    begin
      b:=(t[1,1]*t[2,2]-t[1,2]*t[2,1]);
      b:=1/real(b);
      begin
        a[1,1]:=b*t[2,2];
        a[1,2]:=b*-t[1,2];
        a[2,1]:=b*-t[2,1];
        a[2,2]:=b*t[1,1];
      end;
      begin
        s[1]:=trunc(a[1,1]*r[1]+a[1,2]*r[2])mod 26;
        s[2]:=trunc(a[2,1]*r[1]+a[2,2]*r[2])mod 26;
        for k:=1 to 2 do
          writeln('s[k]:',(s[k] ));
      end;
    end;
     
    var
      i,j,k,p,q,y:integer;
      b:real;
      x:string;
      s:tablr;
      a:array[1..2,1..2]of real;
      T:mat;
      R:tabl;
      e:array[1..100]of integer;
     
    begin
      begin
        writeln('--------------------------------------');
        writeln('| pour que vous vous sentez proteger |');
        writeln('--------------------------------------');
      end;
      begin
        writeln('tapez 1 pour entrer un message');
        writeln('tapez 2 si vous voulez le dechiffrer');
        writeln('tapez 4 pour quitter le programme');
      end;
      repeat
        writeln('entrer une instruction a execute');
        readln(q);
        begin
          if q=1 then
            begin
              writeln('veuillez entrer votre msg sans espace');
              readln(x);
              begin
                writeln('choisir la cle de chiffrement T[k,y]');
                for k:=1 to 2 do
                for y:=1 to 2 do
     
                readln(T[k][y]);
                begin
                  chiffrement(T,x,R);
                  writeln;
                end;
              end;
            end;
          if q=2 then
            dechiffrement(T,x,R,S);
        end;
      until q=4;
      begin
        for i:=1 to length(x) do
        writeln('votre msg dechiffre est:',x[i] );
        readln;
        for k:=1 to 4 do
        writeln('votre msg chiffre est:',r[k]);
        readln;
      end;
    end.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Points : 13
    Points
    13
    Par défaut
    dor est une fonction qui chiffre le message c'est-à-dire si 'a' alors '1'...etc je l'ai déclaré mais j'ai oublié de la mettre ici

    ce serait sympa de votre de part si vous jettez un coup d'oeil sur mon code
    merci!!!!!

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Le mot-clé forward permet à une procédure ou une fonction d'être considérée comme telle et d'être déclarée même sans boc de code associé. On appelle cela une déclaration forward.

    Le bloc de code correspondant peut lui être associé plus loin dans le code source. Dans la déclaration descriptive.

    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
    {**	Déclaration forward
    	Le compilateur doit savoir qu'il s'agit d'une fonction
    	Il doit connaitre la liste des paramètres ainsi que le type de resultat
    }
    function dor(const c:char):Integer;forward;
     
     
     
    procedure chiffrement(t:mat; msg:string; var r:tabl);
    begin
     w[1]:=dor(msg[i]);
     w[2]:=dor(msg[i+1]); { i va jusqu'à length(msg) donc il y a un souci }
    end;
     
     
    {**	Déclaration descriptive
    	La liste des paramètres et le type de résultat sont désormais facultatifs
    }
    function dor;
    begin
     { Code ici }
    end;
    Qu'est-ce qui peut bien t'empêcher de placer la déclaration complète de la fonction avant la procedure chiffrrement ?

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. appel d'une procédure dans une procédure
    Par breizh76 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 23/03/2010, 15h47
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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