CHRONOS et LIP


(-; Vous avez lu les conventions ? Il vaudrait mieux !... ;-)


Pour la partie Chronos de ce chapitre, il faudrait avoir à sa disposition d'anciennes versions de Logo : celle de LCSI pour Apple, celle d'ACT Informatique pour Goupil PC. Avec celles-ci, il était possible de réaliser les aiguilles tour à tour visibles et invisibles qui, en plus, "tournaient", et dont il ne demeurait aucune trace intempestive. Et ce, de manière "naturelle" (ce qui est un des atout de la pédagogie Logo). Avec le Logo de Profil, c'est une autre histoire et je veux bien que vous me la racontiez ... Moi, ci-dessous, j'ai choisis une "astuce" disons, désespérée ...
En ce qui concerne la version de JFL ; disons que Windows ne permet pas ce genre de choses ...
Et alors, on passera directement à la partie LIP ...

Le temps qui passe :

POUR CADRAN ;;avec minutes et 1/4 d'heures
REPETE 60 [LC AV 90 BC AV 4 LC RE 94 TD 6 BC]
REPETE 4 [LC AV 92 BC AV 8 LC RE 100 TD 90 BC]
FIN

POUR AIG ;;la trotteuse
SI EGAL? :X 59 [FCC 0 POINT] ;;mais quelles sont les 2 couleurs retenues
;;sachant que je travail toujours sur fond noir ?
SI EGAL? :X 60 [DONNE "X 0 FCC 1 POINT TD 6]
SI EGAL? :Y 3600 [RECYCLE DONNE "Y 0 DONNE "E :E + 1 POINT2 :E]
FCC 1 AV 80 ATTENDS 220 FCC 0 RE 80 FCC 1 TD 6 CPT CPTB ATTENDS 220
;;vérifier la valeur des ATTENDS. Vu celle choisie ici, la valeur des AV et l'utilisation de RECYCLE,
;;quelles étaient : la résolution de mon écran, la vitesse de l'horloge de mon UC, l'époque où j'écrivais cette
;;version de cette ensemble de procédures ?!...
;-)
AIG
FIN

POUR POINT ;;les minutes. Attention : depuis, ce mot est devenue une PRIMITIVE Logo
;;et, contrairement à moi ici, "fait" dans le pixel.
LC AV 104 BC AV 10 LC RE 114 BC
FIN

POUR POINT2 ;;les heures
LC FPOS [-20 120] FCAP 0 TD 90 AV :E TG 90 BC
FCC 1 AV 20 RE 20
LC FPOS [0 0] BC
FIN

POUR CPT
DONNE "X :X + 1
FIN

POUR CPTB
DONNE "Y :Y + 1
FIN

POUR CHRONOS ;;le voici enfin !...
VE CT CADRAN
DONNE "X 0 DONNE "Y 0 DONNE "E 0
AIG
FIN

Pour CHRONOS, on peut ajouter 3, 6, 9 et 12 aux endroits idoines avec le TT (TORTUETEXTE). Exemple :

LC FCAP [0 125] BC TT 12

Je parle d'une possibilité qu'offrait le FLOGO d'Atari ...

L'heure s.v.p. :

Eh bien non : je ne vais ni tout recopier, ni jouer au Copier/Coller ... Ces deux procédures figurent déjà dans la Page
Logo & Lip à Horloge dans le Contenu de Papy Logo auquel je vous renvoie. Hypertextuel, non ?!... :-)


RENCONTRE DU 3ème. TYPE

Vous voulez vraiment la version écrite pour MO5 de Thomson ? Allez, je ne suis pas 'chien' et vous renvoie à une version plus récente. Elle se trouve à Musique dans l'incontournable Contenu.



LISTES et BASES de DONNEES

Autres jeux sur les listes (certaines procédures sont déjà des primitives du langage) :

Attention : déjà dit ailleurs (mais où ?!...), lorsque vous lisez :FOO et/ou "BAR, vous lisez bien :FOO et "BAR ;
sans espace après les : ou les ". C'est QUUX claire, non ;-)

POUR COMPTER :LISTE
SI VIDE? :LISTE [RENDS 0] [RENDS + 1 COMPTER SP :LISTE]
;;SP pour saufpremier
FIN

?ECRIS COMPTER [A Z E R T Y U I O P] retourne 10

POUR OCCUR :X :LISTE
SI VIDE? :LISTE [RENDS 0] [SI EGAL? :X PREMIER :LISTE !
[RENDS + 1 OCCUR :X SP :LISTE] [RENDS OCCUR :X SP :LISTE]]
FIN

?ECRIS OCCUR "A "BANANE retourne 2

POUR EFFACE :EL :LISTE ;;élément
SI VIDE? :LISTE [RENDS []] [SI EGAL? PREMIER :LISTE :EL !
[RENDS EFFACE :EL SP :LISTE] [RENDS METP PREM :LISTE !
EFFACE :EL SP :LISTE]]

;;[] liste vide, NIL en LISP - METP pour METPREMIER
FIN

?ECRIS EFFACE "A [A B C D] retourne B C D

POUR REMPLACE :E1 :E2 :L
SI VIDE? :L [RENDS []] [SI EGAL? :E1 PREM :L [RENDS METP :E2 !
REMPLACE :E1 :E2 SP :L] [RENDS METP PREM :L REMPLACE :E1 :E2 !
SP :L]]
FIN

?REMPLACE "A "B [A B C D] retourne B B C D

Histoire de B.D. :

Attention : P_Logo DOS ne connait pas RETOUNE et lui péfère RENDS utilisée dans les procédures ci-dessus ; je ne "corrige" pas celles ci-dessous puisque d'autres versions du langage (JFL, XLogo) respectent le RETOURNE. De même, PREMIER et DERNIER deviennent PREM et DER en P_Logo...

POUR DISMOI :LIST :NOM ;;merci Alberto !
SI VIDE? :LIST [RETOURNE [JE NE SAIS PAS]]
SI EGAL? :NOM PREMIER :LIST [RETOURNE PREMIER SP :LIST] !
[RETOURNE DISMOI SP :LIST :NOM]
FIN

POUR EXEMPLE
DONNE "COLOMBIE [HAB 28000000 PROD [MAIS BLE CAFE RIZ] !
ETHNIES [INDIEN METIS BLANC NOIR MULATRE]]
FIN

?ECRIS DISMOI :COLOMBIE "RELIGIONS retourne JE NE SAIS PAS
?ECRIS DISMOI :COLOMBIE "HAB retourne 28000000 ;;chiffre début années 1980...



PALINDROMES

Je ne définirais point ce que sont les palindromes ; il y a des encyclopédies et des moteurs de recherches pour cela. Je mentionnerais uniquement une source de 'palindromes de répliques' dans un dialogue : le "Canon cancrizans" dans Gödel, Escher, Bach de Douglas Hofstadter (ouvrage figurant en bibliographie).

Des outils :

POUR INVERSEM :M ;;mot
SI VIDE? :M [RETOURNE "] ;;mot vide et liste vide, ce n'est pas la même chose...
RETOURNE MOT DERNIER :M INVERSEM SD :M ;;saufdernier
FIN

?ECRIS INVERSEM "OLIVIER retourne REIVILO

POUR INVERSEL :L ;;liste
SI VIDE? :L [RETOURNE []]
RETOURNE PHRASE DERNIER :L INVERSEL SD :L
FIN

?ECRIS INVERSEL [A Z E] retourne E Z A

D'un outil à un autre :

POUR PALINDROME :M
SI EGAL? :M INVERSEM :M [RETOURNE "VRAI] [RETOURNE "FAUX]
FIN

?ECRIS PALINDROME "TOTO retourne FAUX
?ECRIS PALINDROME "UBU retourne VRAI

De plus en plus récursif :

POUR PALIN :N ;;pourquoi passer des lettres aux chiffres (nombres) ? Car je "fais de l'informatique"
;;avec un Computer, un Bilgisayar, banane :-)
SI PALINDROME :N [ECRIS :N STOP]
ECRIS PH PH PH PH :N "PLUS INVERSEM :N "EGAL SOMME :N INVERSEM :N
PALIN :N + INVERSEM :N

FIN

?PALIN 78 retourne :
78 PLUS 87 EGAL 165
165 PLUS 561 EGAL 726
726 PLUS 627 EGAL 1353
1353 PLUS 3531 EGAL 4884
4884
?
;;LOGO vous rend la main - gentil, non !?!...



ANAGRAMMES

Dédié à Umberto ECO !

Ce programme doit tout à Dominique (lors de son passage par DiaInformatica).
Il est possible de le réaliser de manières différentes (à chercher - si vos solutions "tournent" et que vous me les envoyiez, je les afficherais en ces pages).
Il est aussi possible de l'inclure dans un programme plus vaste capable de vous dire si votre mot est un PALINDROME et, avec FACT, combien de solutions sont nécessaires ; sachant, avec COMPTE, combien de lettres composent votre mot !
Tous ces mots sont soit des Primitives, soit à chercher dans (par) le Sommaire en bas (fin)de page.

POUR ANA :MOT
SI LISTE? :MOT [STOP]
NAGRA " :MOT COMPTE :MOT
FIN

POUR NAGRA :X :Y :Z
SI :Z = 0 [STOP]
SI COMPTE :Y = 1 [ECRIS MOT :X :Y]
NAGRA MOT :X PREMIER :Y SP :Y COMPTE SP :Y
NAGRA :X MOT SP :Y PREMIER :Y :Z - 1
FIN

Tenter un ANA "BAR - Attention = "BAR est ce que vous mettez dans le :MOT de ANA et n'a rien à voir avec la Primitive MOT utilisée dans la procédure NAGRA. Ce programme et celui que je propose quelques lignes plus haut ont parfaitement tournés sous le PLogo pour Atari ; toutefois, lors de vos premiers tests, ne tentez pas de jouer avec un mot de plus de trois lettres...



 

 

 

 

  Contenu PL

 Suite

 Sommaire

 Bibliographie