mot
WORD
mot <mot1> < mot2>
( mot <mot1> < mot2> <mot3> ... )
Rapporteur
2 données
remarque: (mot mot/liste1 mot/liste2 mot/liste3 ...) peut avoir deux données ou plus si l'instruction tout entière est écrite entre parenthèses.
Rapporte un mot composé de ses données.
______________________________________________________________________
liste
LIST
liste mot/liste1 mot/liste2
Rapporteur
2 données
remarque: (liste mot/liste1 mot/liste2 mot/liste3 ...) peut avoir deux ou plus de données si l'instruction tout entière est écrite entre parenthèses.
Rapporte une liste composée de mot/liste1 et mot/liste2.
Si une ou plusieurs données sont des listes, la liste ainsi
produite contiendra d’autres listes.
______________________________________________________________________
phrase
SENTENCE
<liste> PHRASE <chose1> <chose 2>
<liste> PH <chose1> <chose 2>
(<liste> PHRASE <chose1> <chose 2> <chose 3>...)
(<liste> PH <chose1> <chose 2> <chose 3> ...)
phrase mot/liste1 mot/liste2
ph mot/liste1 mot/liste2
Rapporteur
2 données
remarque: (phrase mot/liste1 mot/liste2 mot/liste3 ...)
peut avoir deux données ou plus si
l'instruction tout entière est écrite entre
parenthèses.
Rapporte une liste composée de ses données. Si les
données sont des listes, phrase les combine pour en
faire une seule liste.
______________________________________________________________________
metspremier
FPUT
metspremier <mot/liste liste>
mp <mot/liste liste>
Rapporteur
2 données
Rapporte une nouvelle liste où mot/liste est ajouté
comme premier élément dans la liste.
____________________________________________________________
metsdernier mot/liste liste
md mot/liste liste
LPUT mot/liste liste
LASTPUT mot/liste liste
Rapporteur
2 données
Rapporte une nouvelle liste ou mot/liste est ajouté
comme dernier élément dans la liste.
______________________________________________________________________
TABLEAU
ARRAY
<tableau> TABLEAU <taille>
<tableau> (TABLEAU <taille> <origine>
Crée un tableau.
N'existe pas en LOGOWRITER
______________________________________________________________________
MDTABLEAU
MDARRAY
<tableau> MDTABLEAU <liste taille>
<tableau> (MDTABLEAU <liste taille> <origine>
Crée un tableau à multiple dimension.
______________________________________________________________________
LISTEVERSTABLEAU
LISTTOARRAY
<tableau> LISTEVERSTABLEAU <liste> (librairie)
<tableau> (LISTEVERSTABLEAU <liste> <origine>)
Convertit une liste en tableau.
______________________________________________________________________
TABLEAUVERSLISTE
ARRAYTOLIST
<liste> TABLEAUVERSLISTE <tableau> (librairie)
Convertit un tableau en liste.
N'existe pas dans LOGOWRITER
______________________________________________________________________
COMBINE
<chose> COMBINE <chose1> <chose2>
(librairie)
Si <chose2> est un mot ; Rapporte MOT <chose1> <chose2>
Si <chose2> est une liste ; Rapporte METSPREMIER <chose1> <chose2>
Exemple:
montre combine "a "b
ab
montre combine "a [b]
[a b]
N'existe pas en LOGOWRITER
______________________________________________________________________
INVERSE
REVERSE
<nouvelle liste> INVERSE <liste> (librairie)
Rapporte une liste dont les membres sont dans l'ordre inverse de <liste>
Exemple:
montre INVERSE [1 2 3]
[3 2 1]
______________________________________________________________________
GENSYM
<mot> GENSYM (librairie)
Rapporte un mot unique à chaque appel.
Les mots sont de la forme G1 G2 ...
Exemple:
montre gensym
g1
montre gensym
g2
; SELECTEURS
______________________________________________________________________
PREMIER
FIRST
<premier de chose> PREMIER <chose>
premier mot/liste
pr mot/liste Cette abéviation n'est pas valable en MSWLOGO pour conserver la compatibilité avec l'anglais; pr est l'abéviation anglaise de print (ec en français)
Rapporteur
1 donnée
Rapporte le premier élément de mot/liste.
Le premier élément d'un mot est un caractère; le premier
élément d'une liste est un mot ou une liste.
Exemple:
montre premier [1 2 3]
1
montre premier "Hello
H
______________________________________________________________________
PREMIERS
FIRSTS
<liste des premiers> PREMIERS < liste de listes ou de mots>
Rapporte les premiers de chacun des éléments de l'entrée.
Aucun des éléments de l'entrée ne doit être vide.
Exemple:
montre premiers [[1 2 3] [a b c]]
[1 a]
Exemple:
pour transpose :matrix
if vide? premier t :matrix [ra []]
ra metspremierpremiers :matrix transpose
saufpremiers :matrix
end
______________________________________________________________________
DERNIER
LAST
<dernier objet de chose> DERNIER <chose>
dernier <mot/liste>
de mot/liste
Rapporteur
1 donnée
Rapporte le dernier élément de mot/liste.
Le dernier élément d'un mot est un caractère.
Le dernier élément d'une liste est un mot ou une autre
liste.
Exemple:
montre dernier [1 2 3]
3
montre dernier "Hello
o
______________________________________________________________________
SAUFPREMIER
BUTFIRST
<nouvelle chose> SAUFPREMIER <chose>
<nouvelle chose> SP <chose>
saufpremier <mot/liste>
sp <mot/liste>
Rapporteur
1 donnée
Rapporte tout sauf le premier élément du mot ou de la
liste.
Exemple:
montre saufpremier [1 2 3]
[2 3]
montre saufpremier "Hello
ello
______________________________________________________________________
SAUFPREMIERS
BUTFIRSTS
N'existe pas dans LOGOWRITER
<nouvelle liste> SAUFPREMIERS <liste de liste ou de mots>
<nouvelle liste> SPS <nouvelle liste>
Rapporte une liste contenant les saufpremiers des éléments de <liste de liste ou de mots>
Exemple:
montre saufpremiers [[1 2 3] [a b c]]
[[2 3] [b c]]
______________________________________________________________________
SAUFDERNIER
BUTLAST
<nouvelle chose> SAUFDERNIER <chose>
<nouvelle chose> BF <chose>
saufdernier <mot/liste>
sd <mot/liste>
Rapporteur
1 donnée
Rapporte tout sauf le dernier élément du mot ou de la
liste.
Exemple:
montre saufdernier [1 2 3]
[1 2]
montre saufdernier "Hello
Hell
______________________________________________________________________
ITEM
item ITEM index <chose>
item nombre mot/liste
Rapporteur
2 données
Rapporte l'élément qui occupe la position indiquée par
le nombre dans le mot ou la liste.
Exemple:
montre item 2 [a b c]
b
montre item 3 "ABC
c
______________________________________________________________________
MDITEM
<item> MDITEM <liste des index>< tableau multidimension>
(librairie)
Rapporte l' élément d'un tableau multidimension désigné par la liste des index.
Exemple:
montre mditem [2 2] {{0 1} {2 3}}
3
______________________________________________________________________
TIRE
PICK
<item> TIRE <chose> (librairie)
Rapporte un item de chose tiré au hasard.
Exemple:
montre tire [1 2 3]
2
montre tire [1 2 3]
2
montre tire [1 2 3]
3
montre tire "Hello
e
______________________________________________________________________
ENLEVE
REMOVE
<nouvelles choses> ENLEVE <chose>< choses> (librairie)
Enlève <chose> de <choses>
Exemple:
montre enlève "b [a b c b]
[a c]
montre enlève "e "Hello
Hello
______________________________________________________________________
ENLEVEDUP
REMDUP
<nouvelle choses> ENLEVEDUP <choses> (librairie)
Rapporte <nouvelle choses> , <choses> sans duplicata.
Exemple:
montre enlèvedup [a b c b]
[a c b]
montre enlèvedup "Hello
Helo
______________________________________________________________________
QUOTED
<chose ' quoted '> QUOTED <chose>
(librairie)
quoted siginifie précédée d'un double guillemet
Provient de lisp où le quote marque qu'une expression ne doit pas être évaluée.
si <chose> est une liste QUOTED rapporte la même liste.
Une liste n'est jamais évaluée en LOGO
si <chose > est un mot QUOTED rapporte <chose> précédé d'un double guillemet signifiant que c'est un mot et non une procédure.
Cette fonction est utile lors de programme qui modifient ou créent des instructions .
Example:
montre "Hello
Hello
montre quoted "Hello
"Hello
montre quoted [a b c]
[a b c]
______________________________________________________________________
FITEM
SETITEM
FITEM index tableau valeur
Modifie la valeur d'un élément de tableau
Exemple:
donne "montableau (tableau 3 0)
fitem 2 :myarray 1
fitem 1 :myarray [2]
fitem 0 :myarray 3
montre :montableau
{3 [2] 1}
______________________________________________________________________
MDFITEM
MDFITEM <liste des index> <tableau multidimension> <valeur>
(librairie)
Remplace la valeur de l'élément désigné par la liste des index.
Exemple:
donne "montableau (mdtableau [2 3] 0)
mdfitem [0 0] :montableau 1
mdfitem [0 1] :myarray 2
mdfitem [0 2] :myarray 3
mdfitem [1 0] :myarray 4
mdfitem [1 1] :myarray 5
mdfitem [1 2] :myarray 6
montre :montableau
{{1 2 3} {4 5 6}}
______________________________________________________________________
.FPREMIER
.SETFIRST
.FPREMIER <list> <valeur>
COMMANDE DANGEREUSE !
Remplace le premier de <liste> par <valeur>
Example:
make "maliste [1 2 3]
.fpremier :maliste 0
montre :maliste
[0 2 3]
______________________________________________________________________
.FSP
.SETBF
.FSP <liste> <value>
Remplace par <valeur> le sp de <liste>
COMMANDE TRES DANGEREUSE !
PEUT CONDUIRE A DES LISTES CIRCULAIRES
QUI FONT BOUCLER DES PRIMITIVES
SAUVER UN PROGRAMME CONTENANT UNE LISTE CIRCULAIRE
SAUVE UN FICHIER DE LONGUEUR INFINIE !!!!!!!
QUI REMPLIT TOUT VOTRE DISQUE !!!!!!
Exemple:
donne "maliste [1 2 3]
donne "taliste :maliste
.fsp :maliste [a b]
montre :maliste
[1 a b]
montre :taliste
; A ESSAYER AVEC UNE EXTREME PRUDENCE
donne "l [a b c]
.fsp bf bf :l :l
montre first :l make "l bf :l
a
montre first :l make "l bf :l
b
montre first :l make "l bf :l
c
montre first :l make "l bf :l
a
montre first :l make "l bf :l
b
.... etc ....
; DETRUISEZ IMMEDIATEMENT CETTE LISTE
.fsp :l []
; Donne une liste contenant le premier élément de l
ENTRE AUTRE NE PAS UTILSER
ec montre sauve compte dernier pourtous ou toute autre procédure descendant jusqu à la liste vide avec les liste circulaires! Une liste circulaire n'est jamais vide !!!
______________________________________________________________________
.FITEM
.SETITEM
.FTITEM index array value
Comme fitem mais sans contrôle de circularité.
DONC DANGEREUSE !!!!
Exemple:
make "myarray (array 3 0)
.fitem 2 :myarray 1
.fitem 1 :myarray 2
.fitem 0 :myarray 3
montre :myarray
{3 2 1}
______________________________________________________________________
EMPILE
PUSH
EMPILE <nom de la pile (mot ) > <chose> (library procedure)
Cette commande ajoute <chose> en tête de la liste <nom de la pile>.
<nom de la pile> et le nom d'une liste.
Exemple:
donne "mapile []
empile "mapile 1
empile "mapile 2
montre :mapile
[2 1]
montre depile "mapile
2
montre depile "mapile
1
______________________________________________________________________
DEPILE
POP
<chose> DEPILE <nom de pile> (librairie)
Rapporte le premier élément de la liste <nom de pile>
et retire cet élément de la liste <nom de pile>.
Exemple:
donne "mapile []
empile "mapile 1
empile "mapile 2
montre :mapile
[2 1]
montre depile "mapile
2
montre depile "mapile
1
______________________________________________________________________
QUEUE
QUEUE <nom de queue> <chose>
(librairie)
Cette place <chose> à la fin de la liste <nom de queue>
<nom de queue> est le nom d'une liste.
Exemple:
donne "queue []
queue "queue 1
queue "queue 2
montre :queue
[1 2]
montre dequeue "myqueue
1
montre dequeue "myqueue
2
______________________________________________________________________
DEQUEUE
DEQUEUE
<chose> DEQUEUE <nom de queue> (librairie)
Rapporte le dernier élément de <nom de queue> et
le retire de <nom de queue>.
Exemple:
donne "queue []
queue "queue 1
queue "queue 2
montre :queue
[1 2]
montre dequeue "myqueue
1
montre dequeue "myqueue
2
______________________________________________________________________
MOT?
WORDP
<vérité> MOT? <chose>
mot? mot/liste
Rapporteur-test
1 donnée
Rapporte vrai si mot/liste est un mot. Rapporte faux
dans le cas contraire.
Exemple:
montre mot? "Hello
true
montre mot? [Hello]
false
montre mot? {Hello}
false
______________________________________________________________________
LISTE?
LISTP
<Vérité> LISTE? <chose>
liste? mot/liste
Rapporteur-test
1 donnée
Rapporte vrai si mot/liste est une liste. Rapporte faux
dans le cas contraire.
Exemple:
montre list? "Hello
false
montre list? [Hello]
true
montre list? {Hello}
false
______________________________________________________________________
TABLEAU?
ARRAYP
<vérité> TABLEAU? <chose>
Rapporte true si <chose> est un tableau
Example:
montre tableau? "Hello
false
montre tableau? [Hello]
false
montre tableau? {Hello}
true
______________________________________________________________________
VIDE?
EMPTYP
<véritl> EMPTYP <chose>
vide? mot/liste
Rapporteur-test
1 donnée
Rapporte vrai si la donnée est un mot vide ou une liste
vide. Rapporte faux dans le cas contraire.
Exemple:
montre vide? [1 2 3]
false
montre vide? []
true
______________________________________________________________________
EQUAL?
EQUALP
<vérité> EQUAL? <chose1> <chose2>
égal? mot/liste 1 mot/liste2
Rapporteur-test
2 données
Rapporte vrai si mot/liste 1 et mot/liste2 sont les
mêmes, sans tenir compte des caractères en
majuscules et en minuscules (si la variable caseignorep est à true). Rapporte faux dans le cas
contraire.
Un mot et une liste contenant ce même mot (comme
"Salut et [Salut]) ne sont pas égaux.
Deux listes sont égales si elles ont les mêmes éléments aux mêmes positions.
Deux tableaux ne sont égaux que si les variables les contenants pointent vers le même tableau; changer un élément dans un tableau change aussi dans l'autre.
Deux tableaux différents mais contenant les mêmes éléments ne sont pas égaux.
Exemple:
montre egal? 1 1
true
montre egal? 1 2
false
montre egal? [1 2 3] [1 2 3]
true
montre egal? [1 2 3] [3 2 1]
false
______________________________________________________________________
AVANT?
BEFOREP
<vérité> AVANT? <mot1><mot2>
Rapporte true si <mot1> est avant <mot2> dans l'ordre alphabètique.
N'est pas égal à < pour des nombres .
13 est avant 3 dans l'ordre alphabètique.
Exemple:
montre "avant? "ABC "abd
true
montre "avant? "abd "ABC
false
montre "avant? 13 3
true
______________________________________________________________________
identique?
.EQ
<vérité> .EQ <chose1><chose2>
identique? mot/liste 1 mot/liste2
Rapporteur-test
2 données
Rapporte vrai si mot/liste1 mot/liste2 sont deux mots,
deux nombres ou deux listes identiques. Rapporte faux
dans le cas contraire.
Un mot et une liste contenant ce mot ne sont pas
identiques (par exemple, "salut et [salut]).
Les caractères (lettres majuscules et lettres minuscules)
de chaque donnée doivent être identiques.
Pour être identiques deux variables doivent pointer vers le même objet.
Exemple:
donne "x 1
donne "y 1
montre identique? :x :y
false
montre identique? :x :x
true
donne "y :x
montre identique? :x :y
true
______________________________________________________________________
MEMBRE?
MEMBERP
<vérité> MEMBRE? <chose1><chose2>
membre? <mot /liste1> < mot/liste2>
Rapporteur-test
2 données
Rapporte vrai si mot/liste1 est un élément de
mot/liste2. Rapporte faux dans le cas contraire.
si <chose1> est un mot MEMBRE? rapporte vrai si ce mot est une souschaîne du mot <chose2>.
Rappel: Une liste est formée de mots;
un mot est formé de caractères;
une liste n’est pas formée de caractères !
En MSWLOGO :
<chose2> peut aussi être un tableau.
Exemple:
montre membre? 1 [1 2 3]
true
montre membre? 4 [1 2 3]
false
______________________________________________________________________
INCLUDANS?
SUBSTRINGP
<vérité> INCLUDANS? <chose1><chose2>
Si <chose2> est une liste ou un tableau, rapporte true
si <chose1> est EGAL? à un élément de <chose2>.
si <chose2> est un mot, rapporte true si <chose1> est une
sous chaîne de <chose2>
Exemple:
show memberp ab abc
true
show memberp ac abc
false
______________________________________________________________________
NOMBRE?
NUMBERP
<vérité> NOMBRE? <chose>
nombre? mot/liste
Rapporteur-test
1 donnée
Rapporte vrai si mot/liste est un nombre. Rapporte faux
dans le cas contraire.
Un nombre est un type de mot.
Exemple:
montre nombre? 1
true
montre nombre? [1]
false
______________________________________________________________________
BACKSLASHEDP
BACKSLASHEDP
<vérité> BACKSLASHEDP <caracter>
Indique si un caractère dans un mot a une marque spéciale.
Exemple:
montre backslashedp "a
false
______________________________________________________________________
COMPTE
COUNT
<nombre> COMPTE <chose>
compte mot/liste
Rapporteur
1 donnée
Rapporte le nombre d'éléments qui se trouvent dans le
mot ou dans la liste.
Si la donnée est un mot, compte
rapporte le nombre de caractères que ce mot contient.
Si la donnée est une liste, compte rapporte le nombre
d'éléments (mots ou listes) qui se trouvent dans la liste.
Exemple:
montre compte [1 2 3]
3
montre compte "ab
2
______________________________________________________________________
ASCII
ASCII
number ASCII character
ascii caractère
Rapporteur
1 donnée
Rapporte le nombre en code ASCII qui correspond au
caractère indiqué.
Voir aussi car.
Exemple:
montre ascii "a
97
montre ascii "A
65
montre ascii "b
98
______________________________________________________________________
RAWASCII
RAWASCII
Même que ASCII mais donne des codes brutes.
number RAWASCII character
ascii caractère
Rapporteur
1 donnée
Rapporte le nombre en code ASCII qui correspond au
caractère indiqué.
Voir aussi car.
Exemple:
montre ascii "a
97
montre ascii "A
65
montre ascii "b
98
______________________________________________________________________
CAR
CHAR
<caractère> CAR <nombre>
car <nombre>
Rapporteur
1 donnée
Signifie caractère. Rapporte le caractère dont le code
ASCII correspond au nombre indiqué.
La primitive car permet d’employer toutes les touches du
clavier pour des test (utiliser la touche ESC, ou
distinguer entre les minuscules et majuscules).
Example:
montre car 97
a
montre carr 65
A
montre car 98
b
______________________________________________________________________
MEMBRE
MEMBER
MEMBER
<chose> MEMBRE <chose1> <chose2>
Si <chose2> est un mot ou une liste et si MEMBRE? avec ces données rapporterait true, rapporte le reste de <chose2> à partir de la première occurence de <chose1>
Si <chose1> n'est pas MEMBRE? de <chose2> , rapporte la liste ou le mot vide suivant la nature de <chose2>.
<chose2> ne doit pas être un tableau.
Example:
show member "b [a b c d]
[b c d]
show member "c [a b c d]
[c d]
______________________________________________________________________
MINUSCULE
LOWERCASE
<nouveau mot> MINUSCULE <mot>
Retourne <mot> mit en minuscules.
montre minuscule "Hello
hello
______________________________________________________________________
MAJUSCULE
UPPERCASE
<nouveau mot> MAJUSCULE <mot>
Retourne <mot> mis en majuscule.
Les lettres accentuées resrent des minuscules.
Example:
montre majuscule "Hello
HELLO
montre majuscule "élève
éLèVE
______________________________________________________________________
??? STANDOUT
non supporté par MSWLOGO
Affiche un mot en surbrillance
(Cité pour être complet par rapport à UCB LOGO:)
______________________________________________________________________
PARSE
PARSE
<liste> PARSE <mot>
Transforme un mot contenant du texte en liste, comme s'il était lu par LISLISTE:
Exemple:
montre parse "|Hello les [amis] |
[Hello les [amis] ]
montre parse "4*5
[4*5]
montre runparse "4*5
[4 * 5]
______________________________________________________________________
RUNPARSE
RUNPARSE
<liste> RUNPARSE <mot>
Transforme un mot contenant du texte en liste, comme s'il était lu comme une ligne de programme.(les opérateurs ou les parenthèses sont séparés).
Exemple:
montre parse "4*5
[4*5]
montre runparse "4*5
[4 * 5]
______________________________________________________________________
TEMPS
TIME
<liste> TEMPS
Rapporte la date et l'heure.
(La date est en Anglais)
Exemple:
montre time
[Wed Jul 14 23:34:08 1993]
______________________________________________________________________
TEMPSMILLI
TIMEMILLI
<nombre>TEMPSMILLI
Rapporte le nombre de millisecondes depuis le démarrage de windows.
Exemple:
donne "start timemilli
repètet 36 [ellipse 100 200 dr 5]
montre timemilli - :start
8189 ; La réponse dépend de la vitesse de votre ordinateur !
______________________________________________________________________
ECRIS
ECRIS <chose>
EC <chose>
(ECRIS <chose1><chose2> ...)
(EC chose1><chose2> ...)
écris mot/liste
éc mot/liste
Commande1 donnée
remarque: (écris mot/liste1 mot/liste2 ...) peut avoir une
ou plusieurs données si l'instruction tout
entière est écrite entre parenthèses.
Affiche un mot ou une liste dans l'historique de la fenêtre Commander.
La liste de premier niveau n'est pas entourée de parenthéses.
Exemple:
écris "Hello
Hello
ec [Hello how are you]
Hello how are you
______________________________________________________________________
INSERE
TYPE
INSERE <chose>
(INSERE <chose1><chose2> ...)
TAPE <chose>
TAPE <chose1><chose2> ...)
insère mot/liste
tape mot/liste
Commande1 donnée
remarque: (insère mot/liste1 mot/liste2 ...)
et (tape mot/liste1 mot/liste2 ...)
peuvent avoir une ou plusieurs données si l'instruction
tout entière est écrite entre parenthèses.
Insère un mot ou une liste dans à la fin de l'historique de la fenêtre Commander, sans faire suivre d'un retour de chariot ni d'espace.
Les parenthèses de premier niveau d'une liste ne sont pas écrites.
Exemple:
insere "bonjour ; n'écrit rien
insere "salut ; n'écrit rien
ec " ; Ecrit le tout sans espace.
bonjoursalut
insere "bonjour ; n'écrit rien
insere"salut ; n'écrit rien
insere char 10 ; Ecrit le tout sans espace
bonjoursalut
MONTRE
______________________________________________________________________
MONTRE
SHOW
MONTRE <chose>
(<MONTRE ><chose1> t<chose2> ...)
montre mot/liste
Commande1 donnée
remarque: (montre mot/liste1 mot/liste2 ...)
peut avoir une ou plusieurs données si l'instruction
tout entière est écrite entre parenthèses.
Affiche le mot ou la liste dans le centre de commandes.
Une liste est affichée avec les crochets qui l'enferment.
Exemple:
montre [1 2 3]
[1 2 3]
ec [1 2 3]
1 2 3
______________________________________________________________________
LISLISTE
RL
<liste> LISLISTE
<liste> LL
Ouvre un fenêtre de saisie et rapporte le texte saisi sous forme de liste si le flux d'entrée est [] (Par défaut).
Si un fichier est ouvert et le flux d'entrée celui du fichier,
lit un enregistrement du fichier et le rapporte sous forme de liste.
Exemple:
show lisliste
<Entrer (Bonjour ça va ? <CR>)
dans la boîte de dialogue.>
[Hello how are you]
______________________________________________________________________
LISMOT
RW
MOT LISMOT
Ouvre une boîte de dialogue et rapporte le texte saisi sous forme de mot.
Si le flux d'entrée est un fichier, lis un enregistrement du fichier.
Exemple:
montre lismot
<Entrer (Bonjour les amis<CR>) dans la boîte de dialogue>
Bonjour les amis
______________________________________________________________________
LISCAR
READCHAR RC
<caractère> LISCAR
liscar
Rapporteur
0 données
Signifie lis caractère.
Ouvre une boîte de dialogue et rapporte le cacractère saisi.
Si le flux d'entrée est un fichier, lis un caracère du fichier.
montre liscar
<Entrer (H<RETOUR>) dans la boîte de dialogue>
H
______________________________________________________________________
LISCARS
READCHARS
N'existe pas dans LOGOWRITER
<mot> LISCARS <nombre>
(En MSWLogo seulement pour un flux dans un fichier.)
Voir aussi FCLAVIER.
Lis <nombre> de caractères du flux
.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
MONTRE LICARS 5
Hello
FICHHIER.FERME "dummy.fil
______________________________________________________________________
SHELL
<réussite> SHELL <commande window >
Démarre une commande window
Exemple:
montre shell [notepad ]
true
______________________________________________________________________
FICHIER.OUVRELECT
OPENREAD
FICHIER.OUVRELECT <nom de fichier>
(OFICHIER.OUVRELECT <nom de fichier> <mode binaire>)
Commande qui ouvre le fichier <nom de fichier > en lecture.
La position de lecture est le début du fichier.
<mode binaire> true :Ouvre le fichier en mode binaire.
false : Ouvre le fichier en mode texte.
.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
EC LL
Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.OUVREEC
OPENWRITE
FICHIER.OUVREEC <nom de fichier>
FICHIER.OUVREEC <nom de fichier>b <mode binaire>)
Comande qui ouvre le fichier <nom de fichier> en écriture.
Si le fichier existe déjà, la version précédente est effacée et un nouveau fichier vide est
créé.
La position d'écriture est le début du fichier.
<mode binaire> true :Ouvre le fichier en mode binaire.
false : Ouvre le fichier en mode texte.
.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
EC LL
Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.OUVREECFIN
OPENAPPEND
FICHIER.OUVREECFIN <nom de fichier>
FICHIER.OUVREECFIN <nom de fichier>
<mode binaire>
Comande qui ouvre le fichier <nom de fichier> en écriture.
Si le fichier existe déjà, les écritures se font à la suite des données existantes.
La position d'écriture est la fin du fichier.
<mode binaire> true :Ouvre le fichier en mode binaire.
false : Ouvre le fichier en mode texte.
.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVREECFIN "dummy.fil
FICHIER.FEC "dummy.fil
EC "Aurevoir
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
REPETE 2 [MONTRE LL]
[Hello]
[Aurevoir]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.OUVREAJ
OPENUPDATE
FICHIER.OUVREAJ<nom de fichier><mode binaire>
Comande qui ouvre le fichier <nom de fichier> en mode mise à jour.
Le fichier doit exister.
La position d'écriture ou de lecture est au début du fichier.
Il n'y a qu'une position par fichier, pour la lecture ou l'écriture il faut donc repositionner après
écriture ou lecture.
Voir : FICHIER.FPOSLECT SETREADPOS
FICHIER.FPOSEC SETWRITEPOS
FICHIER.POSLECT READPOS
FICHIER.POSEC WRITEPOS
<mode binaire> true : Ouvre le fichier en mode binaire.
false : Ouvre le fichier en mode texte.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
EC "Aurevoir
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVREAJ "dummy.fil
FICHIER.FLECT "dummy.fil
MONTRE LL
FICHIER.FPOSEC 7
EC [Comment allez-vous ?]
Comment allez-vous ?
FICHIER.FEC []
FICHIER.FLECT "dummy.fil
FICHIER.FPOSLECT 0
REPETE 3 [MONTRE LL]
[Hello]
[Aurevoir]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.FERME
CLOSE
FICHIER.FERME <nom de fichier>
Cette commande ferme le fichier <nom de fichier>
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
EC LL
Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.OUVERTS
ALLOPEN
<Liste des fichiers ouverts> FICHIER.OUVERTS
Rapporte la liste des fichiers actuellement ouverts.
Exemple:
FICHIER.OUVREEC "DUMMY1.FIL
FICHIER.OUVREEC "DUMMY2.FIL
MONTRE FICHIER.OUVERTS
; [DUMMY2.FIL DUMMY1.FIL]
FICHIER.FERMETOUT
MONTRE FICHIER.OUVERTS
FICHIER.FERMETOUT (librarie)
______________________________________________________________________
FICHIER.FERMETOUT
CLOSEALL
Cette commande ferme tous les fichiers ouverts.
Equivalent à:
POURTOUS [FICHIER.FERME ?] FICHIER.OUVERTS
Exemple:
FICHIER.OUVREEC "DUMMY1.FIL
FICHIER.OUVREEC "DUMMY2.FIL
MONTRE FICHIER.OUVERTS
; [DUMMY2.FIL DUMMY1.FIL]
FICHIER.FERMETOUT
MONTRE FICHIER.OUVERTS
______________________________________________________________________
FICHIER.EF
ERASEFILE
ERF
FICHIER.EF <Nom de fichier>
EFFICHIER <Nom de fichier> ; Compatibilité logowriter
Cette commande supprime le fichier <Nom de fichier>., qui ne doit pas être ouvert.
effichier nomdefichier
Commande1 donnée
Signifie efface fichier. Efface un fichier contenu sur la
disquette. ou un disque dur.
Si <nom de fichier> n'a pas de chemin, efface dans le répertoire courant.
Il faut utiliser le rapporteur listefichiers pour connaître les
noms des fichiers contenus dans le sous-répertoire
courant..
Efface les fichiers un à un, puis utilise la
commande efindex pour effacer le répertoire en question.
Effichier peut effacer un fichier contenu dans un autre
répertoire ou même sur une autre disquette. Il faut alors
utiliser le nom complet pour désigner le fichier à effacer.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
MONTRE MEMBRE? "dummy.fil LISTEFICHIERS
FICHIER.EF "dummy.fil
MONTRE MEMBRE? "dummy.fil LISTEFICHIERS
______________________________________________________________________
DRIBBLE
DRIBBLE <nom de fichier>
Cette commande enregistre une session logo dans le fichier <nom de fichier>
Exemple:
dribble "dummy.fil
av 100
dr 90
nodribble
FICHIER.OUVRELECT "dummy.fil
REPETE 3 [MONTRE LL]
[av 100]
[dr 90]
[nodribble]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
NODRIBBLE
NODRIBBLE
Cette commande interrompt l'enregistrement d'une session Logo.
Exemple:
dribble "dummy.fil
av 100
dr 90
nodribble
FICHIER.OUVRELECT "dummy.fil
REPETE 3 [MONTRE LL]
[av 100]
[dr 90]
[nodribble]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.FLECT
SETREAD
FICHIER.FLECT <nom de fichier>
Cette commande désigne le flux de lecture.
Les commandes de lecture, LISLISTE, LISMOT ETC ... reçoivent les informations du fichier :<nom de fichier>
Le fichier <nom de fichier> doit être ouvert.
Si <nom de fichier> est une liste vide, la lecture se fait depuis le terminal.
Dans un boîte de dialogue Input.
Changer de flux ne ferme pas les fichiers, il est donc possible d'alterner la lecture de plusieurs fichiers.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
EC LL
Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.FEC
SETWRITE
FICHIER.FEC <nom de fichier>
Cette commande désigne le flux d'écriture.
Les commandes d'écriture, EC MONTRE etc. envoient les informations vers le fichier :<nom de fichier>
Le fichier <nom de fichier> doit être ouvert.
Si <nom de fichier> est une liste vide, l'écriture se fait sur le terminal.
Dans l'historique de la fenêtre Commander.
Changer de flux ne ferme pas les fichiers, il est donc possible d'alterner l'écriture dans plusieurs fichiers.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
EC LL
Hello
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
FICHIER.LECT
READER
<NOM DE FICHIER> FICHIER.LECT
Rapporte le flux courant de lecture, la liste vide si le flux courant est le terminal.
Exemple:
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
MONTRE FICHIER.LECT
dummy.fil
FICHIER.FLECT[]
FICHIER.FERME
______________________________________________________________________
FICHIER.EC
WRITER
<nom de fichier> FICHIER.LECT
Rapporte le flux courant de lecture, la liste vide si le flux courant est le terminal.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
MONTRE FICHIER.EC
FICHIER.FEC[]
FICHIER.FERME "dummy.fil
dummy.fil
______________________________________________________________________
FICHIER.FPOSLECT
SETREADPOS
FICHIER.FPOSLECT <position en caractères>
Cette commande place le pointeur de lecture dans le fichier.
0 est le début du fichier.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
EC [Good Bye]
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVERLECT "dummy.fil
FICHIER.FLECT "dummy.fil
MONTRE LL
[Hello]
FICHIER.FPOSLECT 0
MONTRE LL
[Hello]
FICHIER.FLECTURE []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.FPOSEC
SETWRITEPOS
FICHIER.FPOSLEC <position en caractères>
Cette commande place le pointeur d'écriture dans le fichier.
0 est le début du fichier.
Exemple:
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
FICHIER.FPOSEC 0
TAPE "J
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT"dummy.fil
MONTRE LL
[Jello]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.POSLECT
READPOS
<position de lecture> READPOS
Rapporte la position du pointeur de lecture.
Exemple:
FICHIER.OUVEREEC"dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
EC [Good Bye]
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
REPETE 2 [MONTRE FICHIER.POSLECT MONTRE LL]
0
[Hello]
7
[Good Bye]
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FICHIER.POSEC
WRITEPOS
<position d'écriture> WRITEPOS
Rapporte la position du pointeur d'écriture.
Example:
Note: Le résultats doivent être collectés dans une liste jusqu'à ce que le flux d'écriture redevienne ([]).
FICHIER.OUVREEC "dummy.fil
FICHIER.FEC "dummy.fil
DONNE "histoire []
DONNE "histoire MD FICHIER.POSEC :histoire
EC "Hello
DONNE "histoire MD FICHIER.POSEC :histoire
EC [Good Bye]
DONNE "histoire MD FICHIER.POSEC :histoire
FICHIER.FEC []
FICHIER.FERME "dummy.fil
MONTRE :histoire
[0 7 17]
______________________________________________________________________
FICHIER.FIN?
EOFP
<Vérité?> FICHIER.FIN?
Rapporteur-test
0 dnnées:
Rapporte true s'il n'y a plus de caractère à lire dans le fichier.
Exemple:
FICHIER.OUVEREC "dummy.fil
FICHIER.FEC "dummy.fil
EC "Hello
EC [Good Bye]
FICHIER.FEC []
FICHIER.FERME "dummy.fil
FICHIER.OUVRELECT "dummy.fil
FICHIER.FLECT "dummy.fil
REPETE 2 [MONTRE LL MONTRE FICHIER.FIN?]
[Hello]
false
[Good Bye]
true
FICHIER.FLECT []
FICHIER.FERME "dummy.fil
______________________________________________________________________
FCLAVIER
KEYBOARDON
FCLAVIER <touche pressée>
FCLAVIER<touche pressée> <touche relâchée>)
Attention cette primitive est modifiée par rapport à MSWLOGO
FCLAVIER empile l'événement précédent et le restitue lors de la commande EFCLAVIER.
Ceci fait que l'on retrouve le comportement précédent à la fin de l'utilisation de FCLAVIER
Lors d'un événement clavier, window éxécute la liste d'actions donnée (callback).
Un événement clavier est une touche pressée ou relâchée lorsque la
fenêtre [MSWLogo Screen] est active.
La fonction CLAVIER contient le code de la touche qui a provoqué le dernier événement.
Il y a une liste qui est exécutée lors de la pression et une liste exécutée lors du relâchement.
Dans le cas d'une seule donnée(cas par défaut), le code rendu par clavier
distingue majuscules et minuscules (code ascii).
Avec 2 données, le code des touches est celui des majuscules, les touches majuscules ou alt sont aussi des événements.
Les listes d'actions sont toujours éxécutées en mode noyield
c'est à dire avec une priorité maximum.
Exemple:
FCLAVIER [EC CAR CLAVIER]
FEN.FACTIVE [MSWLogo Screen] ; active la fenêtre.
presser la touche <a>
a
presser la touche <b>
b
EFCLAVIER
______________________________________________________________________
EFCLAVIER
KEYBOARDOFF
EFCLAVIER
Cette commande rétablit le comportement précédent du clavier.
Exemple:
FCLAVIER [EC CAR CLAVIER]
FEN.FACTIVE [MSWLogo Screen] ; active la fenêtre.
presser la touche <a>
a
presser la touche <b>
b
EFCLAVIER
______________________________________________________________________
CLAVIER
KEYBOARDVALUE
<touche> CLAVIER
Cette opération rapporte la valeur ASCII de la dernière touche pressée ou levée.
Exemple:
FCLAVIER [EC CAR CLAVIER]
FEN.FACTIVE [MSWLogo Screen] ; active la fenêtre.
presser la touche <a>
a
presser la touche <b>
b
EFCLAVIER
______________________________________________________________________
FSOURIS
MOUSEON
FSOURIS<action bouton gauche bas><action bouton gauche haut>
<action bouton droit bas> <action bouton droit haut><action mouvement>
Cette commande est différente dans la version française en ce sens que les comportements de la souris sont empilés lors de la commande FSOURIS. Lors de EFSOURIS, le comportement précédent est restitué.
Lors d'un événement souris avec la fenêtre [MSWlogo Screen] active, windows exécute la liste d'action correspondant à l'événement.
Ainsi appuyer le bouton gauche de la souris lorsque la fenêtre [MSWlogo Screen] est active provoque l'exécution de la liste bouton gauche bas.
Si c'est la fenêtre Commander qui est active, l'appuis du bouton gauche débutera une sélection de texte dans la fenêtre Commander.
Voir POSSOURIS qui rapporte la position de la souris lors d'un événement.
Les listes d'actions sont exécutées en mode NOYIELD c'est à dire
avec une priorité maximum , sans répondre aux événements suivants.
Exemple:
li
fsouris [fpos POSSOURIS bi] [li] [] []
[fpos POSSOURIS]
<déplacez la souris , appuyez le bouton gauche pour dessiner>
EFSOURIS ; rétablit le comportement précédent.
______________________________________________________________________
EFSOURIS
MOUSEOFF
Cette commande est différente dans la version française en ce sens que les comportements de la souris sont empilés lors de la commande FSOURIS. Lors de EFSOURIS, le comportement précédent est restitué.
______________________________________________________________________
POSSOURIS
MOUSEPOS
<position de la souris> MOUSEPOS
Cette fonction rapporte la position de la souris au dernier événement souris.
Exemple:
li
fsouris [fpos POSSOURIS bi] [li] [] []
[fpos POSSOURIS]
<déplacez la souris , appuyez le bouton gauche pour dessiner>
EFSOURIS ; rétablit le comportement précédent.
______________________________________________________________________
videtexte
vt
CLEARTEXT
CT ; Est remplacé par cache tortue ( ct en français), seule la primitive CLEARTEXT est utilisable pour un programme anglais,
C'est la seule incompatibilité due à l'abréviation traditionelle de cache tortue.
Dans l'autre sens pr est l'abréviation de print, non de premier comme en logowriter.
videtexte
vt
Cette commande efface l'historique de la fenêtre Commander.
Exemple:
ec "Hello
Hello
vt
______________________________________________________________________
somme
SUM
+ ;opératetur infixe.
SUM
<somme> somme
<somme>(somme nombre1><nombre2><nombre3> ...)
<somme> | <nombre1> + <nombre2>
Rapporte la somme <nombre1> + <nombre2>
Exemple:
montre 2 + 3
5
______________________________________________________________________
DIFFERENCE
<différence> DIFFERENCE <nombre1><nombre2>
<différence> | <nombre1> - <nombre2>
Rapporte la différence <nombre1> - <nombre2>
Le signe - est l'opérateur infixe différence sauf s'il est précédé d'un espace et suivi d'un non espace.
Exemple:
montre 3 - 2
1
montre -5 ; signe - car suivi d'un non espace et précédé d'un espace.
montre 5-2 ; opérateur car - n'est pas précédé d'un espace.
______________________________________________________________________
MOINS
MINUS
<négatif> MINUS <nombre>
<espace>-<nombre> ; - précédé d'un espace et suivi d'un non espace.Autrement dit - collé à quelque chose.
Attention aux priorités, La fonction MINUS se comporte comme toute fonction (priorité inférieure aux opérateurs)
MINUS 3 + 4 signifie -(3+4)
-3 + 4 signifie (-3)+4
Exemple:
montre 2 - -3
5
donne "a 5
montre -:5
fcap 90
montre -cap
______________________________________________________________________
PRODUIT
PRODUCT
<produit> PRODUCT <nombre1><nombre2>
<produit> (PRODUCT <nombre1><nombre2> <nombre3> ...)
<produit> | <nombre1>*<nombre2>
Rapporte le produit <nombre1>*<nombre2>
duct.
Exemple:
montre 2 * 3
6
montre (produit 2 3 4)
24
______________________________________________________________________
QUOTIENT
<quotient> QUOTIENT<nombre1><nombre2>
<quotient> (QUOTIENT <nombre2>)
<quotient> | <nombre1>/<nombre2>
Rapporte le quotient <nombre1>/<nombre2>
Le quotient est un entier si <nombre2> est un diviseur de <nombre1>.
quotient avec un seul argument rapporte l'inverse.
Example:
montre 6 / 3
2
montre 3 / 2
1.5
montre (quotient 2)
0.5
______________________________________________________________________
RESTE
REMAINDER
REMAINDER
<reste> RESTE <nombre1><nombre2>
Rapporte le reste de la division de <nombre1>par <nombre2>
Exemple:
montre reste 6 4
2
montre reste 6 2
0
______________________________________________________________________
entier
INT
<entier> entier <nombre>
Rapporte < nombre > sans sa partie fractionnelle.
Un entier plus petit ou égal à la valeur absolue de <nombre> et de même signe que nombre.
int:(INTEGER) Result of int.
num:(NUMBER) Number to int.
Si le nombre est trop grand entiers répond sous une forme qui n'est plus reconnue comme un entier par reste.
montre entier 4343434535898989898989893535.8
4.34343453589899e+27
Exemple:
montre entier 4.6
4
montre entier -4.6
-4
______________________________________________________________________
ROUND
arrondis
<entier> arrondis <nombre>
Rapporte l'entier le plus proche de <nombre>
Exemple:
montre arrondis 8.2
8
montre arrondis 8.7
9
montre arrondis -4.7
-5
montre arrondis 4.7
5
montre arrondis -4.1
-4
______________________________________________________________________
ABS
<valeur absolue> ABS <nombre> 1 (librarie)
Exemple:
montre abs 5
5
montre abs -5
5
______________________________________________________________________
SIGNE
SIGN
<entier> SIGNE <nombre> (librarie)
Rapporte -1 si <nombre> est négatif et 1 si <nombre> est positif.
Example:
montre SIGN 5
1
montre SIGN 0
0
montre SIGN -98.6
-1
______________________________________________________________________
rcarrée <nombre>
rcar <nombre>
SQRT
Rapporteur
1 donnée
Signifie racine carrée.
Rapporte la racine carrée de <nombre>.
Le nombre ne doit pas être négatif.
______________________________________________________________________
puissance
POWER
<nombre> puissance <nombre1> <nombre2>
<nombre> ^ <nombre1> <nombre2> , ^ n'est pas un opérateur, juste une abréviation de puissance .
^ ne respecte donc pas les règles de priorité et n'est pas infixe..
Rapporte <nombre1> à la puissance <nombre2>
Si <nombre1> est négatif, <nombre2> doit être un entier.
Exemple:
montre puissance 2 3
8
montre puissance 9 1/2
3
______________________________________________________________________
EXP
Non annotée : Fonction mathématique ,_____________________________________________________________________
LOG10
Non annotée : Fonction mathématique ,_____________________________________________________________________
LN
Non annotée : Fonction mathématique ,_____________________________________________________________________
Non annotée : Fonction mathématique ,_____________________________________________________________________
PI
Non annotée : Fonction mathématique ,_____________________________________________________________________
TAN
Non annotée : Fonction mathématique ,_____________________________________________________________________
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADTAN
Non annotée : Fonction mathématique ,_____________________________________________________________________
SIN
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADSIN
Non annotée : Fonction mathématique ,_____________________________________________________________________
Non annotée : Fonction mathématique ,_____________________________________________________________________
COS
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADCOS
Non annotée : Fonction mathématique ,_____________________________________________________________________
ARCTAN
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADARCTAN
Non annotée : Fonction mathématique ,_____________________________________________________________________
ARCSIN
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADARCSIN
Non annotée : Fonction mathématique ,_____________________________________________________________________
ARCCOS
Non annotée : Fonction mathématique ,_____________________________________________________________________
RADARCCOS
Non annotée : Fonction mathématique _____________________________________________________________________
PLUSPETIT?
<
LESSP
<
nombre1 < nombre2
Rapporteur-test
2 données
Ce test rapporte true (vrai) si nombre1 est plus petit que
nombre2. Rapporte false (faux) dans le cas contraire.
_____________________________________________________________________
PLUSGRAND?
<
GREATERP
<
nombre1 < nombre2
Rapporteur-test
2 données
Ce test rapporte true (vrai) si nombre1 est plus grand que
nombre2. Rapporte false (faux) dans le cas contraire.
_____________________________________________________________________
hasard
RANDOM
hasard <nombre>
Rapporteur
1 donnée
Rapporte un entier positif inférieur à nombre.
Entre 0 et nombre - 1
_____________________________________________________________________
REHASARD
RERANDOM
REHASARD
(REHASARD <graine>)
Cette commande rend le résultat de hasard reproductible. (pour vérifier un programme par exemple).
Appeler REHASARD avant le premier appel de hasard.
(rehasard <graine>) <graine> est un entier qui initialise une séquence de nombres aléatoire.
Exemple:
rehasard 1234
repètet 2 [montre hasard 10]
6
2
rehasard 1234
repètet 2 [montre hasard 10]
6
2
_____________________________________________________________________
FORM
<mot> FORM <valeur><taille><précision>
Retourne un mot contenant la représentation imprimable de <nombre>.
Eventuellement précédée d'espaces, et donc plus utilisable pour des calculs. avec au moins < taille> caractères comprenant <précision> chifres après le point décimal.
(Si <précision = 0 il n'y a pas de point décimal.)
Exemple:
montre form 123.1 10 10
123.1000000000
Pour déboguer, (FORM <nombre> -1 <format>) imprime <nombre> suivant le formt des coventions de C printf "format", ainsi:
pour hex :num
ra form :num -1 "|%08X %08X|
end
_____________________________________________________________________
Opération logiques sur les bits.
_____________________________________________________________________
BITET
BITAND
<nombre>BITET <nombre1><nombre2>
<nombre> (BITET <nombre1><nombre2><nombre3> ...)
Retourne l'opération logique sur les bits ET de ses entrées, qui doivent être des entiers.
Exemple:
montre BITET 5 2
0
montre BITET 5 1
1
_____________________________________________________________________
BITOU
BITOR
<nombre> BITOU <nombre1><nombre2>
<nombre> (BITOU <nombre1><nombre2><nombre3> ...)
Retourne l'opération logique sur les bits OU de ses entrées, qui doivent être des entiers.
Exemple:
montre BITOU 5 2
7
montre BITOU 5 1
5
_____________________________________________________________________
BITOUEX
BITXOR
<nombre> BITOUEX <nombre1><nombre2>
<nombre> (BITOUEX <nombre1><nombre2><nombre3> ...)
Retourne l'opération logique sur les bits OU de ses entrées, qui doivent être des entiers.
Exemple:
show BITOUEX 5 2
7
show BITOUEX 5 1
4
_____________________________________________________________________
BITNON
BITNOT
<nombre> BITNOT <nombre1>
Retourne l'opération logique sur les bits NON de son entrée, qui doit être un entier.
Exemple:
montre BITNON 1
-2
montre BITNON 5
-6
_____________________________________________________________________
BITDECALEA
ASHIFT
<nombre> ASHIFT <nombre1><nombre2>
Rapporte <nombre1> décalé arithmétiquement à gauche to de <nombre2> bits.
Si <nombre2> est négatif, le déclage a lieu à droite avec extension de signe.
Le données doivent être des entiers.
Exemple:
montre BITDECALEA 5 2
20
montre BITDECALEA 20 -1
10
_____________________________________________________________________
BITDECALEL
LSHIFT
<nombre> BITDECALEL <nombre1><nombre2>
Rapporte <nombre1> décalé logiquement à gauche to de <nombre2> bits.
Si <nombre2> est négatif, le déclage a lieu à droite complété avec des zéros.
Le données doivent être des entiers.
montre BITDECALEL 5 2
20
montre BITDECALEL 20 -1
10
_____________________________________________________________________
Opérateurs Logiques
_____________________________________________________________________
et
AND
<l1 et l2> et <l1> <l2>
<l1 et l2 et l3 et ... > (et<l1> <l2> <l3> ... )
Rapporteur-test
2 données
remarque: (et vrai/faux1 vrai/faux2 vrai/faux3...) peut
avoir deux ou plus de données si l'instruction tout entière est écrite entre parenthèses.
Rapporte true (vrai) si toutes ses données sont vraies.
Rapporte false (faux) dans le cas contraire.
Les données de et peuvent être les mots français vrai faux ou les mots anglais true false.
Exemple :
montre et "vrai "faux
false
montre et "vrai "vrai
true
Remarque : les primitives prédicats (test) répondent en anglais
Ne pas utiliser la forme redondante:
si "vrai = et <cond1> <cond2> <action>
mais
si et <cond 1> <cond 2> <action>
_____________________________________________________________________
ou
OR
<l1 ou l2> ou <l1><l2>
<l1 ou l2 ou l3 ou ... > (ou <l1> <l2> <l3> ... )
ou <vrai/faux1>< vrai/faux2>
Rapporteur-test
2 données
remarque: (ou vrai/faux1 vrai/faux2 vrai/faux3...) peut
avoir deux ou plus de données si l'instruction tout entière est écrite entre parenthèses.
Rapporte true (vrai) si toutes ses données sont vraies.
Rapporte false (faux) dans le cas contraire.
Les données de ou peuvent être les mots français vrai faux ou les mots anglais true false.
Exemple :
montre et "vrai "faux
false
montre et "vrai "vrai
true
Remarque : les primitives prédicats (test) répondent en anglais
Ne pas utiliser la forme redondante:
si "vrai = et <cond1> <cond2> <action>
mais
si et <cond 1> <cond 2> <action>
_____________________________________________________________________
non
NOT
<non l> non <l>
Rapporte TRUE si la donnée <l> est FALSE ou FAUX, et vice versa.
Exemple:
non "true
false
_________________________________________________________
FTORTUE
SETTURTLE
FTORTUE <tortue>
Choisit la tortue < tortue > active.
Chaque tortue met à jour sa propre
(orientation en 3d), position, et commande de crayon , mais pas
la couleur du crayon.
Chaque tortue peut être représentée comme image (BITMAP).
Notez que les tortues commencent à 0 qui est la tortue par défaut. Il y a une limite de 1024 tortues signifiant que la plus grande valeur de tortue peut être est 1023(puisque l'on commence à 0 et non à 1). Toutes les tortues entre 0 et la plus haute tortue choisie seront " activées ". Ainsi ne choisissez pas la tortue 100 et 200 si vous avez besoin seulement de 2 tortues. Un videgraphique choisira automatiquement la tortue 0 et mettra toutes autres tortues hors fonction.
Exemple:
repète 8 [ftortue compteur -1 av 10* compteur ]
En mode PERSPECTIVE, 3 tortues spéciales sont utilisées.
Tortue -1: Sa position représente où votre oeil se trouve quand vous visualisez une scène 3d. Valeurs par défauts [ 400 400 600 ]). Son orientation n'a pas d'importance.
Tortue -2: Sa position représente où votre oeil semble quand vous visualisez une scène 3d. Valeurs par défauts [ 0 0 0 ]). Son orientation représente quelle direction est EN HAUT sur l'écran (défauts [ 0 0 0 ], l'axe de la position Y est EN HAUT.
Tortue -3: Sa position représente où la source lumineuse est placée. Valeurs par défauts [ 0 0 1000 ]. Son orientation n'importe pas. Cette tortue intervient seulement quand vous utilisez POLY.DEF et POLY.FIN .
Notez que vous ne pouvez pas regarder dans la même direction que VERS LE
HAUT. Par exemple, si la tortue -2 a sa position et son orientation par défaut, et vous placez la tortue -1 quelque part le long de l'axe y, disons [ 0 1000 0 ], vous ne pouvez voir quelque chose.
Ces tortues spéciales ne sont jamais montrées ni habillées de bitmap. Chaque fois que vous entrez le mode de PERSPECTIVE toutes les tortues spéciales sont remises à l'état initial dans leur position et orientation par défaut.
Exemple de (3d):
perspective
vg bc
; Dessine un cube vu du point de vue par défaut
répète 4 [répète 4 [av 100 dr 90] av 100 pique 90]
attends 100
vg
; Redessine le cube d'un nouveau point de vue.
ftortue -1
fxyz 500 500 100
setturtle 0
répète 4 [répète 4 [av 100 dr 90] av 100 pique 90]
_____________________________________________________________________
TORTUE
TURTLE
<tortue> TORTUE
Rapporte la tortue active. Poour changer la torue active, voir FTORTUE (SETTURTLE).
Exemple:
FORTUE 8
montre TORTUE
8
_____________________________________________________________________
FBITMAP
BITMAPTURTLE
Habille la tortue actuelle (voir le FTORTUE) avec l'image d'index correspondant. Puisque l'image d'index 0 (valeur de la tortue par défaut) est le presse-papier FBITMAP par défaut habille la tortue de l'image dans la presse-papier.
Attnetino le presse-papier sert aussi copier du texte.
si vous copiez du texte, l'image est détruite.
Essayez de dessiner une image avec le programme de dessin PAINT et copiez-la dans le presse papier.Revenez à MSWLOGO, choisissez la tortue 0 (si ce n'est pas la tortue par défaut) et exécutez FBITMAP.
EFBITMAP et vg restaureront la tortue à sa forme normale. (l'image dans l'index ne s
Exemple:
vg
lc
étiquette 1
bc
bitcoupe 20 20
fbitmap
av 100
_____________________________________________________________________
EFBITMAP
NOBITMAPTURTLE
Supprime l'habillage de la tortue.
Exemple:
vg
lc
étiquette 1
bc
bitcoupe 20 20
fbitmap
av 100
attends 100
EFBITMAP
_____________________________________________________________________
avance
FORWARD
avance <dist>
av <dist>
Déplace la tortue en avant, dons la direction de son cap, de la distance (mesurée en pas de tortue(pixel)) donnée par <dist>.
Exemple:
répète 4 [avance 100 dr 90]
_____________________________________________________________________
recule
BACK
recule <dist>
re <dist>
Déplace la tortue en arrière, dans la position opposée à son cap, de la distance (mesurée en pas de tortue ( pixel)) donnée pr <dist>. (Le cap de la tortue n'est pas changé.)
Exemple:
répète 4 [re 100 dr 90]
_____________________________________________________________________
gauche
LEFT
gauche <angle>
ga <angle>
Tourne la tortue, dans le sens inverse des aiguilles d'une montre, de l'angle spécifié par <angle>, mesuré en degrés (1/360 de cercle).
Exemple:
répète 3 [avance 100 gauche 120]
_____________________________________________________________________
IG (Incline à gauche)
LEFTROLL
IG <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Incline la tortue (du côté gauche) de l'angle spécifié par <angle>, mesuré en degrés (1/360 de cercle). Comme un avion qui penche du côté de son aile gauche.
Exemple:
perspective
IG 45
répète 3 [avance 100 droite 120]
____________________________________________________________________
ID (Incline à droite.)
RIGHTROLL
ID <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Incline la tortue (du côté droit) de l'angle spécifié par <angle>, mesuré en degrés (1/360 de cercle). Comme un avion qui penche du côté de son aile droite.
Exemple:
vg perspective
répète 3 [avance 100 droite 120]
ID 90
répète 3 [avance 100 droite 120]
____________________________________________________________________
PIQUE
DOWNPITCH
PIQUE <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Pique de l'angle spécifié par <angle>, mesuré en degrés (1/360 de cercle). Comme un avion qui pique du nez vers le bas.
Exemple:
vg perspective
répète 4 [avance 100 droite 90]
PIQUE 90
répète 4 [avance 100 droite 90]
____________________________________________________________________
CABRE
UPPITCH
CABRE <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Cabre (relève le nez) de l'angle spécifié par <angle>, mesuré en degrés (1/360 de cercle). Comme un avion qui lève son nez vers le haut.
Exemple:
vg perspective
répète 4 [avance 100 droite 90]
CABRE 90
répète 4 [avance 100 droite 90]
____________________________________________________________________
fpos
SETPOS
fpos <pos>
Déplace la tortue à la position absolue spécifiée par <pos>.
<pos> est une liste de deux éléments, les coordonnées X et Y de la position. Voir aussi pos.
Exemple 1:(dessine un carré de position absolue (toujours au même endroit et indépendant du cap de la tortue.)
vg
fpos [0 100]
fpos [100 100]
fpos [100 0]
fpos [0 0]
Exemple 2:(La question la plus fréquente sur LOGO ! )
donne "x 0
donne "y 100
; fpos [:x :y] Ne fontionne pas !!!
; Il faut écrire :
fpos (liste :x :y)
Pourquoi ?
Dans le premier cas, on a une liste de deux mots :x et :y.
Dans le second cas, on construit une liste avec les valeurs de :x et :y.
Essayez:
montre [:x :y]
[:x :y]
montre (list :x :y)
[0 100]
____________________________________________________________________
SETPOSXYZ
SETPOSXYZ
FPOSXYZ <posxyz>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Dépace la tortue vers les coordonnées absolues X,Y,Z .
La donnée <posxyz>, est une liste de trois nombres; les coordonnées X, Y et Z.
Voir aussi POSXYZ.
Exemple:(dessine un cube)
perspective
; Maintenant dessine un cube
FPOSXYZ [0 100 0]
FPOSXYZ [100 100 0]
FPOSXYZ [100 0 0]
FPOSXYZ [0 0 0]
FPOSXYZ [0 0 100]
FPOSXYZ [100 0 100]
FPOSXYZ [100 100 100]
FPOSXYZ [0 100 100]
FPOSXYZ [0 0 100]
FPOSXYZ [0 100 100]
FPOSXYZ [0 100 0]
FPOSXYZ [100 100 0]
FPOSXYZ [100 100 100]
FPOSXYZ [100 0 100]
FPOSXYZ [100 0 0]
____________________________________________________________________
FXY
SETXY
SETXY <coorx><coory>
Déplace la tortue à la position absolue spécifiée par <coorx> et <coory>.
Voir aussi pos et fpos.
Exemple: (Dessine une sinusoïde):
répète 360 [FXY COMPTEUR 100*sin COMPTEUR]
____________________________________________________________________
fxyz
SETXYZ
SETXYZ <coorx><coory><coorz>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Déplace la tortue à la position 3D absolue spécifiée par <coorx> , <coory> et <coorz>.
Voir aussi posxyz et fposxyz.
Exemple:(Dessine une onde en 3D)
perspective
FAIRE.DE_A [i 0 360 10] ~
[FAIRE.DE_A[j 0 360] [fxyz :j :i*sin :j -:i]~
lc fxyz 0 0 -:i bi ]
____________________________________________________________________
fx
SETX
fx <coorx>
Déplace la tortue le long de l'axe des X jusqu'à la coordonnée absolue <coorx>.
Exemple:
fx 100
fy 100
fx 0
fy 0
____________________________________________________________________
fy
SETY
fx <coory>
Déplace la tortue le long de l'axe des Y jusqu'à la coordonnée absolue <coory>.
Exemple:
fx 100
fy 100
fx 0
fy 0
____________________________________________________________________
fz
SETZ
SETZ <coorz>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Déplace la tortue le long de l'axe des Y jusqu'à la coordonnée absolue <coory>.
Exemple:
perspective
lc fx 100 bi
fz 100
fy 100
fz 0
fy 0
____________________________________________________________________
origine
HOME
origine
Délace la tortue au centre de l'écran. Equivalent à FPOS [0 0].
Exemple:
fxy 100 100
origine
____________________________________________________________________
fcap
SETHEADING
SETH
fcap <angle>
Tourne la tortue dans la direction absolue précisée par <angle>,
Le cap est en degrés dans le sens des aiguilles d'une montre.
Le cap 0 set dans la direction de l'axe Y.
Voir aussi cap.
En mode PERSPECTIVE le cap en degrés est positif de l'axe des X vers l'axe des Y en tournant autour de l'axe Z.
Exemple:
fcap 45
montre cap
; 45
____________________________________________________________________
FINCLINAISON
SETROLL
FINCLINAISON <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Donne à la tortue l'inclinaison absolue <angle>.
L'inclinaison est en degrés tourne positif de l'axe positif des X vers l'axe négatif des Z
autour de l'axe des Y.
Il est important de combrendre la notion d'orentation en 3D.
Voir aussi inclinaison.
Exemple:
perspective
finclinaison 45
montre inclinaison
; 45
____________________________________________________________________
FCABREMENT
SETPITCH
FCABREMENT <angle>
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Fixe la valeur absolue du cabrement de la tortue à <angle>.
Le cabrement est en degrés, tourne positif de l'axe négatif des Z vers l'axe positif des Y
autour de l'axe des X.
Voir aussi CABREMENT
Exemple:
perspective
FCABREMENT 45
montre CABREMENT
; 45
____________________________________________________________________
FORIENTATION
SETORIENTATION
FORIENTATION <liste> (librarie )
Cette commande ne fonctionne qu'en mode PERSPECTIVE.
Donne à la tortue une nouvelle orientation absolue désignée par <liste>.
La donnée <lise> est la liste [<inclinaison><cabrement><cap> ] en degrés.
Voir aussi ORIENTATION .
Exemple:
FORIENTATION [180 45 90]
montre ORIENTATION
; [180 45 90]
____________________________________________________________________
ELLIPSE.ARC
ELLIPSE.ARC2
ELLIPSEARC
ELLIPSA2
ELLIPSE.ARC <angle> <mineur> <majeur> <angle initial>
ELLIPS.ARC2 <angle> <mineur> <majeur> <angle initial> (librairie)
ELLIPSE.ARC ne déplace pas la tortue.
Trace tout ou partie d'une ellipse, sur la base du cap de la tortue, de la position de la tortue et de ses données.
L'ellipse commence en arrière du cap de la tortue et balaie en fontion de <angle>, commençant à <angle initial>.
Les dimensions dépendent de <mineur> et <majeur>.
La position actuelle de la tortue se trouvera au centre de l'ellipse.
<mineur> et <majeur> sont les demi-axes.
ELLIPSE.ARC2 débute et finit au bord de l'elllipse.
Exemple:
ELLIPSE.ARC 360 100 200 0
vg
ELLIPSE.ARC 90 50 50 0
vg
ELLIPSE.ARC 90 50 50 90
Exemple (un tonneau en 3D):
vg
perspective
répète 72 [ELLIPSE.ARC 90 100 150 45 ID 5]
____________________________________________________________________
ELLIPSE
ELLIPSE <minor> <major> (librairie )
ELLIPSE2 <minor> <major> (librairie )
Trace une ellipse, sur la base du cap de la tortue, de la position de la tortue et de ses données.
L'ellipse commence en arrière du cap de la tortue.
Les dimensions dépendent de <mineur> et <majeur>.
La position actuelle de la tortue se trouvera au centre de l'ellipse.
<mineur> et <majeur> sont les demi-axes.
Exemple:
vg
ELLIPSE 150 50
vg
ELLIPSE 50 150
vg
dr 45
ELLIPSE 50 150
vg
ELLIPSE 50 50
Exemple (tornade en 3D):
perspective
vg
répète 72 [ellipse 200 100 ID 5 AV 5]
____________________________________________________________________
ARC
ARC
ARC <angle> <rayon> (librairie)
ARC2 <angle> <rayon> (librairie)
ARC ne déplace pas la tortue.
Dessine un arc ( partie de cercle sur la base du cap de la tortue, de la position de la tortue et de ses données.
L'arc commence en arrière du cap de la tortue et balaie en fontion de <angle>.
La dimension dépend de <rayon>.
La position courante de la tortue est au centre.
ARC 360 <rayon> tracera bien sûr un cercle.
ARC2 commence avec la tortue au bord.
Exemple:
vg
arc 360 100
vg
arc 90 50
Exemple : (Fontaine en 3D):
perspective
vg
répète 36 [ID 10 arc2 180 100 arc2 -180 100]
____________________________________________________________________
CERCLE
CIRCLE
CERCLE <rayon> (librairie )
CERCLE2 <rayon> (librairie )
CERCLE ne déplace pas la tortue.
Dessine un cercle sur la base de la position de la tortue et de ses données.
La dimension dépend de <rayon>.
CERCLE2 commence avec la tortue au bord au lieu du centre.
Exemple:
vg
CERCLE 100
CERCLE2 50
Exemple (Une sphère en 3D):
perspective
vg
répète 36 [cercle 100 ID 5]
____________________________________________________________________
TURTLE MOTION QUERIES
____________________________________________________________________
POS
<pos> POS
Rapporte la position courante de la tortue, sous forme d'une liste de deux mombres, les coordonnées X et Y.
<pos> est la liste [<X> <Y>]
Exemple:
fpos [100 100]
montre pos
; [0 100]
____________________________________________________________________
POSXYZ
pos POSXYZ
Rapporte la position courante de la tortue, sous forme d'une liste de trois nombres, les coordonnées X, Y et Z.
<pos> est la liste [<X> <Y> <Z>]
pos:(LIST) List of three numbers representing current X,Y,Z coordinate.
Exemple:
perspective
fposxyz [100 100 50]
montre posxyz
; [100 100 50]
____________________________________________________________________
XCOR
xcor XCOR (library procedure)
Outputs a number, the turtle's X coordinate.
xcor:(NUMBER) The current X coordinate.
Example:
setx 100
show xcor
100
____________________________________________________________________