Exercice/programme sur les boucles et booléens
Bonjour,
j'ai un programme T.P. auquel je ne comprend strictement rien.
Doux seigneurs, et gentes dames, au secours!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Program;
var T: array[1..20001] of integer;
U,S,i,n: Integer;
coincide: boolean;
begin
randomize;
for i:=1 to 20001 do T[i]:=1+random(2000);
end;
i:=1; coincide:=False;
Repeat
i:=i+1.
S:=0;
While (S<i-1) and NOT coincide DO
begin
S:=S+1;
If T[S]=[i] then coincide:= true;
end;
until coincide:=true;
U:=i;
for n:=1 to i do writeln(T[n],',');
writeln('U=',U); writeln('S=',S);
end. |
Les questions demandées sont:
1- Que fait la première boucle fort?
2-Que sont U et S à la fin du programme?
3-Pourquoi est-il certain que le nombre de passage dans la boucle repeat...until est fini?