Site hosted by Angelfire.com: Build your free website today!

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

PRINT

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

 

 

 

____________________________________________________________________