TD-Prog Tableaux

Préambule

Nous allons travailler avec des tableaux d'entiers de type Integer.

Commencer par définir la constante nMax et le type Tablo ci-dessous.

const nMax=1000; 
type Tablo = array[1..nMax] of Integer;

Affichage et entrée

  1. Ecrire une procédure afficher(T:Tablo; n:Integer) qui affiche à l'écran les "n" premiers éléments du tableau T. (soigner la présentation à l'écran en affichant les entiers sur 8 caractères)
  2. Ecrire une procédure lire(var T:Tablo; var n:Integer) qui permet à l'utilisateur d'entrer le nombre n d'éléments ainsi que les éléments de T.
  3. Ecrire une procédure hasard(var T:Tablo; var n:Integer) qui permet à l'utilisateur d'entrer le nombre n d'éléments de T et qui remplit le tableau aléatoirement avec des entiers inférieurs à 100. (utiliser randomize et random)
  4. Vérification. Ecrire un programme permettant de créer un tableau et de l'afficher.

Recherche d'un élément dans un tableau

  1. Ecrire la fonction nb(x:Integer; T:Tablo; n:Integer):Integer qui indique combien de fois x apparait parmi les "n" premiers éléments du tableau T .
  2. Ecrire la fonction rang(x:Integer; T:Tablo; n:Integer):Integer qui cherche la première occurence de x parmi les "n" premiers éléments du tableau T et renvoie son indice en cas de succès ou 0 en cas d'échec.
  3. Vérification. Ecrire un programme utilisant les fonctions nb et rang.

Recherche du maximum. Premier tri

  1. Ecrire la fonction rangmax(T:Tablo; n:Integer):Integer qui renvoie l'indice du plus grand des "n" premiers éléments du tableau T.
  2. Ecrire la procédure change(var T:Tablo; i,j:Integer) qui échange les éléments d'indices i et j du tableau T.
  3. Pour trier les "n" premiers éléments du tableau T on recherche son plus grand élément T[k], on échange T[k] et T[n] et il ne reste plus qu'à trier les n-1 éléments restants. Ecrire la procédure tri(var T:tablo; n:Integer) faisant ce tri.
  4. Vérifier le tri sur des tableaux de tailles diverses.


Correction
Retour