Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program suite_min ;
- Uses Wincrt ;
- Type
- suite = Record
- dep: String;
- nb: Integer ;
- End;
- tab = Array [1..30] Of suite;
- Var
- f: Text;
- x,p: Integer ;
- t: tab;
- Procedure creation(Var f:Text);
- Begin
- Assign(f,'c:\bac\depart.txt');
- End;
- Function calcul(Var ch:String): Integer;
- Var
- r,x,e: Integer ;
- Begin
- Val (ch,x,e);
- r := 0;
- Repeat
- If (x Mod 2=0) Then x := x Div 2
- Else x := 3*x+1 ;
- r := r+1;
- Until x=1 ;
- calcul := r ;
- End;
- Procedure saisie(Var f:Text ; Var x:Integer ;Var p:Integer);
- Var
- i: Integer ;
- Begin
- Rewrite(f);
- Repeat
- Writeln('Le nombre de terme');
- Readln(p);
- Until (p>=1) And (p<=30) ;
- For i:=1 To p Do
- Begin
- Repeat
- //le programme affichait toujours "saisir le terme U[0]:" même si tu travaillais sur d'autre terme
- Writeln('saisir le terme U[',i,']: ');
- Readln(x);
- Until (x>2) And (x<1000);
- Writeln(f,x);
- End;
- Close(f);
- End;
- Procedure remplir(Var t:tab ; Var f:Text;p:Integer);
- Var
- j,m,x,e: Integer ;
- ch: String;
- Begin
- Reset(f);
- //il y'a un probleme si je mets le type de t[j].dep en entier tout le tableau recevera 1 donc je l'ai converti en chaine :)
- //C la solution la plus simple que j'ai trouvé pour remplir le tableau il faut juste vérifier l'énoncé ken kalek lezem dep ykoun entier
- //J'ai remplacé la boucle while par la boucle for c mieux khater bel while lezem thot with t[j+1] mouch t[j] sinon bich yfalet valeur
- For j:=1 To p Do
- Begin
- Readln(f,t[j].dep);
- t[j].nb := calcul(t[j].dep);
- End;
- Close(f);
- End;
- Procedure affiche(t:tab;p:Integer);
- Var
- min,j: Integer ;
- Begin
- //tu aurais dû faire cette partie dans une fonction bich todkholch baadhek
- min := t[1].nb;
- For j:=1 To p Do
- Begin
- If t[j].nb<=min Then
- Begin
- min := t[j].nb;
- End;
- End;
- //J'ai modifier ta solution avec la variable "rank" parce qu'elle n'etait pas fonctionelle
- For j:=1 To p Do
- If t[j].nb=min Then Writeln ('Le terme : ',t[j].dep,' Le nb: ',t[j].nb);
- End;
- Begin
- creation(f);
- saisie(f,x,p);
- remplir(t,f,p) ;
- affiche (t,p);
- End.
Advertisement
Add Comment
Please, Sign In to add comment