Bonjour !!
j'ai un exercice que je n'arrive pas a faire
SVP aidez-moi
il s'agit de trouver le programme qui vous permet de chiffrer et déchiffrer des message a l'aide du chiffre de Hill
merci
Bonjour !!
j'ai un exercice que je n'arrive pas a faire
SVP aidez-moi
il s'agit de trouver le programme qui vous permet de chiffrer et déchiffrer des message a l'aide du chiffre de Hill
merci
Joe,
Il ne s'agit pas de "trouver" le programme, mais de l'écrire !
Personne n'étant ici pour faire ton travail, montre-nous ce que tu as fait, explique-nous ce qui te bloque, et on verra.
Si les cons volaient, il ferait nuit à midi.
Je voulais juste avoir une idée comment l'écrire mais c'est pas grave voilà où je suis bloqué ; à chaque fois je trouve un problème, si quelqu'un peut me dire quel est-il, merci d'avance.
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147 Program succes ; type msg = string ; vect = array [1..256] of integer ; var Mm,M:msg ; y, a,b,c,d,a1,b1,c1,d1,i,N,ch:integer ; bl:boolean; procedure Bvenue; begin writeln ('Choisissez une option:'); writeln; writeln (' 1_ Chiffrer un message.'); writeln (' 2_ Dchiffrer un message.'); writeln (' 3_ Quitter le programme.'); End; function cls (var n:integer ):char; BEGIN case n of 1 :cls:='a'; 2 :cls:='b'; 3 :cls:='c'; 4 :cls:='d'; 5 :cls:='e'; 6 :cls:='f'; 7 :cls:='g'; 8 :cls:='h'; 9 :cls:='i'; 10:cls:='j'; 11:cls:='k'; 12:cls:='l'; 13:cls:='m'; 14:cls:='n'; 15:cls:='o'; 16:cls:='p'; 17:cls:='q'; 18:cls:='r'; 19:cls:='s'; 20:cls:='t'; 21:cls:='u'; 22:cls:='v'; 23:cls:='w'; 24:cls:='x'; 25:cls:='y'; 26:cls:='z'; Else cls:='*'; end ;end; function val (s: char):integer ; BEGIN case s of 'a': val:=1; 'b': val:=2 ; 'c': val:=3 ; 'd': val:=4 ; 'e': val:=5 ; 'f': val:=6; 'g': val:=7 ; 'h': val:=8 ; 'i': val:=9 ; 'j': val:=10; 'k': val:=11; 'l': val:=12; 'm': val:=13; 'n': val:=14; 'o': val:=15; 'p': val:=16; 'q': val:=17; 'r': val:=18; 's': val:=19; 't': val:=20; 'u': val:=21; 'v': val:=22; 'w': val:=23; 'x': val:=24; 'y': val:=25; 'z': val:=26; Else val:=0 ; end; end; function verif (a,b,c,d:integer):boolean; var ii,h,det:integer; begin det:=a*d-b*c; ii:=1; h:=0; while ((i<26)and(h<>1)) do begin h:= (det*ii)mod 26; if (h<>1) then ii:=ii+2 ; end; if(h=1)then verif:= true else verif := false; end; Procedure Chiffrer ( a,b,c,d :integer;Mm:msg ;Var M:msg); var lg,i:integer; Tn:vect; begin lg:=length (Mm); if (lg mod 2 <>0) then begin Mm[lg+1]:='o'; lg:=lg+1; end; for i :=1 to N do Tn[i]:=val(M[i]); i:=1; while (i<lg) do begin Tn[i] := (a* val(Mm[i])+b*val(Mm[i+1])) Mod 26; Tn[i+1] := (c* val(Mm[i])+d*val(mm[i+1])) Mod 26; i:=i+2; end; for i := 1 to lg do writeln(tn[i]); for i := 1 to lg do m[i]:=cls(tn[i]); for i := 1 to lg do writeln(m[i]); end; Procedure Dechiffrer (a,b,c,d:integer;M:msg;Var Mm:msg); var h,ii,det,i,N,lg:integer; T:vect; begin N:=length(M); for i :=1 to N do T[i]:=val(M[i]); If (N mod 2 <>0) then begin T[N+1]:=0 ; N:=N+1 ; end; det:=a*d-b*c; ii:=1;h:=0; while ((ii<26)and(h<>1)) do begin h:= (det*i)mod 26; if (h<>1) then i:=i+2; end; a1 := d*ii mod 26 ; b1 := b*ii mod 26 ; c1 := c*ii mod 26 ; d1 := a*ii mod 26 ; for i := 1 to N do begin T[i]:=(a1*T[i]+b1*T[1+i]) mod 26;Mm[i]:= cls(T[i]); T[i+1]:=(c1*T[i]+d1*T[1+i]) mod 26;Mm[i+1]:= cls(T[i+1]); i:=i+1; end; lg:=length(M); If (lg mod 2 <>0) then Mm[N]:=' '; end; Begin repeat begin writeln('=====================================================================');writeln; Writeln ; Writeln ('**** Programme de cryptage pour dbutants **** '); writeln ; Writeln('=====================================================================');writeln; Bvenue; Writeln ; readln (ch); case ch of 1 : begin writeln; Writeln ('Attention !'); writeln; Writeln ('Votre msg ne dois pas dépasser 256 caracteres'); writeln ('Donnez votre message: '); writeln; readln (Mm);writeln('Donnez la cl de chiffrement: a,b,c et d'); repeat writeln; readln(a); readln(b);readln(c); readln(d); bl:=verif(a,b,c,d); if(bl=false) then writeln ('Votre clé est incompatible,veuillez ressaisir une autre clé.'); until(bl=true); chiffrer(a,b,c,d,Mm,M); end; 2 : begin writeln; writeln ('Attention !'); writeln; writeln ('Donnez votre message à déchiffrer.'); readln (M); writeln; writeln ('Donnez la clé de chiffrement: a,b,c et d'); repeat writeln; readln(a); readln(b);readln(c); readln(d); if (verif(a,b,c,d)=false) then writeln; writeln ('Votre clé est incompatible,veuillez ressaisir une autre clé.'); until(verif(a,b,c,d)=true); Dechiffrer(a,b,c,d,M,Mm); writeln; writeln ('================================================================================='); writeln; end; 3 : writeln('A bientot, merci.') Else writeln('Erreur: votre saisie est invalide !'); End; If (ch=1) Then begin write ('Votre msg déchiffré : ',Mm); writeln; write ('Votre msg chiffré : '); for i := 1 to (length(mm)) do write(m[i]); writeln; End ; If (ch=2) Then begin writeln ('Votre msg déchiffré : ',Mm); writeln; writeln ('Votre msg chiffré : '); for i := 1 to (length(mm)) do write(m[i]); writeln; End ; End; until( ch=3) ; Readln; end.
ligne 36 ===> variable "i" inconnue !!!!!!!
Salut,
D'abord on dit "bonjour".
Ensuite ce genre d'erreur est tellement du premier niveau de la programmation que si tu ne la trouves pas tout seul, laisse tomber ces études, tu n'es pas fait pour ce métier.
Car il ne suffit pas de bêtement copier/coller le code d'un autre, faut aussi essayer de le comprendre...
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
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