Advertisement
LOVEGUN

Exercice Serie Boulifa

Jun 4th, 2021 (edited)
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.60 KB | None | 0 0
  1. {https://cdn.discordapp.com/attachments/850304726168109067/850306173491216434/d.png}
  2. Program exercice;
  3. uses wincrt;
  4. Type
  5. tab=array [1..1000] of integer;
  6. Var
  7. f1,f2:text;
  8. procedure remplir (var f:text);
  9. Var
  10. i,p:integer;
  11. Begin
  12.     Repeat
  13.         write ('Saisir P: ');
  14.         readln (p);
  15.     Until (4<=p) and (p<=100);
  16.     rewrite (f);
  17.     Randomize;
  18.     for i:=1 to p Do
  19.             writeln (f,random(1000)+1);
  20.     close (f);
  21. end;
  22. procedure tri (var t:tab;n:integer);
  23. Var
  24. aux,i:integer;
  25. Begin
  26.     Repeat
  27.         for i:=1 to n-1 Do
  28.             if t[i]<t[i+1] Then
  29.                 Begin
  30.                     aux:=t[i];
  31.                     t[i]:=t[i+1];
  32.                     t[i+1]:=aux;
  33.                 end;
  34.         n:=n-1;
  35.     Until (n=0);
  36. end;
  37. function suite (n:integer):string;
  38. Var
  39.     ch,ch1:string;
  40.     i:integer;
  41. Begin
  42.     ch:='';
  43.     i:=0;
  44.     Repeat
  45.         i:=i+1;
  46.         if (n mod 2=0) Then
  47.                 n:=n div 2
  48.         Else
  49.             n:=3*n+1;
  50.         str (n,ch1);
  51.         ch:=ch+' '+ch1;
  52.     Until (n=1);
  53.     str (i,ch1);
  54.     suite:=ch1+' '+copy(ch,2,Length(ch)-1);
  55. end;
  56. procedure traitement (var f1,f2:text);
  57. Var
  58. i,n:integer;
  59. t:tab;
  60. Begin
  61.     reset (f1);
  62.     while not (eof(f1)) Do
  63.         Begin
  64.             n:=n+1;
  65.             readln (f1,t[n]);
  66.         end;
  67.     close (f1);
  68.     tri (t,n);
  69.     rewrite (f2);
  70.     for i:=1 to n Do
  71.         writeln (f2,t[i],': ',copy(suite(t[i]),pos(' ',suite(t[i]))+1,Length(suite(t[i]))-pos(' ',suite(t[i]))),'=',copy(suite(t[i]),1,pos(' ',suite(t[i]))-1));
  72.     close (f2);
  73. end;
  74. procedure affiche (var f:text);
  75. Var
  76. ch:string;
  77. Begin
  78.     reset (f);
  79.     while not (eof(f)) Do
  80.         Begin
  81.             readln (f,ch);
  82.             writeln (ch);
  83.         end;
  84.     close (f);
  85. end;
  86. Begin
  87.     assign (f1,'c:\bac\ftimit.txt');
  88.     assign (f2,'c:\bac\fsuite.txt');
  89.     remplir (f1);
  90.     traitement (f1,f2);
  91.     affiche (f2);
  92. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement