Bonjour à toutes et à tous,

Je n'ai jamais joué avec cela et je n'arrive pas à trouver de documentation pertinente à ce sujet.

Je sais qu'en Pascal, on peut définir des variables non typées. Si par exemple, je déclare :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
procedure Echange(a, b: Integer; var S, T {pas de type});
begin
end;
Cela se compile sans problème.

Mais dès que j'essaie d'établir dans la procédure "Echange" une relation entre ces diverses variables, du genre S:= T; je me fait jeter avec une message du genre :

Error: Assignments to formal parameters and open arrays are not possible

Alors, comment faire, que faire de ces variables non typées ?

Pour aller plus loin, mon but est d'avoir une procédure "générique" de tri rapide dans laquelle la variable à trier peut avoir des types différents. Voilà ce que cela donnerait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure Echange(Lo, Hi: Integer; var ALo, AHi);
begin
  {Extraction dans les variables ALo et AHi de la partie sur laquelle peut se faire un tri}
  {Opération d'échange du genre échange de valeur et action sur les indices Lo et Hi}
end;
 
procedure QuickSort(var A {c'est un tableau non typé}; iLo, iHi: Integer);
var
  Lo, Hi, Mid, T: Integer;
begin
  Lo := iLo;
  Hi := iHi;
  Mid := A[(Lo + Hi) div 2];
  repeat
    while A[Lo] < Mid do Inc(Lo);
    while A[Hi] > Mid do Dec(Hi);
    if Lo <= Hi then
      Echange(Lo, Hi, A[Lo], A[Hi]);
  until Lo > Hi;
  if Hi > iLo then QuickSort(A, iLo, Hi);
  if Lo < iHi then QuickSort(A, Lo, iHi);
end;
Est-ce c'est possible ? Si oui, comment faire ou avez-vous des liens expliquant cela ?

Merci de votre aide.

Pierre