#

Tutorial da linguagem R-Educ

Funções

Inicialização

Todo programa deve começar com inicio e terminar com fim.

Exemplo:

inicio

comandos

fim

Vamos testar escrevendo o seguinte programa:

Exemplo:

Após salvar e compilar, clique em "Testar Rotina". O texto "Olá sBotics!" deve aparecer na linha 1 do console virtual.

Aviso: todo texto deve ser escrito entre aspas duplas!

Para realizar movimentações, devemos utilizar alguma das funções de movimentação apresentadas na aba funções do Robô desde tutorial.

Vamos testar a movimentação do robô escrevendo o seguinte programa:

Exemplo:

Após salvar e compilar, clique em "Testar Rotina". O seu robô deve ir para frente, com velocidade 100 por 1000 milissegundos (1 segundo).

Aviso: as funções de movimentação do robô apenas acionam os motores em um determinado sentido. Para garantir que aquela movimentação ocorra por um determinado tempo é necessário utilizar o comando esperar.

Se - Então - Senão

Se quiser verificar se dois textos são iguais ou diferentes, ou ver se dois números são iguais, diferentes, maiores ou menores que o outro, é possível usar a estrutura se.

Exemplo:

inicio

se(condicao) entao {

comandos

}

fim

Vamos testar a estrutura condicional escrevendo os dois programas a seguir:

Exemplo 1:

inicio

se("isso" == "isso") entao {

escrever(1, "isso é igual a isso!")

}

fim

Note que == foi utilizado para comparar os dois textos. No exemplo 2, faremos a comparação entre dois números em nossa condição.

Exemplo 2:

inicio

se(3 > 1) entao {

escrever(1, "Três é maior que um!")

}

fim

Se os programas dos dois exemplos foram escritos corretamente, ao executar as rotinas os textos aparecerão na linha 1 do console.

Teste vários exemplos utilizando se com condições e valores diferentes, mas leve em conta que:

> - Compara se é maior que

< - Compara se é menor que

>= - Compara se é maior ou igual que

<= - Compara se é menor ou igual que

== - Compara se é igual

!= - Compara se é diferente

É possível realizar um outro conjunto de comandos caso a condição não seja satisfeita. Para isso podemos utilizar o comando senao.

Teste o seguinte programa:

Exemplo:

Observe que o texto "Três não é maior que um!"nunca vai ser escrito no console, pois a condição 3 > 1 sempre será satisfeita.

Agora substitua a condição para 3 < 1 e observe que o texto "Três não é maior que um!" será escrito no console, pois a condição não será satisfeita.

Exemplo:

Agora vamos testar a estrutura condicional com duas ou mais condições, para isso devemos utilizar as conjunções e/ou.

Exemplo:

Se o programa for escrito corretamente, ao executar a rotina um texto aparecerá na linha 1 do console.

Agora vamos refazer o teste anterior verificando mais uma condição caso as primeiras não sejam satisfeitas:

Exemplo:

Se o programa for escrito corretamente, ao executar a rotina um texto aparecerá na linha 1 do console.

Aviso: é indicado utilizar parênteses () para delimitar cada uma das condições.

Enquanto - Farei

A estrutura enquanto da linguagem R-Educ representa uma estrutura de repetição condicional. A ideia básica é fazer com que a execução de uma série de comandos seja repetida enquanto uma determinada condição for satisfeita. Quando a condição não for mais satisfeita a repetição será finalizada.

Exemplo:

inicio

enquanto (condicao) farei {

comandos

}

fim

Vamos testar a estrutura enquanto com o seguinte programa:

Exemplo:

inicio

enquanto (ultra(1) > 50) farei {

frente(100)

}

parar()

fim

Ao testar essa rotina podemos observar que a movimentação do robô será acionada para frente enquanto o sensor de ultrassom 1 não detectar um obstáculo a uma distância menor ou igual que 50. Quando a condição não for mais satisfeita a movimentação será interrompida.

Farei - Enquanto

A estrutura farei da linguagem R-Educ representa uma estrutura de repetição condicional, assim como o enquanto apresentado anteriormente. A única diferença entre esta estrutura e a anterior é que nesta, primeiro a sequência de comandos é realizada e, em seguida, a condição é avaliada, caso a condição seja satisfeita os comandos serão executados novamente.

