Ocaml. Exercices sur les tableaux (1/2)

Exercice 1.
Écrire une fonction « makeseq : int -> int array » formant le tableau [|1;2;3;…;n|].
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 2.
Écrire une fonction « randperm : int -> int array » renvoyant une permutation aléatoire de {1,\ldots,n}.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 3.
Écrire une fonction « subarray : ‘a array -> int -> int -> ‘a array » renvoyant le sous-tableau formé des éléments dont les positions sont comprises (au sens large) entre les valeurs spécifiées.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 4.
Écrire une fonction « revv : ‘a array -> ‘a array » qui inverse l’ordre des éléments d’un tableau.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 5.
Prévoir puis justifier le résultat des instructions suivantes :

Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 6.
Écrire une fonction « maxi : ‘a array -> ‘a » renvoyant le plus grand élément d’un tableau.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 7.
Écrire une fonction « vfibo : int -> int array » renvoyant le tableau {[|F_0;F_1;\ldots;F_n|]}, des {n} premiers termes de la suite de Fibonacci (avec {F_0=F_1=1} et {F_n=F_{n-1}+F_{n-2}} pour {n\ge 2}).
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 8.
Écrire une fonction « rand_in_array : ‘a array -> ‘a » renvoyant un élément pris au hasard dans un tableau.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 9.
Écrire une fonction « mapv » qui applique une fonction f à tous les éléments d’un tableau v.
La fonction « mapv » devra être aussi générale que possible.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 10.
Écrire une fonction « mapopv : (‘a -> ‘b -> ‘a) -> ‘a -> ‘b array -> ‘a » itérant un même opérateur binaire (préfixe) {T} à tous les éléments d’un tableau {v}, avec une valeur initiale {a}.
Ainsi « mapopv T a {[|v_{0};v_{1};v_{2}|]} renvoie {T(T(T(a,v_{0}),v_{1}),v_{2})}.
En déduire les fonctions « sumv : int array -> int » et « prodv : int array -> int » calculant respectivement la somme et le produit des élémentes d’un tableau d’entiers.
Imaginer d’autres applications de la fonction « mapopv ».
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Author: Jean-Michel Ferrard

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