Une liste de taille 1 est croissante.
Si la taille est de la liste l est s il faut faire attention que
les indices de l vont de 0 à s-1. On compare donc
l[0] et l[1], puis l[j-1] et l[j] donc
on initialise j à 1 et tantque j<s on compare
l[j-1] et l[j] si ils ne sont pas dans le bon ordre on s’arrête
sinon on augmente j de 1.
On écrit :
est_crois(l):={
local j,s;
s:=size(l);
j:=1;
tantque j<s faire
si l[j-1]>l[j] alors return false fsi;
j:=j+1;
ftantque;
return true;
}:;
On tape :
est_crois([1,2,0,4])
On obtient :
faux
On tape :
est_crois([1,2,3,4])
On obtient :
vrai
Exercice
Écrire un programme qui renvoie :
0 si la liste n’est pas moontone
1 si la liste est croissante
2 si la liste est décroissante
3 si la liste est constante.