bonjour,
pouvez-vous me dire si on peut appeler une procedure dans une autre procedure!!
merci
bonjour,
pouvez-vous me dire si on peut appeler une procedure dans une autre procedure!!
merci
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.
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
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
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
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.
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!!!!!
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.
Qu'est-ce qui peut bien t'empêcher de placer la déclaration complète de la fonction avant la procedure chiffrrement ?
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;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager