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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

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 : Pour poursuivre votre exploration, vous pouvez :

Author: Jean-Michel Ferrard

Professeur de mathématiques en classe préparatoire aux grandes écoles.