Comandos de decisão ou seleção

Nem sempre se faz necessário executar todos os passos do algoritmo, pois eles podem ser opcionais, ou seja, dependentes da condição de expressões lógico/aritméticas. Neste caso, dizemos que este código contém comandos de decisão ou uma seleção. 
Existem dois tipos de comandos de decisão ou uma seleção : simples e múltipla. 

Comandos de decisão seleção simples 

Algoritmos, com comandos de decisão simples, possuem dois blocos de instrução que são mutuamente excludentes. Uma expressão lógica verifica o resultado desta expressão lógica e, dependendo do resultado, executa um ou outro bloco de instrução.
Sintaxe do comando de seleção simples : 

Se <expressão lógica> 
então 
inicio 
{bloco de comandos executados se o resultado da expressão lógica for verdadeiro} 
fim 
senão 
inicio 
{bloco de comandos executados se o resultado da expressão lógica for falso} 
fim 

Exemplo de algoritmo para resolver uma equação do segundo grau:

Algoritmo baskara 
    Var a, b, c, x1, x2, delta: Real;
Inicio 
                  Entrada
   Escreva " Este programa resolve equações de segundo grau do tipo ax2 +bx +c=0 ";
   Entrada
   Escreva " Entre com o valor de a";
   Leia a;
   Escreva " Entre com o valor de b";
   Leia b;
   Escreva " Entre com o valor de c";
   Leia c;
                   Processamento
   delta= b*b-4*a*c;
   se (delta>0) então 
   Inicio
     x1=(-b+ (delta)(1/2))/(2*a) ;
     x2=(-b- (delta)(1/2))/(2*a) ;
     Saída
     escreva "x1 vale ", x1;
     escreva " x2 vale ",x2; 
     Fim 
 senão
     Início
       Saída 
       escreva " A equação ao tem solução real "
     Fim

Fim 

Comandos de decisão com seleção múltipla 

Este tipo de seleção verifica o resultado de uma expressão lógica ou aritmética, portanto existem tantos blocos de códigos possíveis quanto resultados da expressão. Como a expressão só tem um resultado por vez então os n blocos também são mutuamente excludentes. 

Sintaxe do comando de seleção múltipla : 

casos <expressão> 
     caso condição 1 
     inicio 
    {bloco de comandos executados se o resultado da expressão for condição 1} 
     fim 
caso condição 2 
    inicio 
    {bloco de comandos executados se o resultado da expressão for condição 2} 
    fim 
caso condição n 
    inicio 
    {bloco de comandos executados se o resultado da expressão for condição n} 
    fim 
senão
    inicio 
   {bloco de comandos executados se o resultado não o for nenhuma das condições} 
    fim 
fim 

Exemplo de um algoritmo que recebe um ângulo em radianos e retorna o valor numérico de uma função trigonométrica pela qual o usuário optar. 

Algoritmo trigonometria
Var angulo_graus, angulo_radianos: Real;
Var opcao : inteiro;
Constante pi=3.1415;

Inicio 
   Escreva " Este programa serva para encontrar o valores das funções trigonométricas "
   Entrada
   Escreva " 1 Calcular o valor do seno ";
   Escreva " 2 Calcular o valor do co-seno ";
   Escreva " 3 Calcular o valor da tangente ";

   Escreva " Entre com o número da opção"';
   Leia opcao;

   Escreva " Entre com o valor do ângulo em graus"
   Leia angulo_graus;
Processamento
   angulo_radianos = angulo_graus*pi/180;
Saída 
   casos(opcao) 
    inicio
caso 1 
    inicio 
       escreva "O valor do seno do ângulo fornecido é " ; sin(angulo_radianos) ; 
    fim

caso 2 
   inicio 
      escreva "O valor do co-seno do ângulo fornecido é " ; cos(angulo_radianos) ; 
   fim 

caso 3 
   inicio 
      escreva "O valor da tangente do ângulo fornecido é " ;
      sin(angulo_radianos)/cos(angulo_radianos);
  fim 
default 
   inicio 
    escreva "Você escolheu uma opção falsa" ; 
    fim 
fim