Desvio Condicional Simples
Desvio Condicional Composto
Operadores Relacionais
Desvio Condicional Encadeado

Desvio Condicional Simples

Para solucionar o problema proposto, é necessário trabalhar uma nova instrução: se...então...fim_se. A instrução se...então...fim_se tem por finalidade tomar uma decisão. Sendo a condição Verdadeira, serão executadas todas as instruções que estejam entre a instrução se...então e a instrução fim_se. Sendo a condição Falsa, serão executadas as instruções que estejam após o comando fim_se.

Fluxograma

Observe no fluxograma a existência das letras S e N, além das linhas com seta indicando a direção do processamento, colocadas juntamente com o símbolo de Decisão. O S representa sim e está posicionado para indicar que um determinado bloco de operações será executado quando a condição atribuída for verdadeira. O N está para não e será executado quando a condição for falsa. O símbolo do losango, ou me1lhor dizendo, Decisão deverá ser utilizado em situações em que haja a necessidade de usar uma decisão dentro do programa. Uma decisão será tomada sempre com base em uma pergunta, como RESPOSTA= "sim", e é esta pergunta que deverá estar indicada dentro do símbolo de losango.

OBS: Também poderão ser utilizadas as letras V e F para determinar que a condição seja verdadeira ou falsa.

Pseudocódigo

Se (<condição>) então
               <instruções para condição verdadeira>
Fim_Se
<instruções para condição falsa ou após ser verdadeira>

Há pouco você conheceu como fazer uso da instrução se...então...fim_se do tipo simples. Agora você aprenderá a fazer uso da instrução se...então...senão...fim_se, que sendo a condição Verdadeira, serão executadas todas as instruções que estejam posicionadas entre o se...então e a instrução senão. Sendo a condição Falsa, serão executadas as instruções que estejam entre o senão e a instrução fim_se.

Fluxograma

Pseudocódigo

se (<condição>) então
               <instrução para condição verdadeira>
senão
               <instrução para condição falsa>
fim_se

Para um exemplo da utilização desta estrutura considere o seguinte problema: "Ler dois valores numéricos e efetuar a adição. Caso o valor somado seja maior ou igual a 10, deverá ser apresentado somando a ele mais 5; caso o valor somado não seja maior ou igual a 10, este deverá ser apresentado subtraindo 7". Veja o diagrama de blocos e a codificação em português estruturado.

Algoritmo

  1. Conhecer dois valores (variáveis A e B);
  2. Efetuar a soma dos valores A e B e implicar o valor da soma em X;
  3. Verificar se X é maior ou igual 10; caso sim, calcula R ß X+5, senão calcula Rß X-7.

    Pseudocódigo

    Algoritmo Soma_Números
    var
                   R : inteiro
                   X : inteiro
                   A : inteiro
                   B : inteiro
    início
                   leia A
                   leia B
                   X = A + B
                   se (X >= 10) então
                                  R = X + 5
                   senão
                                  R = X - 7
                   fim_se
                   escreva R
    fim

Observe que após a definição dos tipos de variáveis, é solicitada a leitura dos valores para as variáveis A e B, depois esses valores são implicados na variável X, a qual possui o resultado da adição dos dois valores. Neste ponto, é questionado no programa uma condição que permitirá imprimir o resultado da soma adicionado de 5, caso este seja maior ou igual a 10, e não sendo, o programa apresentará o resultado subtraindo 7.

<<topo>>

 

Operadores Relacionais

Ao ser utilizada a instrução se...então...fim_se, ela implica na utilização de condições para verificar o estado de uma determinada variável quanto verdadeiro ou falso. Observe que para a condição do exemplo anterior foi utilizado o sinal de > (maior que) para verificar o estado da variável quanto ao seu valor. Sendo assim, uma condição também poderá ser verificada como: diferente de, igual a, menor que, maior ou igual a e menor ou igual a. Estas verificações são efetuadas com a utilização dos chamados operadores relacionais, conforme a tabela seguinte.

Símbolo
Significado
=
Igual a
<>
Diferente de
>
Maior que
<
Menor que
>=
Maior ou igual a
<=
Menor ou igual a

<<topo>>


Desvios Condicionais Encadeados

Existem casos em que é necessário estabelecer verificação de condições sucessivas, em que uma determinada ação poderá ser executada se um conjunto anterior de instruções ou condições for satisfeito. Sendo a ação executada, ela poderá ainda estabelecer novas condições. Isto significa utilizar uma condição dentro de outra condição. Este tipo de estrutura poderá possuir diversos níveis de condição, sendo chamadas de aninhamentos ou encadeamentos.

Fluxograma

Pseudocódigo

Neste exemplo, está sendo adotado o encadeamento para a <condição 1> falsa, mas, dependendo do problema a ser resolvido, poderá ser colocado no outro lado. Como poderá ocorrer de termos a necessidade de utilizar condição dos dois lados.

se (<condição 1>) então
               <instruções para condição 1 verdadeira>
senão
               se (<condição 2>) então
                              <instruções para condição 2 verdadeira, porém condição 1 falsa>
               senão
                              <instruções para condição 1 e condição 2 falsa>
               fim_se
fim_se

Para um exemplo da utilização desta estrutura considere o seguinte problema: "Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000, o reajuste deverá ser de 5%". Veja o algoritmo, diagrama de blocos e a codificação em pseudocódigo.

Algoritmo

Perceba que o problema em questão estabelece três condições para calcular o reajuste do salário do funcionário, sendo:

  • Salário < 500, reajuste será de 15%
  • Salário >= 500, mas <= 1000, reajuste será de 10%
  • Salário >1000, reajuste será de 5%

Fluxograma

Observe que a referência feita na linha 5 do algoritmo não está escrita do diagrama de blocos e no pseudocódigo, uma vez que ela fica subentendida, ou seja, qualquer valor que não seja menor que 500 ou que não esteja situado na faixa de 500 a 1000 está conseqüentemente, acima de 1000.
Estas condições deverão ser encadeadas, pois todas as possibilidades de reajuste deverão ser cercadas. Sendo assim, observe o algoritmo abaixo:

  1. Definir uma variável para o salário reajustado: NOVO_SALÁRIO;
  2. Ler um valor para a variável SALÁRIO;
  3. Verificar se o valor de SALÁRIO <500, se sim reajustar em 15%;
  4. Verificar se o valor de SALÁRIO <=100, se sim reajustar em 10%;
  5. Verificar se o valor de SALÁRIO >1000, se sim reajustar em 5%;
  6. Apresentar o valor reajustado, implicado em NOVO_SALÁRIO.

    Pseudocódigo

    Algoritmo REAJUSTE_SALÁRIO
    var
                   novo_salário : real
                   salário : real
    início
                   leia SALÁRIO
                   se (salário 500) então
                                  novo_salário = salário * 1.15
                   senão
                                  se (salário <=1000) então
                                                 novo_salário = salário * 1.10
                                  senão
                                                 novo_salário = salário * 1.05
                                  fim_se
                   fim_se
                   escreva novo_salário
    fim

    <<topo>>

1
Hosted by www.Geocities.ws