reduc
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
reduc [2025/04/01 23:51] – [Funções] admin | reduc [2025/04/15 16:34] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
====== rEduc ====== | ====== rEduc ====== | ||
- | A linguagem rEduc foi criada para facilitar a programação de robôs em linguagens mais complexas (no caso do sBotics, [[csharp|C# | + | A linguagem rEduc foi criada para facilitar a programação de robôs em linguagens mais complexas (no caso do sBotics, [[csharp|C# |
Neste tutorial apresentaremos as principais estruturas desta linguagem. | Neste tutorial apresentaremos as principais estruturas desta linguagem. | ||
+ | |||
+ | > **Aviso!** rEduc também tem uma versão em inglês, porém neste tutorial estamos tratando da versão pt-BR do rEduc, a mais utilizada por usuários do sBotics. | ||
===== Inicialização ===== | ===== Inicialização ===== | ||
Linha 93: | Linha 95: | ||
| | ||
Estes operadores podem ser utilizados em // | Estes operadores podem ser utilizados em // | ||
+ | |||
+ | ==== Conversões Entre Tipos ==== | ||
+ | Tipos podem ser convertidos utilizando as funções '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Na conversão em booleano, caso o número informado seja 1 ou acima a conversão sairá como '' | ||
===== Controladores de fluxo ===== | ===== Controladores de fluxo ===== | ||
Linha 151: | Linha 162: | ||
**Teste** | **Teste** | ||
- | A estrutura teste da linguagem rEduc representa um comando de seleção. A utilização desta estrutura faz com que o valor de uma variável do tipo **texto** fornecida seja avaliado e dependendo de seu valor uma determinada sequência de comandos é 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. | + | A estrutura teste da linguagem rEduc representa um comando de seleção. A utilização desta estrutura faz com que o valor de uma **variável do tipo texto** fornecida seja avaliado e dependendo de seu valor uma determinada sequência de comandos é 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. |
< | < | ||
- | teste ( variavel de texto ) { | + | teste ( variavelDeTexto |
caso valor1: comandos1 | caso valor1: comandos1 | ||
caso valor2: comandos2 | caso valor2: comandos2 | ||
Linha 223: | Linha 234: | ||
Funções no sBotics são como tarefas, porém que **retornam** algum valor em um dos tipos já citados: numérico, em texto ou booleano. | Funções no sBotics são como tarefas, porém que **retornam** algum valor em um dos tipos já citados: numérico, em texto ou booleano. | ||
- | Desta forma, toda função precisa de um **tipo de retorno** e uma instrução de **retorno**. | + | Desta forma, toda função precisa de um **tipo de retorno** e uma instrução de **retorno**. |
< | < | ||
funcao booleano TaPerto { | funcao booleano TaPerto { | ||
- | | + | |
+ | retornar verificacao | ||
} | } | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | funcao numero UmMaisUm { | ||
+ | retornar 1+1 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | E como tarefas, também podem receber parâmetros: | ||
+ | |||
+ | < | ||
+ | funcao numero UmMaisAlgo com numero algo { | ||
+ | retornar 1+algo | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Da mesma forma que tarefas, funções podem ser chamadas no seu código | ||
+ | |||
+ | se(TaPerto()) | ||
+ | |||
+ | numero exemplo = UmMaisUm() | ||
+ | |||
+ | numero exemplodois = UmMaisAlgo(5) | ||
+ | | ||
+ | ===== Valores-Padrão de Parâmetros (Funções e Tarefas) ===== | ||
+ | Conceito mais avançado, porém tarefas e funções podem possuir valores-padrão para os parâmetros se informados após o símbolo '' | ||
+ | |||
+ | < | ||
+ | tarefa Frente com numero velocidade = 200 { | ||
+ | Motor(" | ||
+ | Motor(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Isto poderá ser chamado como: | ||
+ | |||
+ | # Normalmente | ||
+ | Frente(500) | ||
+ | |||
+ | # Sem o parâmetro, que utilizará o valor padrão de 200 como definido | ||
+ | Frente() | ||
===== Comandos ===== | ===== Comandos ===== | ||
- | asdasdasdasd | + | Comandos gerais para a linguagem rEduc, desde operações matemáticas a controle do robô etc podem ser encontrados aqui: [[https:// |
+ | |||
+ | Para aprender outros conceitos gerais de [[Programação]] e sobre [[Componentes]], | ||
===== Exemplo ===== | ===== Exemplo ===== | ||
- | asdasdasdasd | + | {{ line-follower.gif }} |
+ | |||
+ | Segue abaixo um código de exemplo de um simples seguidor de linha para o robô " | ||
+ | |||
+ | < | ||
+ | # Funções de Controle | ||
+ | tarefa Frente com numero velocidade = 200{ | ||
+ | TravarMotor(" | ||
+ | TravarMotor(" | ||
+ | |||
+ | Motor(" | ||
+ | Motor(" | ||
+ | } | ||
+ | |||
+ | tarefa Direita com numero velocidade = 200{ | ||
+ | Motor(" | ||
+ | TravarMotor(" | ||
+ | |||
+ | TravarMotor(" | ||
+ | Motor(" | ||
+ | } | ||
+ | |||
+ | tarefa Esquerda com numero velocidade = 200{ | ||
+ | Motor(" | ||
+ | TravarMotor(" | ||
+ | |||
+ | TravarMotor(" | ||
+ | Motor(" | ||
+ | } | ||
+ | |||
+ | tarefa Tras com numero velocidade = 200{ | ||
+ | TravarMotor(" | ||
+ | TravarMotor(" | ||
+ | |||
+ | Motor(" | ||
+ | Motor(" | ||
+ | } | ||
+ | |||
+ | numero contador = 0 | ||
+ | tarefa LedFinal { | ||
+ | para contador de 1 ate 5 passo 1 farei { | ||
+ | LigarLuz(" | ||
+ | Esperar(50) | ||
+ | LigarLuz(" | ||
+ | Esperar(50) | ||
+ | LigarLuz(" | ||
+ | Esperar(50) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | inicio | ||
+ | AbrirConsole() | ||
+ | |||
+ | enquanto (verdadeiro) farei { | ||
+ | EscreverLinha(" | ||
+ | se((Cor(" | ||
+ | LigarLuz(" | ||
+ | Direita(300) | ||
+ | } senao se((Cor(" | ||
+ | LigarLuz(" | ||
+ | Esquerda(300) | ||
+ | } senao se((Cor(" | ||
+ | LigarLuz(" | ||
+ | Frente() | ||
+ | } senao se((Cor(" | ||
+ | Frente(0) | ||
+ | LedFinal() | ||
+ | } senao { | ||
+ | LigarLuz(" | ||
+ | Frente() | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | fim | ||
+ | </ | ||
+ | |||
+ | Caso seja um usuário avançado que deseja realizar tarefas mais difíceis e ter um controle total sobre seu robô, cogite alterar para [[csharp|C# | ||
reduc.1743551511.txt.gz · Última modificação: 2025/04/15 16:34 (edição externa)