Guest User

Untitled

a guest
Jun 25th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. program Cryptage;
  2. uses wincrt;
  3. type
  4. mat=array[1..20,1..10]of char;
  5. var
  6. f,fcr:text;
  7. cle:string;
  8. m:mat;
  9. l:integer;
  10. function verif(ch:string):boolean;
  11. var
  12. i:integer;
  13. begin
  14. i:=1;
  15. while(i<=length(ch)) and (ch[i] in ['A'..'Z']) do
  16. i:=i+1;
  17. verif:=i>length(ch);
  18. end;
  19. function distinct(ch:string):boolean;
  20. var
  21. v:boolean;
  22. i:integer;
  23. begin
  24. i:=1;
  25. repeat
  26. i:=i+1;
  27. v:=pos(ch[i],copy(ch,1,i-1))=0;
  28. until not(v) or (i=length(ch));
  29. distinct:=v;
  30. end;
  31. procedure saisie( var cle:string);
  32. begin
  33. repeat
  34. write('saisir un mot cle constituee de lettres majuscules distinctes de longueur entre 5 et 10 : ');
  35. readln(cle);
  36. until (length(cle)>=5) and (length(cle)<=10) and (verif(cle)) and (distinct(cle));
  37. end;
  38. procedure rempm(var m:mat;var fcr:text;i:integer;var l:integer);
  39. var
  40. j,c:integer;
  41. ch:string;
  42. begin
  43. reset(fcr);
  44. l:=1;
  45. while not eof(fcr) do
  46. begin
  47. readln(fcr,ch);
  48. while(i mod (length(ch))<>0) do
  49. ch:=ch+' ';
  50. for j:=1 to length(ch) do
  51. begin
  52. for c:= 1 to i do
  53. begin
  54. m[c,l]:=ch[j];
  55. if (c=i) then
  56. l:=l+1;
  57. end;
  58. end;
  59. end;
  60. close(fcr);
  61. end;
  62. procedure crypter(var m:mat;var fcr,f:text;cle:string;var l:integer);
  63. begin
  64. reset(fcr);
  65. rewrite(f);
  66. rempm(m,fcr,length(cle),l);
  67. close(fcr);
  68. close(f);
  69. end;
  70. procedure affiche(var f:text);
  71. var
  72. ch:string;
  73. begin
  74. reset(f);
  75. while (not(eof(f))) do
  76. begin
  77. readln(f,ch);
  78. writeln(ch);
  79. end;
  80. close(f);
  81. end;
  82. procedure affmat(m:mat;l,c:integer);
  83. var
  84. i,j:integer;
  85. begin
  86. for i:= 1 to l do
  87. begin
  88. for j:= 1 to c do
  89. writeln(m[l,c]);
  90. end;
  91. end;
  92.  
  93. begin
  94. assign(fcr,'C:\BAC2020\Sources.txt');
  95. assign(f,'C:\BAC2020\Crypt.txt');
  96. saisie(cle);
  97. crypter(M,fcr,f,cle,l);
  98. affmat(m,l,length(cle));
  99. affiche(f);
  100. end.
Advertisement
Add Comment
Please, Sign In to add comment