PROTO INT plusgrandstrict(n,m) PROTO VOID naivesort(t[], index) // Ce programme lit un tableau de 10 entiers et imprime // le tableau trie. Illustre le passage de tableaux en parametres //=============================================================== FUNC VOID main() { INT a[10], i, j i := 0 WHILE 10-i DO { PRINT "\n Entrer le ",i,"eme: " READ j a[i] := j i := i+1 } DONE naivesort(a,9) i := 0 WHILE 10-i DO { PRINT "\n t[",i,"] = ",a[i] i:= i+1 } DONE } // Tri naif: cherche le +grand elem du tableau et le met // a la fin. Recommence avec le sous tableau terminant a index-1 //============================================================== FUNC VOID naivesort(t[], index ) { INT max , maxpos, i IF index THEN // il y a au moins deux elements { max := t[index] i:= index maxpos := index WHILE i+1 DO { IF plusgrandstrict(t[i], max) THEN { max := t[i] maxpos := i } FI i := i-1 } DONE t[maxpos] := t[index] t[index] := max naivesort(t,index-1) } FI } // fonction de comparaison entre entiers //====================================== FUNC INT plusgrandstrict(n,m ) { INT continue, nn, mm continue := n*m nn := n mm := m WHILE continue DO { mm := mm-1 nn := nn-1 continue := nn*mm } DONE IF nn THEN RETURN 1 ELSE RETURN 0 FI }