Algorithmique & Programmation
Semestre 2 ST

Tableaux de variables
Cours TD - Corrections TP

Exercice n°1: Tableaux "simples"

a) On considère l'existence d'un tableau de réels. Ecrire un algorithme permettant de parcourir ce tableau pour afficher les valeurs qu'il contient qui sont comprises entre une borne minimale et une borne maximale (bornes incluses).

Exemple d'exécution

b) On considère l'existence d'un tableau de réels. Ecrire un algorithme permettant de calculer et d'afficher la moyenne des valeurs contenues dans ce tableau.

Exemple d'exécution

c) On considère l'existence d'un tableau de réels. Ecrire un algorithme permettant de déterminer et d'afficher le nombre de valeurs présentes dans ce tableau qui sont inférieures ou égales à une valeur limite.

Exemple d'exécution

d) On considère l'existence d'un tableau de réels. Les valeurs qu'il contient sont comprises dans l'intervalle [0.0, 20.0[. Ecrire un algorithme permettant de calculer et d'afficher les nombres de valeurs de ce tableau comprises dans les intervalles [0.0,1.0[, [1.0, 2.0[, [2.0, 3.0[, ..., [19.0, 20.0[ (classification).

Exemple d'exécution

Exercice n°2: Tableaux en sous-algorithmes

a) Reprendre les questions (c) et (d) de l'exercice n°1 en les implantant avec utilisation de sous-algorithmes.

Exemple d'exécution question (c) - Exemple d'exécution question (d)

b) Ecrire un sous-algorithme de recherche de l'indice de la valeur minimale contenue dans un tableau d'entiers.

Exemple d'exécution

c) Ecrire un sous-algorithme de fusion de deux tableaux d'entiers triés en un seul nouveau tableau d'entiers trié.

Exemple d'exécution

Exercice n°3: Tableaux de variables de type agrégé

a) On considère le type agrégé sommet3D constitué des 3 champs x, y et z réels représentant une position dans un espace 3D. On considère un tableau de N sommet3D (N est une constante).
Développer un sous-algorithme de calcul du barycentre d'un nuage de points stocké dans un tel tableau.

Exemple d'exécution

b) On considère le type agrégé sommet2D constitué des 2 champs x et y réels représentant l'abscisse et l'ordonnée d'une position du plan. On considère un tableau de n sommet2D.
  1) Développer un sous-algorithme de création d'un tableau de sommet2D initialisé avec les positions des n sommets d'un polygone régulier de rayon r.
  2) Développer un sous-algorithme de calcul de la longueur d'une ligne polygonale non fermée stockée dans un tel tableau.
  3) Développer un sous-algorithme de calcul de la longueur d'une boucle polygonale (fermée) stockée dans un tel tableau.

Exemple d'exécution

Exercice n°4: Type agrégé avec tableau

 a) On souhaite calculer le coefficient de corrélation linéaire défini entre deux séries de N=15 données réelles.
  1) Définir un type agrégé permettant de stocker ces deux séries de données en une seule variable.
  2) Implanter un sous-algorithme permettant de calculer le coefficient de corrélation linéaire existant entre les deux séries de données stockées au sein d'une variable du type agrégé de la question (1). On utilisera la formule de calcul suivante définie pour les séries x et y numérotée de 1 à N (wikipedia):

Exemple d'exécution

b) On souhaite implanter une "structure de données" permettant de stocker un ensemble de chaînes de caractères pour un maximum de 20 chaînes de caractères.
  1) Définir un type agrégé permettant de stocker un tel ensemble (initialisé à l'ensemble vide).
  2) Implanter un sous-algorithme permettant d'afficher les chaînes de caractères présentes dans un ensemble de chaînes de caractères.
  3) Implanter un sous-algorithme permettant d'ajouter une chaîne de caractères à un ensemble de chaînes de caractères (l'ajout d'une chaîne existant déjà est autorisé).
  4) Implanter un sous-algorithme permettant de tester si une chaîne de caractères appartient à un ensemble de chaînes de caractères.
  5) Implanter un sous-algorithme permettant de fusionner 2 ensembles de chaînes de caractères en un nouvel ensemble de chaînes de caractères.
  6) Implanter un sous-algorithme permettant de retirer une chaîne de caractères d'un ensemble de chaînes de caractères.
  7) Implanter un sous-algorithme permettant de tester si un ensemble de chaînes de caractères est vide.

Exemple d'exécution