Exercice 11.
Écrire une fonction « tpascal : int -> int array array » renvoyant le triangle de Pascal (pour les lignes de {0} à {n}) sous la forme d’un tableau de tableaux d’entiers.
Exercice 12.
Écrire les fonctions « lshift : ‘a array -> ‘a array » et « rshift : ‘a array -> ‘a array » effectuant un décalage d’une position vers la gauche (resp. vers la droite) dans un tableau (l’élément sortant faisant sa rentrée du coté opposé).
Exercice 13.
Écrire une fonction « rotv : ‘a array -> int -> ‘a array » effectuant une rotation de {|p|} positions (vers la gauche si {p>0} et vers la droite si {p\lt 0}) dans un tableau {v}.
Exercice 16.
Écrire une fonction « find2 : ‘a -> ‘a array -> bool » qui teste si un élément est dans un tableau supposé déjà trié dans l’ordre croissant.
Exercice 17.
Écrire une fonction « tritri : int array -> int array » triant un tableau {v} de longueur {n} sachant que les éléments de {v} sont {0,1,\ldots,n-1}.
Exercice 18.
Écrire une fonction « vpalin : ‘a array -> bool » qui teste si un tableau est « palindromique », c’est-à-dire s’il se lit à l’identique de gauche à droite et de droite à gauche (un tableau vide ou réduit à un seul élément est considéré comme palindromique).
Exercice 19.
Écrire une fonction « plateau : ‘a array -> int * int » identifiant le plus long plateau formé d’éléments consécutifs identiques dans un tableau qu’on suppose trié. Le résultat est le couple formé par la position du début du plateau et par la longueur de celui-ci.
Exercice 20.
Écrire une fonction « platoon : ‘a array -> int * int » identifiant le plus long plateau formé d’éléments consécutifs identiques dans un tableau quelconque (donc pas forcément trié!). Le résultat est le couple formé par la position du début du plateau et par la longueur de celui-ci.