Exemplo:

inicio

farei {

comandos

} enquanto (condicao)

fim

Vamos testar a estrutura farei no exemplo a seguir.

Exemplo:

inicio

farei {

frente(100)

} enquanto (ultra(1) > 50)

parar()

fim

Ao testar essa rotina podemos observar que a movimentação do robô será acionada para frente enquanto o sensor de ultrassom 1 não detectar um obstáculo a uma distância menor ou igual que 50. Quando a condição não for mais satisfeita a movimentação será interrompida.

A utilização dessa estrutura garante que a sequência de comandos seja realizada ao menos uma vez, ainda que a condição não seja satisfeita.

Repita

A estrutura repita da linguagem R-Educ representa uma estrutura de repetição contada. A utilização desta estrutura faz com que um conjunto de comandos seja executado por uma quantidade determinada de vezes. Abaixo apresentamos como deve ser utilizada esta estrutura para que um conjunto de comando seja executado 4 vezes.

Exemplo:

inicio

repita 4 vezes {

frente(100)

esperar(1000)

direita(100)

esquerda(1000)

}

fim

Para

A estrutura para da linguagem R-Educ representa uma estrutura de repetição contada. A utilização desta estrutura faz com que um conjunto de comandos seja executado um determinado número de vezes. A quantidade de vezes que a sequência de comandos é realizada vai depender do valor da variável de controle, esta irá assumir valores desde um limite inferior até um limite superior, percorrendo-os de acordo com um determinado passo informado na estrutura.

No código abaixo a variável de controle foi chamada de variavel, o limite inferior e superior de valor1 e valor2 respectivamente e o passo de x.

Exemplo:

numero variavel = 0

inicio

para variavel de valor1 ate valor2 passo x farei {

comandos

}

fim

Para testar essa estrutura vamos utilizar o código do exemplo a seguir.

Exemplo:

numero variavel = 0

inicio

para variavel de 1 ate 5 passo 1 farei {

escrevernumero(1, variavel)

esperar(1000)

}

fim

Ao executar esta rotina podemos observar que a contagem de 1 a 5 será apresentada na linha 1 do console. Cada valor será escrito em intervalos de 1 segundo devido a utilização do comando esperar(1000).

Faça uma alteração do passo para 2 e observe novamente a contagem:

Exemplo:

numero variavel = 0

inicio

para variavel de 1 ate 5 passo 2 farei {

escrevernumero(1, variavel)

esperar(1000)

}

fim

Teste

A estrutura teste da linguagem R-Educ representa um comando de seleção. A utilização desta estrutura faz com que o valor de uma variável do tipo texto seja avaliada e dependendo de seu valor uma determinada sequência de comandos seja realizada. No código abaixo a variável testada foi chamada de variavel e caso o seu valor seja igual a valor1 a sequência de comandos denominada no código como comandos1 será executada, caso seu valor seja igual a valor2 o conjunto comandos2 será executado. Caso seu valor não seja nenhum dos apresentados a sequência de comandos denominada de comandos3 será executada.

Exemplo:

inicio

teste (variavel) {

caso valor1:

comandos1

caso valor2:

comandos2

outros:

comandos3

}

fim

Para testar essa estrutura vamos escrever um programa que avalia a leitura do sensor de cor 2 e realiza escritas no console dependendo do valor lido:

Exemplo:

texto minhaLeitura = "Aguardando leitura."

inicio

minhaLeitura = cor(2)

teste (minhaLeitura) {

caso "PRETO":

escrever(1, "Meu sensor leu Preto.")

caso "BRANCO":

escrever(1, "Meu sensor leu Branco.")

outros:

escrever(1, "Meu sensor leu:")

escrever(2, cor(2))

}

fim

No programa acima a estrutura verifica a leitura do sensor de cor 2, armazenada na variável minhaLeitura retornou "PRETO", "BRANCO" ou outro valor.

Aviso: a variável utilizada na estrutura teste deve ser sempre uma varíavel do tipo texto.

Tarefas

Um programa escrito em R-Educ pode conter tarefas: conjunto de comandos nomeados que também são chamados de funções, procedimentos ou sub-rotinas. Para que esta estrutura seja utilizada ela deve ser definida antes do início do programa.

A declaração de uma tarefa com nome "funcao" por exemplo, é feita como segue:

Exemplo:

tarefa funcao{

comandos

}

Ao declarar uma tarefa a sequência de comandos contida nela não será executada. Para que a execução de seus comandos seja realizada é necessário que o seu nome seja chamado da seguinte forma:

Exemplo:

funcao()

A seguir apresentamos um exemplo de definição e utilização de uma tarefa. No exemplo chamaremos a tarefa de minhaTarefa.

Exemplo:

tarefa minhaTarefa{

frente(100)

esperar(1000)

}

inicio

minhaTarefa()

fim

Ao executar esta rotina podemos observar que os comandos inseridos na tarefa serão executados.

Tipos de dados

A linguagem R-Educ opera sobre três tipos de dados: texto, numero e booleano. As variáveis devem ser definidas sempre antes do inicio e fora das tarefas.

O tipo de dado texto manipula variáveis do tipo String, que são sequências de símbolos e caracteres separados ou não por espaços e delimitados por aspas duplas.

No programa a seguir, definimos uma variável do tipo texto com o nome minhaVariavel e conteúdo "Esse é meu texto!".

Exemplo:

texto minhaVariavel = "Esse é meu texto!"

inicio

escrever(1, minhaVariavel)

fim

Ao ser executada a rotina o conteúdo da variável será escrito na linha 1 do console. Podemos também utilizar as variáveis para armazenar o valor da leitura do sensor de cor que retorna um texto, por exemplo:

Exemplo:

texto minhaVariavel = "Esperando leitura"

inicio

minhaVariavel = cor(1)

escrever(1, minhaVariavel)

fim

Ao ser executado, este programa fará a leitura do sensor de cor 1, armazenará o valor lido em minhaVariavel e imprimirá seu valor na linha 1 do console.

O tipo de dado numero manipula variáveis do tipo double, números que podem assumir valores inteiros ou em ponto flutuante. Abaixo temos um exemplo da criação de uma variável do tipo numero com nome comparacao e conteúdo 3.

Exemplo:

numero comparacao = 3

inicio

se(comparacao > 5) entao {

escrever(2, "O valor da variável é maior que 5")

}senao{

escrever(2, "O valor da variável é menor que 5")

}

fim

Ao ser executado, este programa irá verificar se o valor armazenado na variável comparacao é maior do que 5, caso seja o texto "O valor da variável é maior que 5" será escrito na linha 2 do console.

O tipo de dado booleano manipula variáveis lógicas do tipo verdadeiro ou falso. Abaixo temos um exemplo da criação de uma variável do tipo booleano com nome variavel e conteúdo verdadeiro.

Exemplo:

booleano minhaVariavel = verdadeiro

inicio

se(minhaVariavel == verdadeiro) entao {

escrever(2, "minhaVariavel é verdadeira)

}senao{

escrever(2, "minhaVariavel é falsa")

}

fim

Ao ser executado, este programa irá verificar se o valor armazenado na variável é verdadeiro, caso seja, o texto "minhaVariavel é verdadeira" será escrito na linha 1 do console.

Operadores aritméticos

Para realizar operações aritméticas básicas em R-Educ podem ser utilizados os símbolos +, -, * e / em números ou variáveis do tipo numero em qualquer lugar onde elas são manipuladas. Alguns outros tipos de operações matemáticas podem ser realizadas a partir da realização de sucessivas operações ou utilizando as funções disponíveis.

numero variavel = 100

inicio

variavel = variavel + luz(1)

se(variavel *100 > 100) entao {

frente(100)

esperar(1000)

}

fim

Comentários

Para documentar bem seu código, indicando o que cada trecho de código executa, é possível inserir comentários. Em R-Educ os comentários de 1 linhas são inseridos utilizando o caracter # antes da linha que deseja comentar. Ao utilizar esse caracter tudo que vier após ele na mesma linha será ignorado.

Exemplo:

# Este é o meu programa!

inicio

# frente(100)

esperar(1000)

fim

Ao ser executado, este programa irá apenas realizar uma espera de 1000 milissegundos antes de finalizar, isso ocorre pois devido a presença do caracter # antes do comando frente(100) este será ignorado não sendo executado pelo robô.