Aller au contenu

exercice fonction recursive


Messages recommandés

Posté(e)

Bonjour,

J'essaie d'imprimer chaque presentation d'un dessin (je sais il existe publier mais je veux faire des PLT et ça me fait faire des exos.

Je suis partis sur un truc comme ça:

(setq nom (layoutlist))

(defun c:print (/nom)

(command "_-plot" "N" "PRESENTATION" "ANR 510 SERIES.pc3" "O" nom "N" "O"))

(defun print-pres (print)

(if(null (nom))

(command)

(print (cons (car nom) (print-pres (cdr nom))))

)

Mais je sens bien que ça va pas mais je suis perdu

Si quelqu'un a une petite piste

Merci

Posté(e)

(setq nom (layoutlist)) donne une liste.

Donc, je te conseille de te pencher sur la syntaxe :

 

(foreach p (layoutlist)
.... du code
(command "_-plot" "N" "PRESENTATION" "ANR 510 SERIES.pc3" "O" p "N" "O"))
.... du code
)

 

En clair, tu dois boucler sur ta liste, p est une variable automatiquement appliquée à chacun des éléments de la liste obtenue. Tu as vu ? J'ai remplacé nom par la lettre p.

 

Pas besoin de tous les defun, pour l'instant.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)
  Le 18/10/2013 à 10:41, Tramber a dit :

(setq nom (layoutlist)) donne une liste.

Donc, je te conseille de te pencher sur la syntaxe :

 

(foreach p (layoutlist)
.... du code
(command "_-plot" "N" "PRESENTATION" "ANR 510 SERIES.pc3" "O" p "N" "O"))
.... du code
)

 

En clair, tu dois boucler sur ta liste, p est une variable automatiquement appliquée à chacun des éléments de la liste obtenue. Tu as vu ? J'ai remplacé nom par la lettre p.

 

Pas besoin de tous les defun, pour l'instant.

 

Ah foreach...

je vais continuer, ça m'enlève une bonne épine du pied

Merci bcp

Posté(e)
  Le 18/10/2013 à 13:03, Infinicad a dit :

Ah foreach...

je vais continuer, ça m'enlève une bonne épine du pied

Merci bcp

 

Bonjour,

Suite de l'aventure (parce que s'en est une .....)

voilà ce que j'ai ecrit:

 

(foreach p (layoutlist))

(setq nb-pres (length p))

;; decrémente le nb de présentation

 

(defun defil-pres (nb-pres)

(if (= 0 nb-pres)

(0)

(- 1 (defil-pres (- nb-pres 1)))

)

)

;;imprime chaque présentations

 

(defun c:print (p defil-pres)

(while (< defil-pres 0 )

(command "_-plot" "N" "PRESENTATION" "ANR 510 SERIES.pc3" "O" p "N" "O")

(command)

)

)

Mes questions:

J'ai une erreur : "nombre d'arguments insuffisants"

et ma boucle est elle correct pour imprimer chaque présentation?

 

Merci pour votre aide

 

Re

Du coup j'ai trouvé!

: (defun c:print (/ p nom)

(setq nom (layoutlist))

(foreach p nom

(command "_-plot" "N" p "" "ANR 510 SERIES.pc3" "O" "" "N" "O"))

)

C'est tout bête mais ça marche.

Simplement si quelqu'un peux me dire si la recursivité que j'ai utilisé au début fonctionne ou est completement ratée, ça peut m'aider...

Merci

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité