LOVEGUN

Bac 2015 23/05

Jan 13th, 2021
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.59 KB | None | 0 0
  1. Program bac2015;
  2. Uses Wincrt;
  3. Type
  4.   suite = Record
  5.     dep,nb: Integer;
  6.   End;
  7.   tab = Array [1..30] Of suite;
  8. Var
  9.   f: Text;
  10.   p: Integer;
  11.   t: tab;
  12.  
  13. Procedure creation (Var f:Text);
  14. Begin
  15.   Assign (f,'c:\bac\depart.txt');
  16. End;
  17.  
  18. Procedure remplir (Var f:Text;Var p:Integer);
  19. Var
  20.   i,n: Integer;
  21. Begin
  22.   Rewrite (f);
  23.   Repeat
  24.     Write ('Saisir le nombre de termes: ');
  25.     Readln (p);
  26.   Until (p>=2) And (p<=30);
  27.   For i:=1 To p Do
  28.     Begin
  29.       Repeat
  30.         Write ('Saisir un termes: ');
  31.         Readln (n);
  32.       Until (2<n) And (n<1000);
  33.       Writeln (f,n);
  34.     End;
  35.   Close (f);
  36. End;
  37.  
  38. Function min (t:tab;p:Integer): Integer;
  39. Var i,x:integer;
  40. Begin
  41.     x:=t[1].nb;
  42.     for i:=1 to p Do
  43.         with t[i] Do
  44.             if x>nb then x:=nb;
  45.         min:=x;
  46.    
  47. End;
  48.  
  49. Function convergence (x:Integer): Integer;
  50. Var
  51.   i: Integer;
  52. Begin
  53.   i := 0;
  54.   Repeat
  55.     If (x Mod 2=0) Then x := (x Div 2)
  56.     Else x := 3*x+1;
  57.     i := i+1;
  58.   Until (x=1);
  59.   convergence := i;
  60. End;
  61.  
  62. Procedure traitement (Var f:Text;Var t:tab;p:Integer);
  63. Var
  64.   i,x,e: Integer;
  65.   ch: String;
  66. Begin
  67.   Reset (f);
  68.   For i:=1 To p Do
  69.     With t[i] Do
  70.       Begin
  71.         Readln (f,ch);
  72.         Val (ch,x,e);
  73.         dep := x;
  74.         nb := convergence(x);
  75.       End;
  76.   Close (f);
  77. End;
  78.  
  79. Procedure affiche (t:tab;p:Integer);
  80. Var
  81.   i,x: Integer;
  82. Begin
  83.     x:=min (t,p);
  84.     clrscr;
  85.     writeln ('Valeur minimum: ');
  86.     For i:=1 To p Do
  87.     With t[i] Do
  88.             if x=nb then
  89.             Writeln (i,') ','Depart: ',dep,' / nb: ',nb);
  90. End;
  91. Begin
  92.   creation (f);
  93.   remplir (f,p);
  94.   traitement(f,t,p);
  95.   affiche(t,p);
  96. End.
  97.  
Advertisement
Add Comment
Please, Sign In to add comment