Advertisement
LOVEGUN

Bac 2013 (23/05 à 10h)

Apr 15th, 2021
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.88 KB | None | 0 0
  1. Program bac2013;
  2. Uses Wincrt;
  3. Var
  4.   f1,f2: Text;
  5.  
  6. Procedure creation (Var f1,f2:Text);
  7. Begin
  8.   Assign (f1,'c:\bac\revision bac\phrases.txt');
  9.   Assign (f2,'c:\bac\revision bac\resultat.txt');
  10. End;
  11.  
  12. Function verif (ch:String): Boolean;
  13. Var
  14.   i: Integer;
  15.   test: Boolean;
  16. Begin
  17.   i := 0;
  18.   Repeat
  19.     i := i+1;
  20.     test := ch[i] In ['A'..'Z','a'..'z',' '];
  21.   Until (test=False) Or (i=Length(ch));
  22.   verif := test;
  23. End;
  24.  
  25. Procedure remplir (Var f1:Text);
  26. Var
  27.   n,i: Integer;
  28.   ch: String;
  29. Begin
  30.   Repeat
  31.     Write ('Saisir N: ');
  32.     Readln (n);
  33.   Until (n<=50);
  34.   Rewrite (f1);
  35.   For i:=1 To n Do
  36.         begin
  37.             Repeat
  38.           Write ('Saisir la phrase ',i,' : ');
  39.           Readln (ch);
  40.         Until (Pos('  ',ch)=0) And (verif(ch));
  41.             writeln (f1,ch);
  42.         end;
  43.   Close (f1);
  44. End;
  45. Function crypt (ch:String;n:Integer): String;
  46. Var
  47.   i,j: Integer;
  48. Begin
  49.   For i:=1 To Length(ch) Do
  50.     For j:=1 To n Do
  51.       If ch[i]='Z' Then
  52.         ch[i] := 'A'
  53.       Else If ch[i]='z' Then
  54.              ch[i] := 'a'
  55.       Else
  56.         ch[i] := Succ(ch[i]);
  57.   crypt := ch;
  58. End;
  59. Function cryptage (ch:String): String;
  60. Var
  61.   i: Integer;
  62.   ch1: String;
  63. Begin
  64.   ch := ch+' ';
  65.   ch1 := '';
  66.   i := 0;
  67.   Repeat
  68.     i := i+1;
  69.     ch1 := ch1+crypt(Copy(ch,1,Pos(' ',ch)-1),i)+' ';
  70.     Delete (ch,1,Pos(' ',ch));
  71.   Until (ch='');
  72.   cryptage := Copy (ch1,1,Length(ch1)-1);
  73. End;
  74.  
  75. Procedure traitement (Var f1,f2:Text);
  76. Var
  77.   ch: String;
  78. Begin
  79.   Reset (f1);
  80.   Rewrite(f2);
  81.   While Not (Eof(f1)) Do
  82.     Begin
  83.       Readln (f1,ch);
  84.       Writeln (f2,cryptage(ch));
  85.     End;
  86.   Close (f1);
  87.   Close (f2);
  88. End;
  89.  
  90. Procedure affiche (Var f:Text);
  91. Var
  92.   ch: String;
  93. Begin
  94.   Reset (f);
  95.   While Not (Eof(f)) Do
  96.     Begin
  97.       Readln (f,ch);
  98.       Writeln (ch);
  99.     End;
  100.   Close (f);
  101. End;
  102. Begin
  103.   creation (f1,f2);
  104.   remplir (f1);
  105.   traitement (f1,f2);
  106.   affiche (f2);
  107. End.
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement