Cinquième cours

7. Passage de paramètres (1 heure)

7.1 Raison d'être

7.2 Passage par valeurs, par variables

7.3 "Adresse" d'une case

8. Rappels (1/2 heure)

8.1 Déclaration -- Instruction

8.2 Instruction -- Expression

8.3 Mots clés


Cinquièmes travaux pratiques

TP5. Conception de procédures

TP5.1 Tri de deux variables entières, avec échange si nécessaire

PROCEDURE TrieDeux(VAR x, y ; INTEGER);
VAR Temp : INTEGER;
BEGIN
  IF x > y THEN
  BEGIN
    Temp := x;
    x := y;
    y := Temp;
  END
END;

TP5.2 Fonction Max d'un tableau entier

NB: le nombre d'éléments du tableau doit être une constante N.

CONST N = 100;
FUNCTION MaxTableau(Tab : ARRAY[1..N] OF INTEGER) : INTEGER;
VAR Indice : 1..N;
    Maxi : INTEGER;
BEGIN
  Maxi := Tab[1];
  FOR Indice := 2 TO N DO
    IF Tab[Indice] > Maxi THEN
      Maxi := Tab[Indice];
  MaxTableau := Maxi;
END;

TP5.3 Tableau des différences

On a des entiers x[i] dans un tableau numéroté de 0 à N-1. Faire une procédure qui remplace x[i] par x[i]-x[i+1], sachant que x[N-1] est remplacé par x[N-1]-x[0].

Par exemple, [1 4 6 -3 5 2] devient [-3 -2 9 -8 3 1].

PROCEDURE Difference(VAR x : ARRAY[0..N-1] OF INTEGER);
VAR i : 0..N-1;
   x0 : INTEGER;
BEGIN
  x0 := x[0];
  FOR i := 0 TO N-2 DO
    x[i] := x[i] - x[i+1];
  x[N-1] := x[N-1] - x0;
END;