OCaml. Exercices sur les listes (3/3)

Exercice 21.
Écrire une fonction « del_list : int -> ‘a list -> ‘a list » qui supprime le {n}-ième élément d’une liste.
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 22.
Écrire la fonction « occurrences : (‘a -> bool) -> ‘a list -> ‘a list » renvoyant la liste (éventuellement vide) des éléments satisfaisant à un prédicat dans une liste.
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 23.
Écrire une fonction « ins_list : int -> ‘a -> ‘a list » qui supprime un élément en position donnée dans une liste.
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 24.
Écrire une fonction « reduc_list : ‘a list -> ‘a list » qui réduit à un seul exemplaire les cas éventuels d’éléments consécutifs égaux dans une liste.
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 25.
Écrire « minlists : ’a list -> ’a list -> ’a list » renvoyant la liste des minimums terme à terme.
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 26.
Écrire une fonction « reps : ‘a -> ‘a list -> int » qui renvoie le nombre de fois que son premier argument apparaît en tête de la liste passée en deuxième argument.
Par exemple, « reps 5 [5; 5; 5; 1; 5; 2; 4; 5] » doit renvoyer la valeur 3.
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 27.
Écrire « compte_suppr : ‘a -> ‘a list -> int » telle que « compte_suppr a {\ell} » renvoie le couple {(n,\ell')}, où :

  • L’entier {n} est le nombre de fois où {a} apparaît en tête de la liste {\ell}.
  • {\ell'} est ce qui reste de {\ell} quand on a supprimé les occurences correspondantes de {a}

Par exemple, « compte_suppr 5 [5; 5; 5; 1; 5; 2; 4; 5] » doit renvoyer « (3, [1; 5; 2; 4; 5]) ».

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 28.
Écrire une fonction « flatten : ‘a list list -> ‘a list » aplatissant une liste de listes.
Par exemple, « flatten [[3; 4]; [5;7;9]; [0]; [6;8]] » doit renvoyer « [3; 4; 5; 7; 9; 0; 6; 8] ».
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 29.
Écrire une fonction « lfactors : int -> int list » renvoyant la liste des facteurs premiers d’un entier positif {n} (chaque facteur étant éventuellement répété autant que nécessaire).
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 30.
Écrire une fonction « listplateau : ‘a list -> int * int * ‘a » identifiant le plus long plateau formé d’éléments consécutifs identiques dans une liste quelconque (donc pas forcément triée!).
Le résultat est le triple {(d,l,x)} formé par la position {d} du début du plateau, par sa longueur {l} et par la valeur {x} de l’élément ainsi répété.
Par exemple :

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.