VDH-Bruno Posté(e) le 8 octobre 2010 Posté(e) le 8 octobre 2010 Bonsoir, A la lecture de ce sujet, et en faisant un parallèle avec le code donné pour la fonction *error*. Ai je bien tout compris, si j’écris : Etape 1 (defun c:cube (/ n) (if (setq n (getreal "\nSaisissez un nombre: ")) (princ (strcat (rtos (* n (sqr1 n))) " est son cube!") ) ) (princ) ) (defun sqr1 (nbr) (* nbr nbr))La fonction sqr1 existe en dehors de la commande cube (un peu comme une variable globale), Teste 1 : _$ (type sqr1)USUBRAu risque d’écraser une fonction de même nom, mais ayant une autre fonction pour un autre programme. Etape 2Le fait de l’inclure dans le même bloc de parenthèse ne changeant rien à l’affaire, (defun c:cube (/ n) (defun sqr2 (nbr) (* nbr nbr)) (if (setq n (getreal "\nSaisissez un nombre: ")) (princ (strcat (rtos (* n (sqr2 n))) " est son cube!!") ) ) (princ) ) Teste 2 : $ (type sqr2)USUBR Etape 3Pour éviter cela je dois la déclarer dans ma fonction principal (au même titre que mes variables) pour ne lui octroyer qu’une existance local. (defun c:cube (/ n sqr3) (defun sqr3 (nbr) (* nbr nbr)) (if (setq n (getreal "\nSaisissez un nombre: ")) (princ (strcat (rtos (* n (sqr3 n))) " est son cube!!!") ) ) (princ) ) Teste 3 : _$ (type sqr3)nil Etape 4Et dans l’hypothèse ou je voudrais en faire une fonction réutilisable (à inclure dans une bibliothèque de fonctions) il serait préférable de la préfixer avec mes initiales un peu comme les fonctions vl-xxx (defun bv-sqr (nbr) (* nbr nbr))Au cas ou d’autre n’aurais pas eu la même délicatesse dans l’écriture de leurs programmes.. Bon, je pense avoir bien saisie le principe, en attente d’une confirmation ou complément..Cordialement (Ps : Je ne vois pas bien la différence d’intérêt entre l’écriture 1 & 2, que je retrouve dans beaucoup de programme) [Edité le 8/10/2010 par VDH-Bruno] Apprendre => Prendre => Rendre
(gile) Posté(e) le 9 octobre 2010 Posté(e) le 9 octobre 2010 Salut, Tu as très bien compris. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 9 octobre 2010 Posté(e) le 9 octobre 2010 Ps : Je ne vois pas bien la différence d’intérêt entre l’écriture 1 & 2, que je retrouve dans beaucoup de programme Peut-être tout simplement est-il parfois utile de "se la" déclarer comme dans le 2 pour être certain de bien placer le chargement.Si tu te crées une application, tu te doutes bien que les fonctions chargées le sont dans un ordre correponsant à l'orde des déclarations. Ainsi en déclarant une sous-fonction au début de la fonction principale l'utilisant on sait où elle est. On sait qu'elle sera chargée d'abord. Franchement, c'est vraiment une question d'organisation.Ca m'arrive souvent de les mettre là. Et si jamais je constate que l'utilisation est unique, hop, j'enferme en déclarant la fonction en locale. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
VDH-Bruno Posté(e) le 11 octobre 2010 Auteur Posté(e) le 11 octobre 2010 Merci, à tous les deux pour votre retour.Cordialement, Apprendre => Prendre => Rendre
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant