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 :
Cela se compile sans problème.
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;
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 :
Est-ce c'est possible ? Si oui, comment faire ou avez-vous des liens expliquant cela ?
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;
Merci de votre aide.
Pierre
Partager