Une solution pour l'exercice 3 du TP3 d'informatique
en MIAS+MASS S1
Question 1
PROGRAM SuiteEtrange1 ;
VAR n : integer ;
BEGIN
write('entier ? ') ; readln(n) ;
while (n>1) do
begin
if ((n mod 2)=0)
then n:=(n div 2)
else n:=(3*n+1) ;
write(n:8) ;
end ;
writeln(' OK.') ;
END.
Question 2
Première solution avec un FOR
PROGRAM SuiteEtrange2 ;
VAR n, Un : integer ;
BEGIN
for n:=1 to 50 do
begin
writeln('POUR n=',n,' :') ;
Un:=n ;
while (Un>=n) do
begin
if ((Un mod 2)=0)
then Un:=(Un div 2)
else Un:=(3*Un+1) ;
write(Un:8) ;
end ;
writeln(' OK') ;
end ;
END.
Deuxième solution sans FOR
PROGRAM SuiteEtrange2 ;
VAR n, Un : integer ;
BEGIN
n:=1 ;
repeat
writeln('POUR n=',n,' :') ;
Un:=n ;
while (Un>=n) do
begin
if ((Un mod 2)=0)
then Un:=(Un div 2)
else Un:=(3*Un+1) ;
write(Un:8) ;
end ;
writeln(' OK') ;
n:=n+1 ;
until n>50 ;
END.