Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program bac2015;
- Uses Wincrt;
- Type
- suite = Record
- dep,nb: Integer;
- End;
- tab = Array [1..30] Of suite;
- Var
- f: Text;
- p: Integer;
- t: tab;
- Procedure creation (Var f:Text);
- Begin
- Assign (f,'c:\bac\depart.txt');
- End;
- Procedure remplir (Var f:Text;Var p:Integer);
- Var
- i,n: Integer;
- Begin
- Rewrite (f);
- Repeat
- Write ('Saisir le nombre de termes: ');
- Readln (p);
- Until (p>=2) And (p<=30);
- For i:=1 To p Do
- Begin
- Repeat
- Write ('Saisir un termes: ');
- Readln (n);
- Until (2<n) And (n<1000);
- Writeln (f,n);
- End;
- Close (f);
- End;
- Function min (t:tab;p:Integer): Integer;
- Var i,x:integer;
- Begin
- x:=t[1].nb;
- for i:=1 to p Do
- with t[i] Do
- if x>nb then x:=nb;
- min:=x;
- End;
- Function convergence (x:Integer): Integer;
- Var
- i: Integer;
- Begin
- i := 0;
- Repeat
- If (x Mod 2=0) Then x := (x Div 2)
- Else x := 3*x+1;
- i := i+1;
- Until (x=1);
- convergence := i;
- End;
- Procedure traitement (Var f:Text;Var t:tab;p:Integer);
- Var
- i,x,e: Integer;
- ch: String;
- Begin
- Reset (f);
- For i:=1 To p Do
- With t[i] Do
- Begin
- Readln (f,ch);
- Val (ch,x,e);
- dep := x;
- nb := convergence(x);
- End;
- Close (f);
- End;
- Procedure affiche (t:tab;p:Integer);
- Var
- i,x: Integer;
- Begin
- x:=min (t,p);
- clrscr;
- writeln ('Valeur minimum: ');
- For i:=1 To p Do
- With t[i] Do
- if x=nb then
- Writeln (i,') ','Depart: ',dep,' / nb: ',nb);
- End;
- Begin
- creation (f);
- remplir (f,p);
- traitement(f,t,p);
- affiche(t,p);
- End.
Advertisement
Add Comment
Please, Sign In to add comment