Ocaml. Exercices sur les tableaux (2/2)

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.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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é).
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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}.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 14.
Écrire une fonction “find : ‘a -> ‘a array -> bool” qui teste si un élément est dans un tableau.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 15.
Essayer de comprendre ce que renvoie le programme suivant, et la signification du tableau obtenu.

Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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}.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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).
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

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.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez :