Logo - Guia Rápido

Logo é uma linguagem de programação muito simples e fácil de aprender. Ele é usado para ensinar alunos e crianças a programar um computador.

Por que devemos aprender a linguagem do Logo?

  • Porque é divertido, muito divertido.
  • Aumenta o sentido lógico das crianças.
  • Desenvolve habilidades de programação.
  • É a verdadeira Ciência da Computação.

Logo é uma linguagem de programação muito fácil e interessante de aprender. Ele tem profundidade suficiente para fazer praticamente qualquer coisa, o que pode ser feito em qualquer outra linguagem de programação de computador.

Como baixar e instalar o software MSW Logo?

Se o software de programação de logotipo não estiver instalado no computador, podemos obtê-lo gratuitamente no seguinte link -

www.softronix.com/mswlogo.html

Após a instalação, ele coloca um ícone de logotipo na área de trabalho do seu computador.

A tela do logotipo MSW tem duas partes -

  • Uma janela de desenho acima com uma TARTARUGA em forma de triângulo no centro.
  • Uma janela do Commander, conforme mostrado na imagem a seguir.

Vamos escrever comandos na linha de comando, ou seja, a caixa de texto na parte inferior da janela do Commander. Para executar ou executar esses comandos, pressione Enter ou clique no botão Executar. Também podemos escrever e executar mais de um comando online por vez.

O histórico de comandos aparecerá na caixa cinza. Clique em uma linha no histórico para fazê-la saltar para a linha de comando respectiva, então podemos fazer alterações (se necessário). Feito isso, pressione Enter ou clique no botão Executar.

Os comandos simples de desenho do logotipo movem a tartaruga para frente e para trás e também a viram para a direita ou esquerda. Os comandos e suas abreviações são fornecidos abaixo -

  • fd - encaminhar
  • bk - para trás
  • rt - certo
  • lt - esquerda
  • cs - clearscreen

Qualquer uma das versões desses comandos pode ser usada. Exceto o comando cs, cada um desses comandos deve ser seguido por um valor chamado como seu argumento. Os argumentos para fd e bk são unidades; aqueles de rt e lt são ângulos que podem ser qualquer número inteiro. Uma rotação de 360 ​​é uma rotação completa, portanto, uma rotação de 375 graus é o mesmo que 1/15 graus.

  • forward 60 ou fd 60 significa avançar 60 passos

  • right 90 ou rt 90 significa virar à direita 90 graus

  • left 90 ou lt 90 significa virar à esquerda 90 graus

  • back 60 ou bk 60 significa voltar 60 passos

  • clearscreen ou cssignifica apagar todos os desenhos. Isso coloca a tartaruga no centro

A janela de desenho possui um sistema de coordenadas. Os valores das duas coordenadas (normalmente chamadas de xey) no centro são 0, 0. No canto nordeste, eles são 250, 250; no canto sudeste, são 250, -250. No canto sudoeste, eles são -250, -250; etc. Se a tartaruga tentar andar para um lado da tela, ela se enrolará. O lado direito envolve o lado esquerdo e o superior envolve a parte inferior.

Muitos sistemas de programação funcionam no mesmo tipo de plano de coordenadas 'xy' de dois eixos, com o qual trabalhamos em Álgebra também.

Aqui, '0 0' é o centro, ou origem (sem vírgula ou parênteses aqui!). Em seu estado centralizado, zoom - "normal", a tela de desenho do Logo mostra uma área de cerca de 150 pontos para cima ou para baixo e 300 pontos para a direita ou esquerda do centro.

A tartaruga pode ser dirigida com cabeçalhos que correspondem a uma rosa dos ventos, com 0 ou 360 graus apontando para cima, 90 graus para a direita e assim por diante. Você pode definir uma variável com um número entre 0 e 360 ​​e, em seguida, percorrer esse caminho.

Comandos de tartaruga

Agora, vamos tentar alguns comandos. Os comandos serão emitidos um por linha, seguido por um retorno de carro. Vários desses comandos podem ser digitados em sucessão em uma janela de comando seguida por um retorno de carro. O efeito na tartaruga é o mesmo. No entanto, se você digitar um comando que requer uma ou mais entradas e fornecer as entradas ausentes na próxima linha, o logotipo mostrará um erro.

A seguir está um comando de prática, que mostra os resultados desejados à direita.

Os comandos - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120, faça com que a tartaruga desenhe um triângulo, como você pode ver ao experimentá-los.

Esses comandos são lidos da esquerda para a direita. Desde o comandofdrequer um argumento, é considerado o próximo valor. Similarmente,rtaceita um argumento também. Assim, o logotipo pode dar um significado inequívoco a cada uma dessas cadeias de caracteres. Para alguns comandos de logotipo, separadores são necessários.

A seguir estão alguns comandos de prática com os resultados desejados à direita.

A seguir está um exercício para verificar sua aptidão sobre o que você aprendeu até agora neste capítulo.

Logo tem vários outros comandos de desenho, alguns dos quais são fornecidos abaixo.

  • pu - penup

  • pd - pendown

  • ht - esconderijo

  • dt - showturtle

  • setpensize

Os comandos pendown e penup dizem à tartaruga para deixar tinta na tela conforme ela se move ou para não deixar tinta, respectivamente. ohideturtle e showturtleOs comandos ocultam ou mostram a tartaruga, mas não afetam sua capacidade de deixar tinta enquanto ela se move. O comando home faz com que a tartaruga retorne ao centro da tela. Pode deixar tinta para trás, quando a tartaruga retornar ao centro da tela. O comando setpensize decide o tamanho da caneta de desenho.

  • penup ou pu significa pegar uma caneta, para que você possa mover a tartaruga sem deixar rastros.

  • pendown ou pd significa abaixar a caneta, para que você possa mover a tartaruga e deixar rastros.
  • hideturtle ou ht significa esconder a tartaruga, para que você possa admirar seu desenho.

  • showturtle ou st significa mostrar a tartaruga, para que você possa continuar seu desenho.

  • setpensizesignifica que pode tornar a caneta maior, mais fácil de ver. O tamanho padrão da caneta é - [1 1].

A seguir estão alguns comandos de prática com os resultados desejados à direita.

O logotipo tem vários outros comandos de desenho adicionais, alguns deles são fornecidos abaixo.

  • home
  • texto claro ou ct
  • label
  • setxy

O comando label pega uma única palavra como uma string entre aspas (por exemplo, “a_string”) ou uma lista de palavras entre [] colchetes sem aspas (por exemplo [uma string de letras]) e as imprime na janela gráfica no local da tartaruga . Vamos considerar o seguinte código.

o setxyO comando recebe dois argumentos, trata o primeiro como o valor da abscissa (eixo horizontal) e o segundo como o valor da ordenada (eixo vertical). Ele posiciona a tartaruga nessas coordenadas, possivelmente deixando tinta ao atingir essas coordenadas. Nas três figuras a seguir, mostramos como o comando setxy pode ser usado.

O comando de texto puro, abreviado ct, limpa a região de texto da janela de comando.

Exercício

A seguir está um exercício para verificar sua aptidão sobre o que você aprendeu até agora neste capítulo.

Que tipo de figura a seguinte seqüência de comando produz?

cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120

Interprete esses comandos à medida que os lê da esquerda para a direita. Experimente para descobrir o resultado.

A seguir está uma tabela de resumo dos comandos.

Nome do Comando Objetivo
setx 100

Define a coordenada x da tartaruga em +100

Move 100 pontos para a direita do centro

Sem mudança vertical

setx -200

Move a tartaruga 200 pontos para a esquerda do centro

Sem mudança vertical

sety 150

Define a coordenada y da tartaruga em 150

Move-o 150 pontos acima do centro

Sem mudança horizontal

sety - 50

Move a tartaruga 50 pontos abaixo do centro

Sem mudança horizontal

setxy 100 100

Move a tartaruga para a coordenada xy 100 100

mostrar xcor

mostre seu

Informa a coordenada x da tartaruga

Informa a coordenada y da tartaruga

setheading 0

seth 0

Aponta a tartaruga para cima, "meio-dia"

seth 120

Move a tartaruga 120 graus para apontar para a posição das quatro horas

A captura de tela a seguir é uma demonstração prática de alguns dos comandos acima.

Uma variável é o nome de um local de memória que pode conter um valor. Em um computador, cada local de memória possui um endereço inteiro. Visto que seria difícil lembrar o endereço de cada local contendo um valor usado por um programa, os cientistas da computação encontraram maneiras de dar a esses locais nomes simbólicos. Uma vez que uma variável tenha um nome, podemos usá-la e manipulá-la.

As variáveis ​​recebem nomes que são cadeias de letras. Um nome de variável pode conter alfabetos (não diferencia maiúsculas de minúsculas), dígitos e sublinhado. Um nome de variável pode ser acessado em um cálculo usando ':' antes dele. Vamos considerar o seguinte exemplo na captura de tela.

No exemplo acima, definimos duas variáveis first_name, 100_last_name_200 e inicializou-os com valores Amal e Das usando as seguintes declarações -

  • fazer “first_name“ Amal
  • faça “100_last_name_200“ Das

Além disso, imprimimos essas duas variáveis ​​com as instruções print: first_name e print: 100_last_name_200.

O exemplo a seguir mostra como definir variáveis ​​numéricas -

Aqui, definimos duas variáveis ​​numéricas val1 e val2. Também executamos adição e subtração usando-os.

Logo fornece as operações aritméticas usuais de adição, subtração, multiplicação e divisão, denotadas pelos símbolos +, -, *, /. Cada uma dessas operações produz um resultado. Se você não fizer algo com o resultado, como imprimi-lo, o logotipo mostrará um erro.

Com o comando print, o resultado de uma operação aritmética pode ser usado e impresso na janela de comando. Os exemplos fornecidos na imagem a seguir demonstram o mesmo.

Outros comandos úteis são -

  • sqrt - Leva um argumento não negativo e retorna sua raiz quadrada.

  • power - Leva dois argumentos, chame-os de 'a' e 'b', e gera a elevado à potência b.

  • ln - Leva um argumento e retorna seu logaritmo natural.

  • exp - Leva um argumento e calcula e para essa potência, e é o número natural 2.718281828.

  • log10 - Leva o logaritmo para basear 10 de seu único argumento.

A captura de tela a seguir mostra um exemplo dos comandos acima com suas respectivas saídas.

Os operadores aritméticos têm uma precedência que determina a ordem em que são avaliados.

Note- print 60 * sqrt 2 e print sqrt 2 * 60 produzem respostas diferentes. Aqui, o operador * tem precedência sobre o operador sqrt. Assim, * será feito antes de sqrt, se houver escolha, como no segundo caso.

Por esse motivo, a primeira instrução imprime o valor 60 vezes a raiz quadrada de 2, enquanto a segunda instrução imprime a raiz quadrada de 120, conforme mostrado na captura de tela a seguir.

Freqüentemente, repetimos uma sequência de comandos. Os programas de computador geralmente realizam tarefas repetitivas. Quase todo sistema de programação tem uma maneira de realizar essa repetição, ou iteração, como os cientistas da computação a chamam. Vamos considerar o seguinte exemplo -

Vamos supor que queremos desenhar um quadrado com lados de comprimento 100, podemos fazer isso com o seguinte programa -

fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90

Notamos que os dois comandos - fd 100 e rt 90 são repetidos quatro vezes. Não será mais simples dizer ao computador que ele deve apenas repetir esses dois comandos quatro vezes em vez de escrevê-los quatro vezes seguidas? Podemos fazer exatamente isso, usando o seguinte comando -

Isso economiza nosso tempo de digitação para fazer um quadrado. A forma geral é:repeat number [commands]. Devemos usar a palavra-chave -repeat seguido por um número e uma seqüência de comandos entre [colchetes].

Freqüentemente, podemos ter que repetir dentro de cada repetição. Isso é chamadonesting. Vejamos alguns exemplos disso.

A seguir está um exercício para verificar sua aptidão sobre o que você aprendeu até agora neste capítulo.

Às vezes, é divertido obter um resultado imprevisível de um cálculo. Logo fornece um procedimento aleatório para gerar um número aleatório. Ele tem um argumento e produz um valor inteiro escolhido uniformemente ao acaso, que é maior ou igual a 0 e menor que o valor de seu argumento. Assim, se você quiser um ângulo aleatório entre 0 e 359 graus, você pode usar o comandorandom 360para produzi-lo. Lembre-se de que o logotipo mostrará um erro, a menos que você faça algo com o resultado, como impressão.

Vejamos o seguinte exemplo -

Emitimos o comando - print random 360 várias vezes na janela de comando acima e, se você notar, cada vez que ele gera uma saída aleatória.

A seguir estão alguns comandos de prática com os resultados desejados à direita.

Os procedimentos fornecem uma maneira de encapsular uma coleção de comandos. Uma vez que um procedimento foi criado, ele pode ser usado da mesma forma que um comando embutido é usado. O “significado” de um procedimento é o significado de seus comandos individuais.

Um procedimento sem argumentos tem a palavra 'para' (uma palavra reservada) e o nome do procedimento na primeira linha. (As palavras reservadas no logotipo não podem ser usadas como variáveis ​​e têm um significado e uso bem definidos.) Possui a palavra reservada 'fim' na última linha.

Um subprograma é uma sequência nomeada de etapas para outro programa executar. Outros nomes para subprogramas são procedimentos e funções. Em Logo, você diz ao computador como fazer algo - por exemplo -

to square
repeat 4 [fd 100 rt 90]
end

Depois de descrever nosso procedimento para Logo, podemos inserir seu nome na linha de comando, da mesma forma que faríamos com qualquer uma das coisas embutidas. Neste caso, digitaríamos 'quadrado' na linha de comando e o Logo procurará os comandos para fazer um quadrado.

Clique no botão que diz Edall(para editar tudo) para abrir o editor integrado do Logo. (Se o seu logotipo não tiver um botão Edall, digite 'edall' na linha de comando). O seguinte bloco de código tem a estrutura necessária do subprograma.

to procedurename
steps of your procedure here
end

O procedimento ou subprograma deve começar com a palavra 'para', seguida por um nome que pensamos. A próxima etapa é digitar todas as mesmas etapas que escreveríamos na linha de comando. O procedimento deve terminar com a palavra 'fim'. Todas as linhas de comentários ou observações devem ser precedidas por ponto e vírgula (;).

A seguir está a demonstração prática do exemplo acima -

Agora, a partir da linha de comando, execute o procedimento usando seu nome “quadrado” conforme mostrado abaixo -

Os procedimentos não podem conter apenas comandos integrados, mas também podem conter outros procedimentos.

No exemplo a seguir, um procedimento 'flor' está chamando nosso procedimento predefinido de 'quadrado' de seu corpo.

A captura de tela a seguir mostra a saída quando o procedimento “flor” é chamado -

Não queremos que todos os quadrados tenham o mesmo tamanho - queremos variedade. No Logo, criamos variáveis, cujos valores podemos alterar. Usaremos o mesmo procedimento de quadratura com uma pequena mudança no exemplo a seguir.

to square :n
repeat 4 [fd :n rt 90]
end

Fornecemos a Logo um valor de substituição para ': n' na linha de comando, conforme mostrado abaixo.

square 50
square 75
square 100

Aqui está a demonstração prática do exemplo acima -

Agora vamos discutir como passar dois argumentos para um procedimento. A captura de tela a seguir é uma demonstração prática do mesmo.

Em um procedimento recursivo, haverá uma chamada de recorrência do procedimento dentro do procedimento. Vamos considerar o seguinte código -

to spiral_recur :n
   if :n < 1 [stop]
   fd :n
   rt 20
   spiral_recur 0.95 * :n
end

O procedimento spiral_recur foi chamado a partir do próprio corpo do procedimento. A captura de tela a seguir mostra a execução e a saída do código.

A tomada de decisão e as variáveis ​​andam juntas. Um programa precisa ser capaz de mudar de curso dependendo da situação. Aqui, por exemplo, está uma estrutura para desenhar uma espiral. Ele tem um loop, uma variação da repetição mostrada anteriormente e o corpo do loop é para nós preenchermos.

to spiral
   make "n 1
   while [:n < 100] [
      make "n :n + 5
      fd :n rt 90
   ]
end

O código acima mostra vários novos recursos da sintaxe do logotipo MSW. Definimos uma variável com um novo valor digitando 'make', então o nome da variável é precedido por uma aspa dupla "ao invés de dois pontos ':' como mostrado abaixo.

make "n 1

No entanto, usamos uma variável com dois pontos ':' antes de seu nome.

while [:n < 100]

O código entre colchetes após 'enquanto [condição]' é executado, enquanto a condição é verdadeira. Quando não for mais verdadeiro, porque (neste caso) o valor de ': n' cresce mais que 100, o código após o colchete é executado.

A captura de tela a seguir mostra a execução e a saída do código acima.

Agora, discutiremos o uso de 'instruções if', que possuem um código que será executado apenas quando uma determinada condição for verdadeira.

Ele também mostra um logotipo integrado que gera números aleatórios. A declaraçãorandom 3gera qualquer número 0 ou 1 ou 2 arbitrariamente em uma seqüência aleatória. O procedimento então decide qual caminho seguir "ao acaso". O número aleatório gerado será mantido em 'r' e posteriormente, dependendo do valor da variável 'r', uma das instruções if será executada, o que irá satisfazer a condição. Portanto, se o -

  • O valor de 'r' é 0, então [fd 20] será executado.
  • O valor de 'r' é 1, então [rt 90 fd 20] será executado.
  • O valor de 'r' é 2, então [lt 90 fd 20] será executado.

A captura de tela a seguir mostra a execução e a saída da discussão acima.

Qualquer sequência de caracteres alfanuméricos, por exemplo - “america”, “emp1234”, etc. são exemplos de uma string. Contar os caracteres é o mais básico de todos os processos de string. A resposta para a perguntastringlength "abc12ef é dado pelo seguinte procedimento -

to stringlength :s
   make "inputstring :s
   make "count 0
   while [not emptyp :s] [
      make "count :count + 1
      print first :s
      make "s butfirst :s
   ]
   print (sentence :inputstring "has :count "letters)
end

No procedimento acima, –'s 'é a variável que contém a string de entrada. A variável inputstring contém a cópia da string de entrada. A contagem de variável é inicializada com 0. No loop while, a condição verifica se a string ficou vazia ou não. Em cada contagem de loop, uma variável é aumentada em 1 para manter a contagem de comprimento. A declaraçãoprint first :s, imprime o primeiro caractere apenas da string armazenada em 's'.

A declaração make "s butfirst :s, recupera a substring excluindo o primeiro caractere. Após sair do loop while, imprimimos a contagem de caracteres ou o comprimento da string de entrada. A seguir está a execução e saída do código.

Telas de computador funcionam com componentes de luz vermelho, verde e azul, por isso às vezes são chamados de RGB screens.

No menu Definir do logotipo, podemos definir a cor de três elementos da tela -

  • A caneta da tartaruga
  • O preenchimento da tartaruga (como um balde de tinta para cercados)
  • O fundo da tela

Definimos uma cor movendo esses três controles deslizantes para a esquerda e para a direita. Lembre-se de que o preto é a ausência de todas as cores e o branco são todas as cores juntas. Misturar luz não é como misturar tinta. Por exemplo, se você misturar tinta vermelha e verde, obtém uma cor turva. Por se tratar de um computador, cada cor possui uma representação numérica interna.

Na extremidade esquerda da escala móvel está zero (0). Na extremidade direita está 255, que é como 99 para um computador (é 2 8 - 1). Assim, preto é [0 0 0], vermelho é [255 0 0], verde é [0 255 0], azul é [0 0 255]. Você pode fazer qualquer coisa entre essas cores e, em todas elas, há 256 * 256 * 256 cores possíveis. Isso é 2 8 * 2 8 * 2 8 ou 24 bits de cor - 24 dígitos binários dentro da máquina.

Os comandos a seguir lhe darão uma grande caneta vermelha -

setpensize [5 5]
setpencolor [255 0 0]

Ao encontrar uma cor de que goste usando os controles deslizantes, você pode perguntar ao Logo o que é: escolha a cor da caneta e, em seguida, na janela de comando, digite o seguinte comando.

show pencolor

A captura de tela a seguir mostra a execução e a saída do código acima.

Você pode fazer um quadrado colorido usando as seguintes etapas -

Step 1 - Desenhe o quadrado com comprimento lateral 40 usando o seguinte comando.

repeat 4 [fd 40 rt 90]

Step 2 - Caneta usando o seguinte comando.

pu

Step 3- Vá para um ponto dentro da praça. Por exemplo, coloque a tartaruga na coordenada (20, 20) usando o seguinte comando.

setxy 20 20

Step 4- Preencha o quadrado com a cor definida. Por exemplo, para definir o floodcolor como azul, use o seguinte comando.

setfloodcolor [0 0 255]

A tabela a seguir lista mais alguns comandos relacionados a cores e caneta.

Comando de cor e caneta Objetivo do comando

setpencolor [rgb]

setpc [rgb]

Define a cor da caneta da tartaruga

rgb são números no intervalo [0, 255]

setfloodcolor [rgb]

setfc [rgb]

Define a cor de uma área endossada

setscreencolor [rgb]

setsc [rgb]

Define a cor do fundo

mostrar pencolor

mostrar floodcolor

mostrar screencolor

Especifica os valores atuais para [rgb] de um item nomeado

Preencher

Despeja um balde de floodcolor atual na localização do cursor

Preencher

Despeja um balde de floodcolor atual na localização do cursor

Tente executar o seguinte conjunto de comandos -

  • cs - Para limpar a tela.

  • home - Para trazer a tartaruga para a casa.

  • setpensize [5 5] - Definir o tamanho da caneta.

  • setpencolor [255 0 0] - Definir a cor da caneta para vermelho.

  • setfloodcolor [0 0 255] - Definir a cor de inundação para azul.

  • setscreencolor [0 255 0] - Definir a cor da tela para verde.

  • repeat 4 [fd 40 rt 90] - Desenhe um quadrado com comprimento lateral 40.

  • pu - Caneta para cima.

  • setxy 20 20 - Coloque a tartaruga na coordenada (20, 20).

  • fill - Preencha o quadrado com a cor azul definida.

  • ht - Esconder tartaruga.

Você deve receber a seguinte saída na execução dos comandos acima.