LOVEGUN

Bac 2010 27/05

Jan 29th, 2021
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.97 KB | None | 0 0
  1. Program bac2010;
  2. Uses Wincrt;
  3. Type
  4.   tab = Array [1..50] Of Integer;
  5. Var
  6.   f: Text;
  7.   n: Integer;
  8. Procedure creation (Var f:Text);
  9. Begin
  10.   Assign (f,'C:/bac/nombree.txt');
  11. End;
  12. Procedure permute(Var x,y:Integer);
  13. Var
  14.   aux: Integer;
  15. Begin
  16.   aux := x;
  17.   x := y;
  18.   y := aux;
  19. End;
  20.  
  21. Procedure Tri_Bulles (Var T :tab ; n :Integer);
  22. Var
  23.   i: Integer;
  24.   echange: Boolean;
  25. Begin
  26.   Repeat
  27.     echange := False;
  28.     For i:=1 To n-1 Do
  29.       If T[i] < T[i+1] Then
  30.         Begin
  31.           Permute(T[i], T[i+1]);
  32.           Echange := True ;
  33.         End;
  34.     n := n-1;
  35.   Until (Echange = False) Or (n=1);
  36. End;
  37. Procedure remplir (Var f:Text;Var n:Integer);
  38. Var
  39.   i,x: Integer;
  40. Begin
  41.   Rewrite (f);
  42.   Repeat
  43.     Write ('Saisir N: ');
  44.     Readln (n);
  45.   Until (2<n) And (n<=50);
  46.     Randomize;
  47.     For i:=1 To n Do
  48.     Begin
  49.       Repeat
  50.         x := Random (10);
  51.       Until x>0;
  52.       Writeln (f,x);
  53.     End;
  54.   Close (f);
  55. End;
  56.  
  57. Function suite (t:tab;n:Integer): Boolean;
  58. Var
  59.   i: Integer;
  60.     t1:tab;
  61.     test:Boolean;
  62. Begin
  63.     for i:=1 to n-1 Do
  64.         t1[i]:= t[i]-t[i+1];
  65.     i:=0;
  66.     Repeat
  67.         i:=i+1;
  68.         test:=t1[i]=t1[i+1];
  69.     Until (i=n-2) or (test=false);
  70.     suite := test;
  71.  
  72. End;
  73.  
  74. Procedure traitement (Var f:Text);
  75. Var
  76.   t,taux: tab;
  77.   i: Integer;
  78.   pn,gn: String;
  79.     test:Boolean;
  80. Begin
  81.   Reset (f);
  82.   i := 0;
  83.   While Not (Eof(f)) Do
  84.     Begin
  85.       i := i+1;
  86.       Readln (f,t[i]);
  87.       taux[i] := t[i];
  88.     End;
  89.   Tri_Bulles(taux,n);
  90.   For i:=1 To n Do
  91.     Begin
  92.       Str (taux[i],pn);
  93.       gn := gn+pn;
  94.     End;
  95.   pn := '';
  96.   For i:=n Downto 1 Do
  97.     pn := pn+gn[i];
  98.   For i:=1 To n Div 2 Do
  99.     t[i] := taux[i]-taux[n-i+1];
  100.   Writeln ('Le plus petit nombre est ', pn,' et le plus grand nombre est ',gn);
  101.   test := suite (t,n Div 2);
  102.   If test Then
  103.     Writeln ('U est une suite arithmétique de raison r=',t[2]-t[1])
  104.   Else Writeln ('U n''est pas une suite arithmétique');
  105. End;
  106. Begin
  107.   creation (f);
  108.     remplir (f,n);
  109.   traitement (f);
  110. End.
  111.  
Advertisement
Add Comment
Please, Sign In to add comment