LOVEGUN

Correction Bac 2020

Nov 7th, 2020 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.68 KB | None | 0 0
  1. Program bac20;
  2. Uses Wincrt;
  3. Var
  4.   f,f13,f7: Text;
  5.   nb: Integer;
  6.  
  7. Procedure creation (Var f,f13,f7:Text);
  8. Begin
  9.   Assign (f,'C:\bac\prog\Exercices\Bac20\nombre.txt');
  10.   Assign (f13,'C:\bac\prog\Exercices\Bac20\div13.txt');
  11.   Assign (f7,'C:\bac\prog\Exercices\Bac20\div7.txt');
  12. End;
  13.  
  14. Procedure remplir (Var f:Text;Var nb:Integer);
  15. Var
  16.   ch,i: Integer;
  17. Begin
  18.   Rewrite (f);
  19.   Repeat
  20.     Write ('Saisir le nombre d''entiers à saisir: ');
  21.     Readln (nb);
  22.   Until nb>=5;
  23.   For i:=1 To nb Do
  24.     Begin
  25.       Writeln ('Saisir l''entier ',i,': ');
  26.       Readln (ch);
  27.       Writeln (f,ch);
  28.     End;
  29.   Close (f);
  30. End;
  31.  
  32. Function divis7 (n:String): Boolean;
  33. Var
  34.   s,sg,v,e: Integer;
  35. Begin
  36.   s := 0;
  37.   sg := -1;
  38.   While Length(n)>=3 Do
  39.     Begin
  40.       Val(Copy(n,Length(n)-2,3),v,e);
  41.       s := s+v*sg;
  42.       sg := -sg;
  43.       Delete (n,Length(n)-2,3);
  44.     End;
  45.   Val (n,v,e);
  46.   s := s+v*sg;
  47.   divis7 := Abs(s) Mod 7=0;
  48. End;
  49.  
  50. Function divis13 (n:String): Boolean;
  51. Var
  52.   s,sg,v,e: Integer;
  53. Begin
  54.   s := 0;
  55.   sg := -1;
  56.   While Length(n)>=3 Do
  57.     Begin
  58.       Val(Copy(n,Length(n)-2,3),v,e);
  59.       s := s+v*sg;
  60.       sg := -sg;
  61.       Delete (n,Length(n)-2,3);
  62.     End;
  63.   Val (n,v,e);
  64.   s := s+v*sg;
  65.   divis13 := Abs(s) Mod 13=0;
  66. End;
  67. Procedure division (Var f,f13,f7:Text;nb:Integer);
  68. Var
  69.   ch: String;
  70. Begin
  71.   Reset (f);
  72.   Rewrite (f13);
  73.   Rewrite (f7);
  74.   While Not (Eof(f)) Do
  75.     Begin
  76.       Readln (f,ch);
  77.       If divis13(ch) Then
  78.         Writeln (f13,ch);
  79.       If divis7(ch) Then
  80.         Writeln (f7,ch);
  81.     End;
  82.   Close (f);
  83.   Close (f13);
  84.   Close (f7);
  85. End;
  86. Begin
  87.   creation (f,f13,f7);
  88.   remplir (f,nb);
  89.   division (f,f13,f7,nb);
  90. End.
  91.  
Add Comment
Please, Sign In to add comment