PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Interpretation d'une fonction Affichechemin du Commun Lisp en Wlangage
Interpretation d'une fonction Affichechemin du Commun Lisp en Wlangage
Iniciado por Derrick2019, 17,abr. 2019 20:44 - No hay respuesta
Miembro registrado
8 mensajes
Publicado el 17,abril 2019 - 20:44
Bonjour tout le monde,
Moi j'ai un problème sur lequel je suis bloqué.
Je voudrai interpréter la procédure suivante du Commun Lisp en Wlangage.
Merci par avance.

La procédure est la suivante:

(de afficheChemin (CE)
(cond ((null CE) ;condition si liste CE (+ court chemin) est null
(print 'fin)) ;imprime fin
(t(setq ST1 (car CE)) ;else attribu le car de CE (atome) a ST1
(setq ST2 (car (cdr CE))) ;et le 2eme element de CE a ST2


;Pour tracer le chemin le
;plus court avec xDrawLines


(setq xx (car (get ST1 'pos))) ;Pour afficher le point rouge
(setq yy (car (cdr (get ST1 'pos))));au moment du tracage [abscisse
;et ordonnee du point
(setq cx (car (get ST1 'CC)))
(setq cy (car (cdr (get ST1 'CC))))
(setq pp (car (get ST1 'pp)))



(xModifyGC fene "line_width" 2) ;epaisseur de la ligne
;de tracage

(couleur "Red")

(xDrawString fene cx cy pp)

(xFillArcs fene xx yy 6 6 0 (* 360 64));affichage de(s) point(s)

(afficheChemin (cdr CE)))));On ferme la afficheChemin
;avec un appel recursif de la fonction.
--------

1.CE : C'est une liste contenant le résultat de recherche du chemin le plus court sous forme de :( B C D A), par exemple
2.La fonction AfficheChemin : Trace sur un graphe le chemin sous forme de points rouge a chaque noeud du graphe.
3. Car: prend le premier élément de la liste
4. Cdr : Prend la liste sans le premier élément
5. (car(cdr L)) : Ramène le deuxième élément de la liste
6. Setq xx : Attribut l'abscisse de ST1 à xx
7. Setq yy : Attribut l'ordonnée de ST1 à yy
8. (xFillArcs fene xx yy 6 6 0 (* 360 64) : Dessine un cercle plein rouge dans la fenêtre fene dont l'abscisse est xx et l'ordonnée est yy, dont l'épaisseure est de six pixels sur six pixels, dessiné de 0° à 360° c'est à dire un cercle plein complet rouge.
9. 64 : Ce n'est qu'une norme nécessaire pour dessiner un cercle.