Comandos de decisão


If... Then... Else

Frequentemente, na construição de algoritmos, vamos no defrontar com problemas onde é necessário selecionar uma, entre duas ou mais situações possíveis. Suponha, por exemplo, um algoritmo em que se necessite mostrar o conteúdo de uma variável integer, somente se seu conteúdo for maior que 10. Assim poderíamos escrever:

If (variavel1 > 10) then
   writeln (variavel1)

Consideramos que , quando for executado o comando "if", caso o conteúdo da “variavel1” seja maior que dez, então será executado o comando writeln (variável). Caso contrário, se o valor for menor que dez, então o comando de saída não será executado.
Com a cláusula "else", quando o fluxo de execussão chegar no "if", será avaliada a expressão lógica. Caso a expressão lógica tenha valor verdadeiro, então serão executados os comandos colocados na if, caso contrário, então serão avaliados os da clausula else.
Dentro de apenas um comando IF, podemos colocar qualquer tipo de comando, pode-se ter até duas situações diferentes, por causa do else, e caso preciso mais situações, pode- se criar um if dentro do else, e assim sucessivamente, para o número de situações necessárias. Segue o exeplo:

Neste algoritmo, determinamos se uma pessoa é hetero ou homosexual:

Program opcaosexual;

 var
 resposta01, resposta02: string;

 Begin

 writeln ('qual seu sexo? m/h');
 readln (resposta01);
 writeln ('você prefere pessoas do sexo oposto? s/n');
 readln (resposta02);  
  
    if ((resposta01 = 'm') and (resposta02='s')) or ((resposta01='h') and (resposta02 = 's'))  then
      writeln ('heterosexual')
    else
      writeln ('homosexual');

End.



Escolha... caso.

O comando "case... of"  possibilita a escolha de uma alternativa dentre várias possíveis, onde será validada apenas unma das opções possíveis, e caso  não seja escolhida nenhuma das opções do case of, pode-se usa a clausula else.

program exemplocase;

 Var Y, X : Integer;

   Begin
     Readln (X, Y);
     Case X Of
          1 : Begin
                Y := 4;
                Writeln ('Entrou no Primeiro alvo');
              End;

          2 : Begin
                Y := 3;
                Writeln ('Entrou no Segundo alvo');
              End;

          3 : Writeln ('Entrou no Terceiro alvo');
          Else Writeln ('Entrou no Else');
     End;
   End
.


Nenhum comentário:

Postar um comentário