Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. program cryptage;
  2. uses wincrt;
  3. Type
  4. strong=string[18];
  5. mat1=array['A'..'F','A'..'F'] of Char;
  6. mat2=array[1..7,1..6] of char;
  7.  
  8. Var
  9. msg:strong;
  10. mcl:string[6];
  11. M1:mat1;
  12. msgi:string;
  13. M2:mat2;
  14. Function verif(msg:strong):Boolean;
  15. Var
  16. i:Integer;
  17. Begin
  18. i:=1;
  19. while(i<=length(msg)) and (msg[i] in ['0'..'9','a'..'z',' ']) Do
  20. i:=i+1;
  21. verif:=i>length(msg);
  22. end;
  23. Function verifcl(mcl:String):Boolean;
  24. Var
  25. i:Integer;
  26. Begin
  27. i:=1;
  28. while(i<=length(mcl)) and (mcl[i] in ['A'..'Z']) Do
  29. i:=i+1;
  30. verifcl:=i>length(mcl);
  31. end;
  32. procedure message(var msg:strong);
  33. Begin
  34. Repeat
  35. write(' message a crypter = ');
  36. readln(msg);
  37. Until (length(msg)<=18) and verif(msg);
  38. end;
  39. procedure motcle(var mcl:String);
  40. Begin
  41. Repeat
  42. write('saisir le mot cle : ');
  43. readln(mcl);
  44. Until (Length(mcl)=6) and verifcl(mcl);
  45. end;
  46. procedure init(var M1:mat1);
  47. Var
  48. i,j,l,c:char;
  49. ch:String;
  50. Begin
  51. ch:='abcdefghijklmnopqrstuvwxyz0123456789';
  52. Repeat
  53. randomize;
  54. l:=chr(Random(ord('F')-ord('A')+1)+ord('A'));
  55. c:=chr(Random(ord('F')-ord('A')+1)+ord('A'));
  56. m1[l,c]:=ch[1];
  57. delete(ch,1,1);
  58. until(Length(ch)=0);
  59. end;
  60. Procedure affich(M1:mat1);
  61. Var
  62. i,j:char;
  63. Begin
  64. for i:='A' to 'F' Do
  65. Begin
  66. for j:='A'to'F' Do
  67. write(m1[i,j]);
  68. end;
  69. end;
  70. Function generer(var msgi:string;M1:mat1;msg:strong):string;
  71. Var
  72. i,j:char;
  73. l:integer;
  74. ch:string;
  75. Begin
  76. l:=1;
  77. ch:=msg;
  78. msgi:='';
  79. for i:='A' to 'F' Do
  80. Begin
  81. for j:='A' to 'F' Do
  82. Repeat
  83. if(ch[l]<>m1['A','F']) Then
  84. l:=l+1
  85. Else
  86. Begin
  87. msgi:=msgi+i+j;
  88. Delete(ch,l,1);
  89. end;
  90. Until l>Length(ch);
  91. end;
  92. generer:=msgi;
  93. end;
  94. Procedure rempM2(var M2:mat2;mcl:String);
  95. Var
  96. i,j:integer;
  97. Begin
  98. for i:=1 to 7 Do
  99. Begin
  100. for j:=1 to 6 Do
  101. If(msgi<>'') Then
  102. m2[i,j]:=' '
  103. else
  104. Begin
  105. m2[i,j]:=msgi[1];
  106. Delete(msgi,1,1);
  107. end;
  108. end;
  109. end;
  110. procedure tri(var M2:mat2);
  111. begin
  112. for i:= 1 to 7 Do
  113. for j:= 1 to 6 Do
  114.  
  115.  
  116.  
  117. end;
  118. procedure affiche(M2:mat2);
  119. Var
  120. i,j:integer;
  121. ch:string;
  122. begin
  123. ch:='';
  124. for i:= 1 to 6 Do
  125. Begin
  126. for j:= 2 to 7 Do
  127. ch:=ch+m2[j,i];
  128. end;
  129. write(ch);
  130. end;
  131. begin
  132. message(msg);
  133. motcle(mcl);
  134. init(M1);
  135. affich(M1);
  136. generer(msgi,M1,msg);
  137. rempM2(M2,mcl);
  138. tri(m2);
  139. affiche(M2);
  140. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement