Construtores
01
Palavra 02
Sintaxe: palavra palavra1 palavra2 pal palavra1 palavra2
Descrição: retorna uma palavra composta pela concatenação de palavra1 e
palavra2.
Obs.: se houver mais de dois parâmetros de entrada, deve-se usar parênteses.
Exemplo: >esc pal “LO “GO LOGO
>esc (pal “a “pren “der) aprender
>
Lista 03
Sintaxe : lista objeto1 objeto2
(lista objeto1 objeto2...objeton)
Descrição : retorna uma lista constituída por objeto1 e objeto2.
Obs.: se houver mais de dois parâmetros de entrada deve-se usar parênteses.
Exemplo : >mostre lista “a “b [a b]
>col [a b] “letras
>col lista :letras “c “letras >mostre :letras
[[a b] c]
>mostre (lista “l “o “g “o) [l o g o]
>mostre lista [1 2 3] [a b c] [[1 2 3][a b c]]
Sentença 04
Sintaxe : sentença objeto1 objeto2 sn objeto1 objeto2
Descrição : retorna uma lista formada pela concatenação de objeto1 e objeto2. Obs.: se houver mais de dois parâmetros de entrada deve-se usar parênteses.
Exemplo : >mostre sn “cachorro “quente [cachorro quente]
>coloque (sn [criar] “com “LOGO) “frase >esc :frase
criar com LOGO >
Juntenoinício 05
Sintaxe : juntenoinício objeto lista ji objeto lista
Descrição : retorna a lista do parâmetro de entrada acrescida do objeto no seu início. Exemplo : >esc ji “l [o g o] l o g o >mostre ji “1 [2 3 4] [1 2 3 4] > Juntenofim 06
Sintaxe : juntenofim objeto lista jf objeto lista
Descrição : retorna a lista do parâmetro de entrada acrescida do objeto no seu final.
Exemplo: >coloque jf “u [a e i o] “vogais >esc :vogais
a e i o u
>mostre jf “5[1 2 3 4] [1 2 3 4 5]
Vetor 07
Sintaxe : vetor número
(vetor número1 número2)
Descrição: retorna um vetor de n elementos. O primeiro parâmetro é um número inteiro e positivo que corresponde ao tamanho do vetor. Uma vez definido um vetor, seus elementos são listas vazias até que sejam substituídos por outros elementos através do comando atribuaelvetor. O segundo parâmetro é um número inteiro que corresponde ao valor de origem do vetor. A partir deste valor serão indexadas todas as demais posições do vetor. O primeiro elemento do vetor é o elemento1, a menos que a origem seja dada na entrada (segundo parâmetro); neste caso, o primeiro elemento do vetor terá este número como índice (geralmente 0 é usado como origem).
Exemplo: >atribua “meuvetor (vetor 3 0) >mostre :meuvetor {[] [] []} >atribuaelvetor 2 :meuvetor 1 >atribuaelvetor 1 :meuvetor 2 >atribuaelvetor 0 :meuvetor 3 >mostre :meuvetor {3 2 1}
Uma outra forma de inicializar o vetor do Exemplo acima (utilizando o símbolo @) é: >atr “meuvetor {3 2 1}@0 >mostre :meuvetor {3 2 1} > Matriz 08
Sintaxe: matriz lista
(matriz lista número)
Descrição: Retorna uma matriz (vetor multi-dimensional). O primeiro parâmetro é uma lista formada de um ou mais números inteiros positivos que definem o tamanho desta matriz. Para uma matriz bidimensional, o primeiro elemento da lista refere-se ao número de linhas e o segundo elemento refere-se ao número de colunas. O segundo parâmetro é um número inteiro que corresponde ao valor de origem da matriz. A partir deste valor serão indexadas todas as demais posições da matriz. Caso osegundo parâmetro seja omitido, o primeiro elemento da matriz bidimensional será o elemento [1 1].
Exemplo: >atribua “jogo (matriz [2 3]0) >atribuaelmatriz [0 0] :jogo 1 >atribuaelmatriz [0 1] :jogo 2 >atribuaelmatriz [0 2] :jogo 3 >atribuaelmatriz [1 0] :jogo 4 >atribuaelmatriz [1 1] :jogo 5 >atribuaelmatriz [1 2] :jogo 6 >mostre :jogo {{1 2 3}{4 5 6}}
Outra forma de se definir uma matriz atribuindo valor: >atribua “jogo {{o x x}{x o x}{x o o}}@0 >mostre :jogo
{{o x x}{x o x}{x o o}} >
Listaparavetor 09
Sintaxe: listaparavetor lista lpv lista
(listaparavetor lista número)
(lpv lista número)
Descrição: Retorna um vetor de mesmo tamanho e com os mesmos elementos da
lista dada como parâmetro de entrada. O segundo parâmetro é um número inteiro que corresponde ao valor de origem do vetor a partir do
qual todas as demais posições serão indexadas. Caso o segundo parâmetro seja omitido, o primeiro elemento do vetor será o elemento 1.
Exemplo: >mostre listaparavetor [1 2 3] {1 2 3}
>
Vetorparalista 10
Sintaxe: vetorparalista vetor
vpl vetor
Descrição: retorna uma lista formada pelos mesmos elementos do vetor dado como parâmetro de entrada.
Exemplo: >mostre vetorparalista {1 2 3} [1 2 3]
>mostre vetorparalista {azul amarelo verde} [azul amarelo verde]
combine 11
Sintaxe: combine objeto1 objeto2
Descrição: Se o segundo parâmetro for uma palavra, retorna o mesmo resultado da operação palavra. Se o segundo parâmetro for uma lista, retorna o mesmo resultado da operação juntenoinicio.
Exemplo: >esc combine “a “b ab
>mostre combine “a [b] [a b]
>esc combine “12 “34 1234
>mostre combine [a] [12 34] [[a] 12 34]
>
Inverte 12
Sintaxe: inverte objeto
Descrição: Retorna uma lista invertida ou seja, uma lista com os mesmos elementos do objeto de entrada, porém em ordem invertida.
Exemplo: >mostre inverte[1 2 3] [3 2 1]
>mostre inverte “abc [c b a]
Gerenome 13
Sintaxe: gerenome gn
Descrição: retorna nomes de G1 a Gn dependendo do número de vezes que é executado
Exemplo: >atribua gerenome 1 >mostre :g1
1
>atribua gerenome “olá >mostre :g2 olá >
Selecionadores
14
Primeiro 15Sintaxe : primeiro objeto pri objeto
Descrição : retorna o primeiro elemento de objeto. Se objeto for uma palavra, retorna o primeiro caracter da palavra. Se objeto for uma lista, retorna o primeiro elemento da lista. Se objeto for um vetor, retorna a origem do vetor (isto é, o índice do primeiro elemento do vetor).
Exemplo: >esc pri [a b c d] a
>esc pri “LOGO L
>esc pri [[L][O][G][O]] L >esc pri {a b c} 1 >esc pri {a b c}@0 0 >
Primeiros 16
Sintaxe: primeiros [ lista1 lista2 ... listan] pris [lista1 lista2 ... listan]
Descrição: Retorna uma lista contendo o primeiro elemento de cada lista de entrada (lista1, lista2,..., listan). Se algum elemento das listas de entrada for vazio, retornará erro.
Exemplo: >mostre primeiros [[1 2 3][a b c ]] [1 a]
>
Último 17
Sintaxe : último objeto ult objeto
Descrição : retorna o último elemento do objeto. Se objeto for uma palavra, retorna o último caracter da palavra. Se objeto for uma lista, retorna o último elemento da lista.
Exemplo : >esc último [1 2 3] 3
>esc ult “aqui i
>
Semprimeiro 18
Sintaxe : semprimeiro objeto
sp objeto
Descrição : retorna objeto sem seu primeiro elemento.
Exemplo : >esc sp “LOGO OGO
>coloque [1 2 3] “x >esc sp :x
2 3 >
Semprimeiros 19
Sintaxe: semprimeiros lista1 lista2 .... listan sps lista1 lista2 .... listan
Descrição: retorna uma lista contendo as listas de entrada sem seus primeiros elementos. Se algum dos parâmetros de entrada for vazio, retornará uma mensagem de erro.
Exemplo: >mostre sps [[1 2 3][a b c]] [[2 3][b c]
>mostre sps [[abc][51 43]][[][43]] >
Semúltimo 20
Sintaxe : semúltimo objeto su objeto
Descrição : retorna objeto sem seu último elemento.
Exemplo: >esc su “LOGO LOG >coloque [1 2 3] “x >esc su :x 1 2 > Elemento 21
Sintaxe : elemento número objeto elem número objeto
Descrição: retorna o elemento de posição número no objeto. Se objeto for uma palavra, retorna o caracter que está na posição número da palavra. Se
objeto for uma lista, retorna o elemento que está na posição número da
lista. Se objeto for um vetor, retorna o elemento que está na posição
número do vetor. O número inicial para listas e palavras é 1; o número
Exemplo : >esc elemento 4 “praia i
>esc elemento 3 [rosa cravo violeta] violeta
>atr “x [azul verde] >esc elemento 2 :x verde
>esc elemento 2 {janeiro fevereiro março}@0 março
>
Elementomatriz 22
Sintaxe: elementomatriz lista matriz elmatriz lista matriz
Descrição: retorna o elemento do primeiro parâmetro, o qual deve ser uma lista formada de um ou mais números inteiros positivos, onde o primeiro elemento da lista indica a linha e o segundo elemento da lista indica a coluna. O segundo parâmetro é a definição de uma matriz multi-dimensional, onde o elemento será pesquisado.
Exemplo: >mostre elementomatriz [2 2] {{0 1} {2 3}} 3
>mostre elementomatriz [2] {{0 1} {2 3}} {2 3} >{2 3}
>
Sorteieelemento 23
Sintaxe: sorteieelemento objeto sortel objeto
Descrição: retorna aleatoriamente um elemento de um parâmetro dado, o qual pode ser uma lista ou uma palavra.
Exemplo: >mostre sorteieelemento [1 2 3] 2
>mostre sorteieelemento [1 2 3] 3
>mostre sortel “cola o
>mostre sortel “cola l
>
retire 24
Sintaxe: retire objeto1 objeto2
Descrição: retorna objeto2 após retirar o objeto1 especificado, sem distinção de letras maiúsculas e/ou minúsculas.
Exemplo: >mostre retire “b [a b c b] [a c]
>
retiredup 25
Sintaxe: retiredup objeto
Descrição: retorna o parâmetro dado após retirar a(s) repetição(ões) do(s) elemento(s) duplicado(s), sem distinção de letras maiúsculas e/ou minúsculas. O elemento duplicado que permanece na saída da operação é sempre o que estiver ocupando a posição mais à direita do parâmetro.
Exemplo: >mostre retiredup [a b c b] [a c b]
>mostre retiredup [a b c c b] [a c b]
>mostre retiredup “baab ab
Qualtipo 26
Sintaxe: qualtipo objeto
Descrição: retorna o parâmetro dado exibindo sua natureza, isto é, se o parâmetro for uma palavra, a operação retorna a mesma precedida de aspas; se for um número, retorna o mesmo também precedido por aspas (por se tratar de uma palavra tratada de forma especial pelo LOGO); se for uma lista, retorna a lista mantendo seus colchetes.
Exemplo: >mostre qualtipo “123 “123 >mostre qualtipo 123 “123 >mostre qualtipo [a b c] [a b c] >
modificadores
27
atribuaelvetor 28Sintaxe: atribuaelvetor elemento vetor valor aev elemento vetor valor
Descrição: comando que atribui o novo valor ao elemento do vetor.
Obs.: valor não pode ser uma lista ou um vetor que contém vetor.
Exemplo: >atribua “meuvetor (vetor 3 0) >atribuaelvetor 2 :meuvetor 1 >atribuaelvetor 1 :meuvetor 2 >atribuaelvetor 0 :meuvetor 3 >mostre :meuvetor {3 2 1 } >
atribuaelmatriz 29
Sintaxe: atribuaelmatriz lista matriz valor aem lista matriz valor
Descrição: atribui o novo valor ao elemento da matriz definido em lista.
Exemplo: >atribua “minhamatriz (matriz [2 3]0) >atribuaelmatriz [0 0] :minhamatriz 1 >atribuaelmatriz [0 1] :minhamatriz 2 >atribuaelmatriz [0 2] :minhamatriz 3 >atribuaelmatriz [1 0] :minhamatriz 4 >atribuaelmatriz [1 1] :minhamatriz 5 >atribuaelmatriz [1 2] :minhamatriz 6 >mostre :minhamatriz {{1 2 3}{4 5 6}} > inserepilha 33
Sintaxe: inserepilha pilha objeto ip pilha objeto
Descrição: insere o objeto na pilha. A pilha deve ser uma lista cujo valor inicial é vazio. Os novos objetos são incluídos no topo da lista. Para retirar o último objeto colocado na lista use o comando retirepilha.
Exemplo: >atribua “minhapilha [] >inserepilha “minhapilha 8 >inserepilha “minhapilha 6 >mostre :minhapilha
[6 8]
>mostre retirepilha “minhapilha 6
>mostre :minhapilha [8]
retirepilha 34
Sintaxe: retirepilha pilha
rp pilha
Descrição: retira e retorna o objeto mais recente inserido na pilha através do comando inserepilha.
Exemplo: >atribua “minhapilha [] >inserepilha “minhapilha 4 >inserepilha “minhapilha 7 >mostre :minhapilha
[7 4]
>mostre retirepilha “minhapilha 7
>mostre :minhapilha [4]
>mostre retirepilha “minhapilha 4
>mostre :minhapilha []
>
inserefila 35
Sintaxe: inserefila fila objeto if fila objeto
Descrição: insere o objeto na fila. A fila deve ser uma lista cujo valor inicial é vazio. Os novos objetos são incluídos no final da lista. Para retirar o objeto mais antigo colocado na fila use o comando retirelista.
Exemplo: >atribua “minhafila [] >inserefila “minhafila 1 >inserefila “minhafila 3 >mostre :minhafila
[1 3]
>mostre retirefila “minhafila 1
>mostre :minhafila [3]
retirefila 36
Sintaxe: retirefila fila
rf fila
Descrição: retira e retorna o objeto mais antigo inserido na fila através do comando inserefila.
Exemplo: >atribua “minhafila [] >inserefila “minhafila 5 >inserefila “minhafila 9 >mostre :minhafila
[5 9]
>mostre retirefila “minhafila 5
>mostre “minhafila [9]
>mostre retirefila “minhafila 9 >mostre “minhafila [] >
predicados (dados)
37
épalavra 38Sintaxe: épalavra objetoe épal objetoe
Descrição: retorna a palavra verd sempre que o objeto for uma palavra. Caso contrário, retorna a palavra falso.
Exemplo: >esc épalavra “casa verd
>coloque [tartaruga] “animal >esc épal :animal
falso >
élista 39
Sintaxe: élista objetoe
Descrição: retorna a palavra verd sempre que o objeto for uma lista. Caso contrário, retorna a palavra falso.
Exemplo: >coloque [a b c d] “letras >esc élista :letras
verd
>coloque 2 “num >esc élista :num falso
>
évetor 40
Sintaxe: évetor objeto
Descrição: retorna a palavra verd sempre que o objeto for um vetor. Caso contrário, retorna a palavra falso.
Exemplo: >mostre évetor “casa falso
>mostre évetor {azul amarelo verde} verd
>
évazia 41
Sintaxe: évazia objetoe evazia objetoe
Descrição: retorna a palavra verd sempre que o objeto de entrada for vazio. Caso contrário, retorna a palavra falso.
Exemplo: >coloque [azul] “cor >esc évazia sp :cor verd
>coloque “ “vazia >esc évazia :vazia verd
sãoiguais 42
Sintaxe: sãoiguais objeto1 objeto2 saoiguais objeto1 objeto2
Descrição: retorna a palavra verd se o objeto1 for igual ao objeto2. Caso contrário, retorna a palavra falso.
Exemplo: >esc sãoiguais 1 1 verd >atr “a 1 >atr “b 1 >esc sãoiguais :a :b verd > éanterior 43
Sintaxe: éanterior palavra1 palavra2 éant palavra1 palavra2
Descrição: retorna a palavra verd se palavra1 vem antes de palavra2, conforme a tabela ASCII (ordem alfabética). Caso contrário, retorna a palavra falso. Obs.: a comparação é feita caracter a caracter.
Exemplo: >mostre éanterior “abc “abd verd
>mostre éanterior “abd “abc falso
>mostre éanterior “3 “123 falso
éelemento 45
Sintaxe: éelemento objeto1 objeto2 éelem objeto1 objeto2
Descrição: se objeto2 for uma lista ou um vetor, retorna a palavra verd se objeto1 for igual a um membro ou a um elemento de objeto2; caso contrário, retorna a palavra falso. Se objeto2 for uma palavra, retorna verd se
objeto1 estiver contido em objeto2; caso contrário, retorna falso. Exemplo: >mostre éelemento 1 [1 2 3]
verd
>mostre éelemento 4 [1 2 3] falso
>
énúmero 46
Sintaxe: énúmero objeto énum objeto
Descrição: retorna a palavra verd sempre que o objeto for um número. Caso contrário, retorna a palavra falso.
Exemplo: >esc énúmero [1 2] falso >esc énúmero 3 verd >
operações
48
numelem 49Sintaxe: numelem objetoe nel objetoe
Descrição: retorna o número de elementos que compõem objeto. Se objeto for uma palavra, retorna o número de caracteres da palavra; se objeto for uma lista ou um vetor, retorna o número de elementos da lista ou vetor.
Exemplo: >esc numelem [renato e alice] 3
>esc nel “flávio 6
ascii 50
Sintaxe: ascii “caractere
Descrição: retorna o valor correspondente ao caractere de entrada na tabela ASCII. O caractere pode ser uma letra, um número ou um caractere especial. O valor retornado é um número inteiro entre 0 e 255.
Exemplo: >esc ascii “A 65
>esc ascii “1 49
>esc ascii “a 97
>
caractere 51
Sintaxe: caractere número car número
Descrição: retorna o caractere correspondente a número na tabela ASCII. O parâmetro de entrada deve variar entre 0 e 255.
Exemplo: >esc car 65 A
>esc car 91 [
>
retireaté 52
Sintaxe: retireaté objeto1 objeto2
Descrição: retorna o objeto2 a partir da primeira ocorrência do objeto1. Se nâo existir objeto1 em objeto2, retorna uma lista vazia.
Obs.: objeto2 não pode ser vetor.
Exemplo: >mostre retireaté “b [a b c d] [b c d]
>mostre retireaté “c [a b c d] [c d]
minúscula 53
Sintaxe: minúscula palavra minus palavra
Descrição: retorna uma cópia da palavra de entrada com todas as letras maiúsculas alteradas para letras minúsculas. Algumas letras precedidas de “\” não serão convertidas. Exemplo: \n, o qual é interpretado como caracter de fim de linha.
Exemplo: >mostre minúscula “Casa casa
>mostre minúscula “PROJETO projeto
>
maiúscula 54
Sintaxe: maiúscula palavra maius palavra
Descrição: retorna uma cópia da palavra de entrada com todas as letras maiúsculas alteradas para minúsculas. Algumas letras precedidas de “\” não serão convertidas. Exemplo: \n, o qual é interpretado como caracter de fim de linha.
Exemplo: >mostre maiúscula “Casa CASA
>mostre maiúscula “projeto PROJETO
>
diahora 58
Sintaxe: diahora dh
Descrição: retorna o dia e a hora corrente do sistema no formato de lista. Obs.: retornará na língua do país que estiver definido no Windows.
Exemplo: >mostre diahora
[qua jul 14 23:34:08 1993]
comunicação
59
transmissores
60
ComunicaçãoDescrição geral sobre transmissores.
Obs: se existir uma variável denominada profundidadelimitedeimpressão com um valor inteiro não negativo, então listas complexas e estrututras de vetores vão ser impressas apenas até a profundidade permitida. Isto é, membros de membros de ...de membros vão se exibidos apenas até certa distância. Os elementos ou membros omitidos porque eles estão em uma profundidade além da limite são indicados por uma reticências para cada um, assim uma lista com profundidade acima do limite de dois elementos será escrita como [... ...].
Se existir uma variável denominada tamanholimitedeimpressão com um valor inteiro não negativo, então apenas um certo número de elementos ou membros de qualquer vetor ou lista serão impressos a partir do início. Uma única reticências substitui todos os objetos ausentes da estrutura. O tamanho limite também se aplica ao número de caracteres impressos em uma palavra, contudo um tamanholimitedeimpressão entre 0 e 9 será sempre tratado como se fosse 10 quando aplicado a palavras. Esse limite se aplica não apenas ao objeto impresso de nível mais alto mas a qualquer sub-estrutura dentro dele.
Escreva 61
Sintaxe : escreva objeto esc objeto
Descrição : mostra na janela de comandos o objeto e posiciona o cursor no início da linha seguinte.
Obs.: se o objeto for uma lista, os colchetes mais externos não serão mostrados. Se o objeto for um vetor, as chaves externas serão mantidas.
Exemplo: >esc “LOGO LOGO
>atr “a [lista de objetos] >esc :a
lista de objetos
>esc [criar [com] LOGO] criar [com] LOGO
>esc {pêra laranja uva} {pêra laranja uva}
mostre 63
Sintaxe : mostre objeto mo objeto
Descrição : mostra na janela de comandos o objeto, conservando os colchetes externos se o objeto for uma lista ou as chaves, se o objeto for um vetor.
Exemplo : >mostre “LOGO LOGO
>mostre [aprendendo com LOGO] [aprendendo com LOGO]
>mostre leial
(digite: LOGO e clique Ok) [LOGO]
>mostre {sol terra mar} {sol terra mar}
>
recebedores
64
leialista 65
Sintaxe : leialista leial
Descrição : permite a entrada de caractere, palavra, frase ou arquivo via teclado, retornando uma lista. Se a entrada for um arquivo, o retorno da leitura de fim de arquivo será uma palavra vazia (e não uma lista vazia). Se a entrada contém barra invertida ( \ ), barra vertical ( | ) ou til ( ~), esses caracteres não farão parte da lista de saída pois eles serão tratados no seu uso efetivo. O ponto-e-vírgula ( ; ) não será tratado como comentário.
Exemplo: >mostre leialista
(digite: LOGO teste e clique Ok) [LOGO teste]
>coloque leialista “a (digite: casa bela e clique Ok) >mostre :a
[casa bela] >
leiapalavra 66
Sintaxe: leiapalavra leiap
Descrição: permite a entrada de um caracter, palavra, frase ou arquivo via teclado, retornando uma palavra. Se a entrada for um arquivo, o retorno da leitura de fim de arquivo será uma lista vazia (e não uma palavra vazia).
Nos casos em que o til ( ~ ) for usado para continuação de linha, a palavra de retorno incluirá o til ( ~ ) e os caracteres da nova linha, mostrando exatamente o que o usuário entrou. Barras verticais também serão preservadas na saída, mas o caracter seguinte à barra invertida terá 128 somado a sua representação.
Exemplo: >mostre leiapalavra
(digite: casa bela e clique Ok) casa bela
>coloque leiapalavra “a
(digite: LOGO teste e clique Ok) >mostre :a LOGO teste > leiacaractere 67 Sintaxe : leiacaractere leiac
Descrição : permite a entrada de um caractere via teclado, retornando uma palavra. Se a entrada for um arquivo, o retorno da leitura de fim de arquivo será uma lista vazia. Os caracteres barra invertida ( \ ), barra vertical ( | ) e til ( ~ ) não tem significado especial para este comando.
Exemplo : >esc leiacaractere
(O LOGO espera a entrada de um caractere qualquer.) (Digite a e clique Ok)
a
>coloque leiacaractere “letra
(O LOGO espera a entrada de um caractere qualquer.) (Digite 2 e clique Ok)
>esc :letra 2
>
acesso a arquivos
70
abraparaler 71
Sintaxe: abraparaler arquivo abler arquivo
Descrição: abre o arquivo para leitura apontando para o início do arquivo.
Exemplo: >abraparaescrever “nomes.dat >mudeescrita “nomes.dat >escreva “marcos >escreva “paulo >mudeescrita [] >fechearq “nomes.dat >abraparaler “nomes.dat >mudeleitura “nomes.dat >repita 2 [mostre leialista] [marcos] [paulo] >mudeleitura [] >fechearq “nomes.dat > abraparaescrever 72
Sintaxe: abraparaescrever arquivo
abesc arquivo
Descrição: abre o arquivo para escrita. Se o arquivo já existe, ele será deletado e um novo arquivo vazio será criado.
Exemplo: >abraparaescrever “cores.dat >mudeescrita “cores.dat >escreva “vermelho >escreva “azul >mudeescrita [] >fechearq “cores.dat >abraparaler “cores.dat >mudeleitura “cores.dat >repita 2 [mostre leialista] [vermelho]
>mudeleitura [] >fechearq “cores.dat >
abraparaadicionar 73
Sintaxe: abraparaadicionar arquivo
abadi arquivo
Descrição: abre o arquivo para adicionar novos dados. Se o arquivo já existe, ele será mantido e os novos dados serão colocados no final do arquivo.
Exemplo: >abraparaescrever “semana.dat >mudeescrita “semana.dat >escreva “segunda >escreva “terça >mudeescrita [] >fechearq “semana.dat >abraparaadicionar “semana.dat >mudeescrita “semana.dat >escreva “quarta >escreva “quinta >mudeescrita [] >fechearq “semana.dat >abraparaler “semana.dat >mudeleitura “semana.dat >repita 4 [mostre leialista] [segunda] [terça] [quarta] [quinta] >mudeleitura [] >fechearq “semana.dat > abraparaatualizar 74
Sintaxe: abraparaatualizar arquivo
abatu arquivo
Descrição: abre o arquivo para leitura e escrita apontando para o final do arquivo. Obs.:cada arquivo aberto tem somente uma posição, a qual serve para
leitura e escrita ao mesmo tempo, portanto todos os comandos que operam com arquivos terão seus conteúdos alterados.
Exemplo: >abraparaescrever “frutas.dat >mudeescrita “frutas.dat
>escreva “banana >mudeescrita []
>fechearq “frutas.dat
>abraparaatualizar “frutas.dat >mudeleitura “frutas.dat
>repita 2 [mostre leialista] [uva] [banana] >mudeescrita “frutas.dat >mudeposescrita 4 >escreva “laranja >mudeescrita [] >mudeleitura “frutas.dat >mudeposleitura 0
>repita 3 [mostre leialista] [uva] [banana] [laranja] >fechearq “frutas.dat > fechearq 75
Sintaxe: fechearq arquivo
Descrição: fecha o arquivo especificado.
Exemplo: >abraparaescrever “estações.dat >mudeescrita “estações.dat >escreva “primavera >escreva “verão >escreva “outono >escreva “inverno >mudeescrita [] >fechearq “estações.dat >abraparaler “estações.dat >mudeleitura “estações.dat >repita 4 [mostre leialista] [primavera]
[verão] [outono] [inverno]
>fechearq “estações.dat >
arqabertos 76
Sintaxe: arqabertos
Descrição: retorna uma lista cujos elementos membros são os nomes dos arquivos
abertos.
Exemplo: >abraparaescrever “semana.dat >abraparaescrever “meses.dat >mostre arqabertos [meses.dat semana.dat] > fechetodosarq 77 Sintaxe: fechetodosarq
Descrição: fecha todos os arquivos abertos.
Exemplo: >fechetodosarq >abraparaescrever “nomes.dat >abraparaescrever “cidades.dat >mostre arqabertos [cidades.dat nomes.dat] >fechetodosarq >mostre arqabertos [] > eliminearq 78
Sintaxe: eliminearq arquivo
Descrição: elimina o arquivo especificado, o qual não poderá estar aberto.
Exemplo: >abraparaescrever “cores.dat >mudeescrita “cores.dat >escreva “azul >escreva “amarelo >mudeescrita [] >fechearq “cores.dat >abraparaler “cores.dat >mudeleitura “cores.dat >repita 2 [mostre leialista] [azul]
>mudeleitura [] >fechearq “cores.dat >eliminearq “cores.dat >abraparaler “cores.dat
erro: arquivo não encontrado >
registre 79
Sintaxe: registre arquivo
Descrição: cria um novo arquivo de entrada e registra neste arquivo todas as coisas que são lidas através do teclado ou escritas no vídeo. O objetivo é criar uma cópia de uma sessão LOGO, que contém caracteres, prompt e instruções.
Exemplo: >registre “comandos.dat >pf 100
>pd 90
>nãoregistre
>abraparaler “comandos.dat >mudeleitura “comandos.dat >repita 3 [mostre leialista] [pf 100] [pd 90] [nãoregistre] >mudeleitura [] >fechearq “comandos.dat > nãoregistre 80 Sintaxe: nãoregistre
Descrição: pára de registrar informações no arquivo definindo com registre e fecha este arquivo.
Exemplo: >registre “comandos.dat >pf 100
>pd 90
>nãoregistre
>abraparaler “comandos.dat >mudeleitura “comandos.dat >repita 3 [mostre leialista] [pf 100]
[pd 90]
[nãoregistre] >mudeleitura []
mudeleitura 81
Sintaxe: mudeleitura arquivo mudelei arquivo
Descrição: ativa o arquivo para leitura de dados, o qual será usado por leialista, etc. É necessário que o arquivo tenha sido anteriormente aberto com abraparaler ou abraparaatualizar .
Se no lugar do arquivo for especificado uma lista vazia, a leitura de dados será através do teclado.
Exemplo: >abraparaescrever “meses.dat >mudeescrita “meses.dat >escreva “janeiro >escreva “fevereiro >mudeescrita [] >fechearq “meses.dat >abraparaler “meses.dat >mudeleitura “meses.dat >repita 2 [mostre leialista] [janeiro] [fevereiro] >mudeleitura [] >fechearq “meses.dat > mudeescrita 82
Sintaxe: mudeescrita arquivo mudeesc arquivo
Descrição: ativa o arquivo para gravação de dados, o qual será usado por escreva, etc... É necessário que o arquivo tenha sido anteriormente aberto com abraparaescrever, abraparaadicionar ou abraparaatualizar. Se no lugar do arquivo for especificada uma lista vazia, os dados serão mostrados no vídeo.
Exemplo: >abraparaescrever “tarefas.dat >mudeescrita “tarefas.dat >escreva “estudar >escreva “lavar >mudeescrita [] >fechearq “tarefas.dat >abraparaler “tarefas.dat >mudeleitura “tarefas.dat >repita 2 [mostre leialista] [estudar]
[lavar] >mudeleitura [] >fechearq “tarefas.dat > arqleitura 83 Sintaxe: arqleitura
Descrição: retorna o nome do arquivo ativo para leitura. Se o retorno for uma lista vazia, a leitura de dados será feita através do teclado.
Exemplo: >abraparaler “semana.dat >mudeleitura “semana.dat >mostre arqleitura semana.dat >fechearq “semana.dat > arqescrita 84 Sintaxe: arqescrita
Descrição: retorna o nome do arquivo ativo para gravação.Se o retorno for uma lista vazia, os dados serão mostrados no vídeo.
Exemplo: >abraparaescrever “semana.dat >mudeescrita “semana.dat
>mostre arqescrita semana.dat
>
mudeposleitura 85
Sintaxe: mudeposleitura número
Descrição: modifica o ponteiro do arquivo de leitura. O próximo leialista (ou comando similar) começará a partir da posição definida em número. Por
Exemplo, mudeposleitura 0 começará a ler no início do arquivo. Este
comando não tem sentido se a leitura de dados estiver sendo feita através do teclado.
Exemplo: >abraparaescrever “cores.dat >mudeescrita “cores.dat
>escreva “vermelha >mudeescrita [] >fechearq “cores.dat >abraparaler “cores.dat >mudeleitura “cores.dat >mostre leialista [verde] >mudeposleitura 0 >mostre leialista [verde] >mudeleitura [] >fechearq “cores.dat > mudeposescrita 86
Sintaxe: mudeposescrita número
Descrição: modifica o ponteiro do arquivo de saída. O próximo escreva (ou comando similar) começará a partir da posição definida em número. Por
Exemplo, mudeposescrita 0 começará a escrever no início do arquivo.
Este comando não tem sentido se a saída estiver sendo feita através do vídeo.
Exemplo: >abraparaescrever “jogos.dat >mudeescrita “jogos.dat >escreva “peteca >mudeposescrita 0 >escreva “bon >mudeescrita [] >fechearq “jogos.dat >abraparaler “jogos.dat >mudeleitura “jogos.dat >mostre leialista [bon] >mostre leialista [a] >mudeleitura [] >fechearq “jogos.dat >
posleitura 87
Sintaxe: posleitura
Descrição: retorna a posição do arquivo de leitura de dados.
Exemplo: >abraparaescrever “animal.dat >mudeescrita “animal.dat >escreva “cavalo >escreva “gato >mudeescrita [] >fechearq “animal.dat >abraparaler “animal.dat >mudeleitura “animal.dat
>repita 2 [mostre posleitura mostre leialista] 0 [cavalo] 8 [gato] >mudeleitura [] >fechearq “animal.dat > posescrita 88 Sintaxe: posescrita
Descrição: retorna a posição do arquivo de gravação de dados.
Exemplo: >abraparaescrever “esportes.dat >mudeescrita “esportes.dat
>atribua “pontos []
>atribua “pontos jf posescrita :pontos >escreva “natação
>atribua “pontos jf posescrita :pontos >escreva “corrida
>atribua “pontos jf posescrita :pontos >mudeescrita []
>fechearq “esportes.dat >mostre :pontos
[0 9 18] >
éfimarq 89
Sintaxe: éfimarq
Descrição: retorna verd se não há mais caracteres para serem lidos do arquivo de entrada; retorna falso caso contrário.
Exemplo: >abraparaescrever “cores.dat >mudeescrita “cores.dat >escreva “vermelho >escreva “amarelo >mudeescrita [] >fechearq “cores.dat >abraparaler “cores.dat >mudeleitura “cores.dat
>repita 2 [mostre leialista mostre éfimarq ] [vermelho] falso [amarelo] verd >mudeleitura [] >fechearq “cores.dat >
comunicação
90
abraporta 91Sintaxe: abraporta palavra
Descrição: usado para obter acesso às portas seriais e paralelas do computador. Uma vez que a porta desejada estiver aberta, você pode ler (leiavetorporta, leiacaractereporta) ou gravar (escrevavetorporta, escrevacaractereporta).
As características da porta podem ser modificadas com mudemodoporta.
Apenas uma porta pode ser aberta por vez. Uma vez encerrado o uso de uma porta, esta deverá ser fechada com fecheporta. Não confundir este comando com portaentrada e portasaída, que são para portas de comunicação com o hardware.
Obs: em palavra deverá ser definida a porta a ser aberta: com1-com4 e lpt1- lpt3.
Exemplo: >abraporta “com1 >fecheporta
fecheporta 92
Sintaxe: fecheporta
Descrição: fecha uma porta que foi aberta com o comando abreporta.
Exemplo: >abraporta “com1 >fecheporta
>
descarregueporta 93
Sintaxe: descarregueporta número
Decsrição: descarrega as filas para as porta de entrada ou saída.
Obs.:em número deverá ser especificado a fila a ser descarregada: 0 (saída) ou 1 (entrada).
Exemplo: >abraporta “com1 >descarregueporta 1 >fecheporta
>
mudemodoporta 94
Sintaxe: mudemodoporta palavra
mudemp palavra
Descrição: usado para modificar as características (velocidade, paridade, data bits e stop bits) da porta, as quais também podem ser modificadas pelo ícone PORTAS do Painel de Controle do Windows.
Obs: em palavra deve ser definido o que se quer modificar (“com: velocidade, paridade, data, stop) no mesmo formato do comando MODE do DOS.
Exemplo: >abraporta “com1
>mudemodoporta “com1:9600,n,8,1 >fecheporta
leiavetorporta 95
Sintaxe: leiavetorporta número1 número2 leiavp número1 número2
Decsrição: lê a porta que está aberta e armazena os dados em um vetor de buffer definido em numero2. O comando tentará ler tantos caracteres quanto for o valor de número2, (se estiverem disponíveis), e devolverá o atual número de bytes lidos.
número1: é o número de caracteres a serem lidos pela porta. Você pode
usar um número maior que o tamanho do vetor apenas para preenche-lo.
número2:é um vetor de buffer para onde os dados serão transferidos. saída: é o número de bytes lidos de porta.
Exemplo: >abraporta “com1
>escreva sentença [Enviando...] escrevavetorporta 3 listaparavetor map [ascii ?] vetorparalista listaparavetor “at
Enviando 2
>atribua “y escrevacaractereporta 13 >espere 60
>atribua “buff {0 0 0 0 0 0 0 0 0 0}
>escreva sentença [Recebendo...] leiavetorporta 10 :buff
Recebendo 9
>escreva sentença [Data Rx...] map [car] retire [] vetorparalista :buff Data RX...at|| ok | >fecheporta > leiacaractereporta 96 Sintaxe: leiacaractereporta leiacp
Descrição: lê um byte da porta que está aberta e o devolve como um inteiro. O comando retornará “-1” se nenhum caractere estiver disponível.
Exemplo: >abraporta “com1
>atribua “y escrevacaractereporta ascii “a >atribua “y escrevacaractereporta ascii “f >atribua “y escrevacaractereporta 13
>espere 60
>escreva “lendo... lendo...
>repita 10 [atribua “x leiacaractereporta se não :x=-1 [escreva car :x]]
>escreva “ at || ok | >fecheporta > ecsrevavetorporta 97
Sintaxe: escrevavetorporta número1 número2
escvp número1 número2
Descrição: envia um dado vetor de buffer para a porta que está aberta. Este comando devolve o número atual de bytes enviados.
número1: é o número de caracteres a serem escritos.
número2:é um vetor de buffer onde os dados de saída serão lidos. saída: é o número de bytes escritos na porta.
Exemplo: >abraporta “com1
>escreva sentença [Enviando...] escrevavetorporta 3 listaparavetor map [ascii ?] vetorparalista listaparavetor “at
Enviando 2
>atribua “y escrevacaractereporta 13 >espere 60
>atribua “buff {0 0 0 0 0 0 0 0 0 0}
>escreva sentença [Recebendo...] leiavetorporta 10 :buff
Recebendo 9
>escreva sentença [Data Rx...] map [car] retire [] vetorparalista :buff
Data RX...at|| ok |
>fecheporta >
escrevacaractereporta 98
Sintaxe: escrevacaractereporta número
esccp número
Descrição: envia um byte para a porta que está aberta e retorna o número de bytes enviados (0 ou 1).
número: é o byte que será enviado para a porta. saída: é o número de bytes escritos (0 ou 1).
Exemplo: >abraporta “com1
>atribua “y escrevacaractereporta ascii “a >atribua “y escrevacaractereporta ascii “f >atribua “y escrevacaractereporta 13
>espere 60
>escreva “lendo... lendo...
>repita 10 [atribua “x leiacaractereporta se não :x=-1 [escreva car :x]]
>escreva “ at ||
ok |
>fecheporta >
acesso ao mouse e terminal
103
temarq 104
Sintaxe: temarq
Descrição: retorna verd se houver caracteres esperando para serem lidos. Se a entrada for um arquivo, este comando é equivalente a éfimarq. Se a entrada for o teclado, então o echo é desligado e o terminal é colocado em modo cbreak (um caracter por vez ao invés de uma linha por vez). Ela permanece nesse modo até que alguma leitura de modo-de-linha seja registrada (ex: leialista).
Ativetecla 105
Sintaxe: ativetecla tecla
Descrição: Habilita a rastrear diretamente os eventos do teclado. Para saber qual tecla está envolvida utilize asctecla em seu procedimento.
Obs.: a janela para onde o foco foi direcionado, deve ter o foco (não o comando) para interceptar os eventos da tecla. Isto pode ser forçado usando mudefoco [SLOGO para Windows] quando você dispara este comando.
Exemplo: >ativetecla [escreva car asctecla] >mudefoco [SLOGO para Windows] (digite: a) a (digite: b) b >desativetecla > desativetecla 106 Sintaxe: desativetecla
Descrição: Desabilita o rastreamento de eventos do teclado.
Exemplo: >ativetecla [escreva car asctecla] >mudefoco [SLOGO para Windows] (digite: a) a (digite: b) b >desativetecla > asctecla 107 Sintaxe: asctecla
Descrição: retorna o valor (em ascii) da última tecla pressionada ou liberada.
Exemplo: >ativetecla [escreva car asctecla] >mudefoco [SLOGO para Windows] (digite: a) a (digite: b) b >desativetecla >
ativemouse 108
Sintaxe: ativemouse lista1 lista2 lista3 lista4 lista5
Descrição: Habilita o controle direto dos eventos do mouse. Para saber onde se encontrava o mouse quando um botão foi apertado ou quando foi movido use posmouse no seu procedimento de botão ou movimentação. Observe que a janela “screen” (não a janela de comando). Deve ter o focus para interceptar comandos do mouse.
lista1.: é uma lista de comandos LOGO (ou um nome de procedimento)
a serem executados quando o botão esquerdo do mouse for pressionado.
lista2.: é uma lista de comandos LOGO (ou um nome de procedimento)
a serem executados quando o botão esquerdo do mouse for liberado.
lista3.: é uma lista de comandos LOGO (ou um nome de procedimento)
a serem executados quando o botão direito do mouse for pressionado.
lista4.: é uma lista de comandos LOGO (ou um nome de procedimento)
a serem executados quando o botão direito do mouse for liberado.
lista5.: é uma lista de comandos LOGO (ou um nome de procedimento)
a serem executados quando o mouse é movimentado.
Exemplo: >un
>ativemouse [mudepos posmouse ul][un][][][mudepos posmouse]
=> mova o mouse na janela [SLOGO para Windows] e pressione o botão esquerdo para desenhar. >desativemouse
>
desativemouse 109
Sintaxe: desativemouse
Descrição: desabilita o controle dos eventos do mouse.
Exemplo: >un
>ativemouse [mudepos posmouse ul][un][][][mudepos posmouse]
=> mova o mouse na janela [SLOGO para Windows] e pressione o botão esquerdo para desenhar. >desativemouse
posmouse 110
Sintaxe: posmouse
Descrição: retorna a posição do mouse no último evento do mouse.
Exemplo: >un
>ativemouse [mudepos posmouse ul][un][][][mudepos posmouse]
=> mova o mouse na janela [SLOGO para Windows] e pressione o botão esquerdo para desenhar. >desativemouse
>
limpejanelacomandos 111
Sintaxe: limpejanelacomandos ljc
Descrição: apaga a janela de comandos da tela.
Exemplo: >escreva “teste teste >ljc >
aritmética
115
operações numéricas
116
soma 117Sintaxe : soma número1 número2
(soma número1 número2...númeron)
Descrição : retorna o valor da soma dos números especificados
Exemplo : >esc soma 200 300 500
>pf soma 50 30 >
diferença 118
Sintaxe : diferença número1 número2 dif número1 número2
Descrição: retorna o resultado da diferença entre número1 e número2.
Exemplo: >esc diferença 50 10 40
>
oposto 119
Sintaxe: oposto número
Descrição: retorna o valor oposto do resultado de expressão do parâmetro dado.
Exemplo: >mostre oposto -3 3 >mostre oposto 3 + 4 (significa - (3+4)= -(7)= -7) -7 >mostre oposto -3 + 4 -1 > produto 120
Sintaxe : produto número1 número2 prod número1 número2
(produto número1 número2...númeron) (prod número1 número2...númeron)
Descrição : retorna o produto dos números especificados.
Exemplo : >esc produto 300 2 600 >coloque 5 “n1 >coloque 6 “n2 >esc produto :n1 :n2 30 >
quociente 121
Sintaxe : quociente número1 número2 quoc número1 número2
Descrição : retorna o quociente da divisão inteira de número1 por número2.
Exemplo : >esc quociente 1000 2 500
>coloque 50 “n1 >coloque 25 “n2
>esc quociente :n1 :n2 2
>esc quociente 100 quociente 10 2 20
>
resto 122
Sintaxe : resto número1 número2
Descrição : retorna o valor do resto da divisão inteira de número1 por número2.
Exemplo : >esc resto 10 3 1 >atribua “a 5 >atribua “b 3 >esc resto :a :b 2 > inteiro 123
Sintaxe : inteiro número int número
Descrição : retorna a parte inteira de número.
Exemplo : >esc int 2.345 2
>esc int 8.678 8
arredonde 124
Sintaxe : arredonde número arre número
Descrição : retorna número, arredondado para o inteiro mais próximo.
Exemplo : >esc arredonde 2.45 2
>esc arredonde 2.5 3
>
raizq 125
Sintaxe : raizq número
Descrição : retorna a raiz quadrada de número.
Exemplo : >esc raizq 2 1.41
>
potência 126
Sintaxe: potência número1 número2
Descrição: retorna número1 (base) elevado à potência de número2 (expoente). Se
nùmero1 for negativo, então número2 precisa ser inteiro Exemplo: >mostre potência 2 3
8 >mostre potência 2 -3 0,125 >mostre potência 9 0 1 >mostre potência -2 3 -8 >
exponencial 127
Sintaxe: exponencial número
exp número
Descrição: retorna e(2.718281828+) elevado à potência de número.
Exemplo: >mostre exponencial 2 7.38905609...
>
log10 128
Sintaxe: log10 número
Descrição: retorna o logaritmo comum de número.
Exemplo: >mostre log10 1 0 >mostre log10 100 2 > ln 129 Sintaxe: ln número
Descrição: retorna o logaritmo natural de número.
Exemplo: >mostre ln 1 0 >mostre ln exp 2 2 > sem 130
Sintaxe: sen número
Exemplo: >esc sen 0 0.00 >esc sen 90 1 > senrd 131
Sintaxe: senrd radianos
Descrição: retorna o seno do valor dado em radianos.
Exemplo: >atribua “pi 4 * arctanrd 1 >mostre senrd 0
0
>mostre senrd :pi 1.2e -16
>
cos 132
Sintaxe : cos número
Descrição : retorna o cosseno do ângulo especificado por número em graus. Exemplo : >esc cos 45
0.707... >esc cos 90 0 >esc cos 180 -1 > cosrd 133
Sintaxe: cosrd radianos
Descrição: retorna o cosseno do valor dado em radianos.
Exemplo: >atribua “pi 4 * arctanrd 1 >mostre cosrd 0
1
>mostre cosrd :pi -1
arctan 134
Sintaxe : arctan número
Descrição : retorna o arcotangente, em graus, de número. Com 2 entradas (x y), retorna o arcotangente de y/x, se x for diferente de zero, ou 90 ou -90 dependendo do sinal de y, se x = zero.
Exemplo : >esc arctan 1 45
>esc arctan 0 0.00
>
arctanrd 135
Sintaxe: arctanrd número
(arctanrd número1 número2)
Descrição: retorna o arcotangente, em radianos. Com 2 entradas (x,y), retorna o
arcotangente de y/x, se x for diferente de zero, ou pi/2 ou -pi/2
dependendo do sinal de y, se x for igual a zero.
Exemplo: >mostre arctanrd 1 0.785398163397448 >
predicados (aritmeticos)
136
émenor 137
Sintaxe: émenor número1 número2
Descrição: retorna verd se número1 for menor que número2. Caso contrário, retorna falso.
Exemplo: >mostre émenor 4 3 falso
>mostre émenor 7 9 >verd
émaior 138
Sintaxe: émaior número1 número2
Descrição: retorna verd se número1 for maior que número2. Caso contrário, retorna falso.
Exemplo: >mostre émaior 5 6 falso >mostre émaior 8 3 >verd >
números randômicos
139
sorteienúmero 140Sintaxe: sorteienúmero número sortnum número
Descrição: retorna um número aleatório inteiro e positivo entre 0 (zero) e o número especificado.
Exemplo: >esc sorteienúmero 40
(Será gerado um número aleatoriamente) >esc sorteienúmero 40
(Será gerado um número aleatoriamente) >esc sorteienúmero 40
(Será gerado um número aleatoriamente) >
resorteienúmero 141
Sintaxe: (resorteienúmero número) (resortnum número)
Descrição: reproduz o resultado do comando sorteienúmero. Originalmente a sequência dos números randômicos é diferente para cada vez que o LOGO é usado. Se for necessário que a mesma sequência seja repetida, use resorteienúmero antes da primeira chamada do sorteienúmero. Se for necessário mais de uma sequência de repetição, resorteienúmero deve ser seguido de um número inteiro; cada entrada possível seleciona uma sequência única de números.
Exemplo: >(resorteienúmero 1234)
>repita 2 [mostre sorteienúmero 10] 6
3
>(resorteienúmero 1234)
>repita 2 [mostre sorteienúmero 10] 6 3 >
formatação de impressão
142
form 143Sintaxe: form número1 número2 número3
Descrição: retorna uma palavra contendo uma representação numérica de número1, possivelmente precedida por espaços, com a quantidade de caracter definida em número2, incluindo exatamente o número de dígitos indicado em número3 depois do ponto decimal. Se número3 (precisão) for 0, então não existirá casas decimais.
Exemplo: >mostre form 5.124 6 2 > 5.12
>
operações bitwise
144
bite 145
Sintaxe: bite número1 número2
(bite número1 número2 número3...)
Descrição: retorna o bitwise e das entradas, os quais devem ser números inteiros.
Exemplo: >mostre bite 5 2 o
>mostre bite 5 1 1
bitou 146
Sintaxe: bitou número1 número2
(bitou número1 número2 número3...)
Descrição: retorna o bitwise ou das entradas, as quais devem ser números inteiros.
Exemplo: >mostre bitou 5 2 7
>mostre bitou 5 1 5
>
bitxou 147
Sintaxe: bitxou número1 número2
(bitxou número1 número2 número3...)
Descrição: retorna o bitwise ou exclusivo das entradas, as quais devem ser números inteiros.
Exemplo: >mostre bitxou 5 2 7
>mostre bitxou 5 1 4
>
bitnão 148
Sintaxe: bitnão num
Descrição: retorna o bitwise não das entradas, as quais devem ser números inteiros.
Exemplo: >mostre bitnão 1 -2
>mostre bitnão 5 -6
operações lógicas
151
& 152
Sintaxe : & predicado1 predicado2
(& predicado1 predicado2...predicadon)
Descrição: retorna a palavra verd se os parâmetros de entrada forem verdadeiros. Caso contrário, retorna a palavra falso.
Exemplo : >esc & 2=2 4<5 verd >esc & 2=2 4>5 falso > ou 153
Sintaxe: ou predicado1 predicado2
(ou predicado1 predicado2 ... predicadon)
Descrição: retorna a palavra verd se uma das entradas for verdadeira. Caso contrário retorna falso. Exemplo: >mostre ou 2=2 4<5 verd >mostre ou 2=3 4>5 falso > não 154
Sintaxe: não predicado
Descrição: retorna a palavra verd se o predicado for falso. Caso contrário, retorna a palavra falso.
Exemplo: >esc não 4=5 verd
>esc não 5=5 falso
gráficos
155
movimentos da tartaruga 156
parafrente 157
Sintaxe : parafrente número pf número
Descrição : movimenta a tartaruga para frente o número de passos, ou seja, desloca a tartaruga no sentido em que ela estiver apontando.
Exemplo : >tat >pf 50 >
paratrás 158
Sintaxe: paratrás número pt número
Descrição: movimenta a tartaruga para trás o número de passos, ou seja, desloca a tartaruga no sentido oposto ao que ela estiver apontando.
Exemplo: >tat >pt 50
paraesquerda 159
Sintaxe : paraesquerda número pe número
Descrição: gira a tartaruga para a esquerda o número especificado em graus.
Exemplo : >tat >pe 60
paradireita 160
Sintaxe: paradireita número pd número
Descrição: gira a tartaruga para a direita o número especificado em graus.
Exemplo: >tat >pd 45 >
mudeposição 161
Sintaxe: mudeposição lista mudepos lista
Descrição: movimenta a tartaruga para uma posição absoluta da tela. O argumento é uma lista de dois números, onde número1 representa a coordenada X e número2 representa a coordenada Y.
Exemplo: >tat >mudepos [0 100] >mudepos [100 100] >mudepos 100 0] >mudepos [0 0] > mudexy 162
Sintaxe: mudexy número1 número2
Descrição: movimenta a tartaruga para uma posição absoluta de tela. O argumento são dois números onde número1 representa a coordenada X e número2 representa a coordenada Y. Exemplo: >tat >mudexy 0 100 >mudexy 100 100 >mudexy 100 0 >mudexy 0 0 > mudex 163
Sintaxe: mudex número
Descrição: movimenta a tartaruga até o ponto com coordenada X especificado por número, o qual representa a coordenada X, mantendo inalteradas sua coordenada Y e sua direção.
Exemplo: >tat
>mudex 300 >
mudey 164
Sintaxe: mudey número
Descrição: movimenta a tartaruga para o ponto especificado por número, o qual representa a coordenada Y, mantendo inalteradas sua coordenada X e sua direção. Exemplo: >tat >pd 90 pf 290 >mudey 180 > paracentro 165 Sintaxe: paracentro pc
Descrição: movimenta a tartaruga para o centro da tela (posição [0 0]), sem alterar sua direção.
Exemplo: antes depois
>tat >pc
>pf 100 pd 90 >
mudedç 166
Sintaxe : mudedç número md número
Descrição : muda a direção da tartaruga para o número correspondente a graus. A direção 0 corresponde ao Norte, 90 corresponde a Leste, 180 ao Sul e 270 ao Oeste .
Exemplo : antes depois
>tat pd 80 pf 100 >mudedç 90 pf 100
arco 167
Sintaxe: arco número1 número2
Descrição: a tartaruga não se movimenta neste comando, ela apenas desenha um arco (parte de um círculo) baseado na direção apontada pela tartaruga, na posição da tartaruga e argumentos dados, onde número1 especifica a medida do ângulo e número2 especifica o tamanho do raio. A posição corrente da tartaruga será o centro do arco.
Exemplo: >arco 360 100 >arco 360 50 >arco 180 70
>
queries para movimentação da tartaruga
168
posição 169
Sintaxe: posição pos
Descrição: retorna uma lista composta de dois números referentes à posição atual (coordenadas [X,Y]) da tartaruga.
Exemplo: >tat >pd 45 pf 200 >esc pos 141.42 141.42 coorx 170 Sintaxe : coorx
Descrição : retorna o valor da coordenada cartesiana X da posição atual da tartaruga. No estado inicial do LOGO a coordenada X da tartaruga é 0.
Exemplo : >tat pd 90 pf 100 pe 90 pf 100 >esc coorx
99.999...
coory 171
Sintaxe : coory
Descrição : retorna o valor da coordenada cartesiana Y da posição atual da tartaruga. No estado inicial do LOGO a coordenada Y da tartaruga é 0.
Exemplo : >tat pe 90 pf 100 pd 90 pf 100 >esc coory
99.999... >