La fonction Escalier est assez générale. Elle donne y = E(x) où E est une courbe en escalier. Elle est pratique d'utilisation. Elle utilise le fait que FoxPro permet de ne pas passer tous les arguments à une fonction. Je l'ai utilisé de manière intensive dans une application de calcul de remise commerciale.
Le premier paramètre de la fonction est x, les paramètres suivants définissent la courbe E. Les paliers de E sont définis aux points xi où E( xi ) = yi , par ailleurs avant x1 la fonction a pour valeur y0. Les paramètres de la fonction sont donc ( x, y0, x1, y1, x2, y2, ..., xn, yn ). Il doit donc y avoir un nombre pair d'arguments. Dans la pratique on se limite à 20 (9 paliers). Il faut bien sur que la suite des xi soit croissante.
*/----------------------------------------------------------------------------- function Escalier */-----------------------------------------------------------------------------
lparam ;
tnX , tnY0 ,; && si tnX < tnX1 Escalier rend tnY0
tnX1, tnY1, ; && à partir de tnX1 Escalier rend tnY1
tnX2, tnY2, ; && à partir de tnX2 Escalier rend tnY2
tnX3, tnY3, ; && ... et ainsi de suite
tnX4, tnY4, ; && Il faut que tnX1 < tnX2 < .. < tnX9
tnX5, tnY5, ; && on n'est pas obliger de mettre tous les paramètres
tnX6, tnY6, ; && Il faut quand même q'il y en ait un nombre paire
tnX7, tnY7, ; && et pas plus de 20
tnX8, tnY8, ;
tnX9, tnY9