Utilisation de variables non typées
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:
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:
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