Program S2;
Type
tab = array [1..20] Of integer;
Var
t : tab;
n : integer;
//****************************************************
Procedure remplir(Var t : tab ; Var n : integer);
Var
v : longint;
e, i : integer;
Begin
Repeat
Write('Donner le nombre d''éléments [5..20] : ');
Readln(n);
Until (n >= 5) And (n <= 20);
For i:=1 To n Do
Begin
Writeln('Valeur n°', i);
Repeat
Write('Entier positif : ');
Readln(t[i]);
Until (t[i] > 0);
End;
End;
//****************************************************
Function derangement(t : tab ; n : integer) : boolean;
Var
i, j, p : integer;
der : boolean;
Begin
der := true;
i := 1;
While (der) And (i <= n) Do
Begin
j := 1;
p := 0;
While (p = 0) And (j <= n) Do
Begin
If (t[j] = i) Then
p := j
Else j := j + 1;
End;
der := (p <> 0) And (p <> i);
i := i + 1;
End;
derangement := der;
End;
//****************************************************
Begin
Remplir(t, n);
If derangement(t, n) Then
Writeln('t est un dérangement')
Else
Writeln('t n''est pas un dérangement');
End.
Inscription à :
Publier les commentaires (Atom)