Comando Se

Comando Se

Home  Anterior  Próximo

Para controlar eventos complexos, um robô deve ser capaz de tomar decisões, escolhendo entre as ações disponíveis a mais adequada, considerando seus objetivos e a leitura dos sensores. Estas decisões dependem do resultado de expressões lógicas, tais resultados determinam qual a próxima ação a ser tomada.

 A linguagem LEGAL fornece uma estrutura de controle para tomada de decisões e uma para a repetição controlada de comandos.

O comando se seleciona um entre dois Bloco Comandos para execução. A estrutura deste comando consiste da palavra reservada se em companhia das palavras reservadas então e senão.

Tendo em vista que o comando senão é opcional, a forma mais simples da desta estrutura condicional é a seguinte:

se   <expressão relacional> então

           [

            Bloco de comandos é executado se a condição for verdadeira

          ]

 

Se a <expressão relacional> for verdadeira o programa executa o Bloco Comandos localizados abaixo do comando então então.  Se a condição for falsa, o comando se não terá nenhuma ação e o bloco não é executado.

No programa a seguir a luz um é acesa quando o botão enter  for pressionado.

#  Exemplo:

#    O programa fica em loop infinito verificando se botão enter                                   

# está pressionado, se estiver liga a luz 1

Por favor 

Repita sempre

[

se bt enter=1 então

[

ligue L1 

]

]

Obrigado

 

Quando usamos o comando senão a estrutura do condicional está assim definida:

 

se    expressão condicional então

           [

            Bloco de comandos que

            é executado  se a condição for verdadeira

          ]

  senão

          [

            Bloco de comandos que

            é executado  se a condição for falsa

          ]

 

Se a condição for verdadeira, o Bloco Comandos próximo ao então é executado e o LEGAL pula o Bloco Comandos que está abaixo do comando senão. Alternativamente, se a condição for falsa, a execução é desviada diretamente para o Bloco Comandos do comando senão.

No próximo exemplo o MC2.5  acende a luz um e apaga a luz dois quando o botão enter for pressionado. Invertendo o estado destas quando o botão é solto.

#  Exemplo:

#    Toda vez que o botão enter Ã© pressionado a Luz 1 acende,          

#  desligando quando ele Ã© solto.

Por favor 

Repita sempre

[

se bt enter=1 então   

[

ligue L1 

desligue L2

senão  

[

desligue L1 

ligue L2 

]

Obrigado

 

atençao

 

Antes de continuar conecte um sensor de luz em S3 e outro sensor de luz em S8.

 

As estruturas formadas com o comando se podem estar aninhadas.  Em outras palavras, toda uma estrutura de decisão, com os comandos se, então e senão, pode aparecer dentro de um Bloco Comandos então ou senão  de  uma  outra estrutura. O alinhamento  de  estruturas   se  pode  resultar  em seqüências de  decisões  complexas  e  poderosas.  Como no exemplo, a seguir:

#  Exemplo:

#    Comandos condicionais aninhados.

Por favor 

Repita sempre

[

se s4>s8 então   #    Se o s4 receber mais luz que s8

[

se bt enter=1  então    #    se botão enter está pressionado

[

ligue L1 

desligue L2

desligue L4

senão  

[

ligue L2 

]

]

senão  

[

desligue L1 

desligue L2 

ligue L4

]

Obrigado

 

Neste exemplo, a primeira decisão está baseada nos valores dos  sensores S4 e S8. Se S4 for maior que S8, o programa desta a segunda condição:

se o botão enter estiver pressionado o MC2.5 acende a luz 1 e apaga a luz 2 e
caso contrário o MC2.5 acende a luz 2 e apaga a luz 1.

Caso o valor de S4 for menor ou igual a S8 a luz 4 é acesa.