Você está na página 1de 14

Algoritmos e Programação

Desvio Condicional

Esta unidade tem como objetivo apresentar os conceitos de desvio


condicional. Ao final deste módulo você será capaz de escrever algoritmos
com estruturas condicionais para manipular o fluxo de execução.
Os algoritmos vistos até o momento, com entrada, processamento e
saída eram puramente sequenciais. Todas as instruções eram executadas e
em uma ordem bem definida do início ao fim.
Um desvio condicional é utilizado quando existe a necessidade de
verificar condições para a realização de uma instrução ou de uma sequência
de instruções (PUGA & RISSETTI, 2009). Vejamos um exemplo:

Suponha que uma pessoa esteja jogando um game de computador


(PUGA & RISSETTI, 2009):

1. Para que o jogador passe de uma fase (etapa) para a fase


seguinte, é necessário que se verifique se ele atingiu a pontuação
exigida. Assim, existe uma condição para a realização de uma
sequência de instruções para liberar o acesso à próxima fase do
jogo.

2. Ao final do jogo, uma pergunta é feita: “Deseja continuar?” O


jogador poderá escolher entre as respostas sim ou não.

Construção de Algoritmos – Desvio Condicional 2


Existem basicamente três tipos de desvios condicionais:

 Simples;

 Composto;

 Encadeado.

Desvio condicional simples


Um desvio condicional simples é utilizado para fazer a verificação se
uma dada condição é atendida. Se a condição for atendida, um conjunto de
instruções deverá ser executado (PUGA & RISSETTI, 2009). Caso contrário,
continua o fluxo de execução do algoritmo.
Dessa forma, a cada execução do algoritmo temos um conjunto de
instruções que podem ou não ser executadas dependendo exclusivamente
de uma condição ser satisfeita ou não. Assim, o fluxo de execução do
algoritmo deixa de ser linear e passa a sofrer um desvio de acordo com uma
condição.
Uma condição pode ser uma expressão lógica ou relacional. Portanto,
ao avaliar uma condição teremos como resposta um valor booleano true ou
false. Se a condição resultar em true, o bloco de instruções será executado –
fazendo assim o desvio de fluxo. Se a condição resultar em false, o bloco de
instruções será pulado e o fluxo de execução continuará.
Para representar um desvio condicional simples, vamos utilizar um
fluxograma que ilustra de forma bem clara a utilização de um desvio (Figura 1).

Figura 1 – Desvio condicional simples. (Fonte: PUGA & RISSETTI, 2009).

De acordo com a Figura 1, dada uma condição, se o resultado for


verdadeiro, um conjunto de instruções será executado e continua o fluxo de
execução do algoritmo. Caso o resultado dê falso, pula-se o bloco de
instruções e continua o fluxo de execução do algoritmo.

Construção de Algoritmos – Desvio Condicional 3


Para representar o desvio condicional em um algoritmo vamos utilizar
o comando if (SE...Então). A sintaxe do comando if é dada por:

Vamos analisar um exemplo: Dados dois números inteiros, calcular a


soma e apresentar o valor da soma somente se ele for maior que 10.
Primeiramente vamos criar um fluxograma para representar
essa condição.

Se a soma for maior que


10, imprime o valor da
soma e continua o fluxo de
execução do algoritmo.
Caso contrário, pula o
bloco de instrução e
continua o fluxo de
execução do algoritmo.

Construção de Algoritmos – Desvio Condicional 4


Traduzindo o fluxograma para um algoritmo temos:

Vamos analisar o algoritmo soma:


Na linha 6 declaramos as variáveis n1 e n2 para armazenar dois
números inteiros e a variável soma para armazenar o processamento da
soma dos dois números.
Após ler os dois números (linhas 9 a 11) é processada a soma dos
dois números na linha 14.
A decisão de imprimir ou não o valor da soma é tomada na linha 17.
Se a condição (soma > 10) resultar em true, então o valor da soma será
impresso (linha 19) e continuará o fluxo de execução do algoritmo na linha
21. Caso contrário, serão puladas as linhas 18, 19 e 20 e continuará o fluxo
de execução do algoritmo na linha 21.

Desvio condicional composto


O desvio condicional composto prevê dois conjuntos de instruções
para serem realizados de acordo com a avaliação de uma condição. Um
conjunto de instruções que será executado quando a condição resultar em
verdadeiro e um conjunto de instruções a ser executado quando a condição
resultar em falso (PUGA & RISSETTI, 2009). Os algoritmos agora preveem
dois caminhos possíveis a serem seguidos.
Para representar um desvio condicional composto, vamos utilizar um

Construção de Algoritmos – Desvio Condicional 5


fluxograma que ilustra de forma bem clara a utilização de um desvio (Figura 2).

Figura 2 – Desvio condicional composto. (Fonte: PUGA & RISSETTI, 2009).

De acordo com a Figura 2, dada uma condição se o resultado for


verdadeiro, um conjunto de instruções será executado e continuará o fluxo de
execução do algoritmo. Caso contrário, outro bloco de instruções será
executado e continuará o fluxo de execução do algoritmo.
Para representar o desvio condicional composto em um algoritmo
vamos utilizar o comando if/else (SE...Então...Senão). A sintaxe do comando
if/else é dada por:

Bloco do if
Condição - true

Bloco do else
Condição - false

Vamos analisar um exemplo: Dados dois números inteiros, calcular a


soma; se a soma for maior ou igual a 10, imprimir a mensagem “Soma maior
ou igual a 10”, senão, imprimir a mensagem “Soma menor que 10”. Ao final,
exibir o valor da soma.
Primeiramente vamos criar um fluxograma para representar essa condição.

Construção de Algoritmos – Desvio Condicional 6


Se condição (soma >=10) for true,
executa o bloco do if.

Se não, executa o bloco do else.

Depois, o fluxo do algoritmo é


seguido, apresentando o valor da
soma.

Traduzindo o fluxograma para um algoritmo temos:

Vamos analisar o algoritmo Soma2:


Na linha 6 declaramos as variáveis n1 e n2 para armazenar dois
números inteiros e a variável soma para armazenar o processamento da
soma dos dois números.
Após ler os dois números (linhas 9 a 11) é processada a soma dos
dois números na linha 14.
Na linha 17 é analisada condição (soma >= 10) e é tomada a decisão

Construção de Algoritmos – Desvio Condicional 7


de qual bloco será executado para uma dada execução do algoritmo.
Supondo que a soma resulte em 250, ao avaliar a condição, o
resultado será true, então o bloco do comando if será executado imprimindo
a mensagem “A soma é maior ou igual a 10” e no final, imprime o valor da
soma (250).
Supondo que a soma resulte em 4, ao avaliar a condição, o resultado
será false e o bloco da cláusula else será executado imprimindo a
mensagem “A soma é menor que 10” e no final, imprime o valor da soma (4).
A cada execução do algoritmo apenas um dos dois blocos será
executado. A condição é que indicará qual bloco será executado.

Como criar condições?


Como uma condição pode ser uma expressão lógica ou relacional,
então podemos utilizar os operadores relacionais (>= , == , != etc.) e os
operadores lógicos (&&, || e !).
E como saber qual operador lógico utilizar?
Se tivermos que verificar se um número está entre o intervalo 0 e 30
então utilizaremos o operador lógico && (E), pois o número deve ser maior
que 0 e também deve ser menor que 30.
A condição ficaria assim:
(numero > 0 && numero < 30)
Se ambas as expressões resultarem true, então o número pertence ao
intervalo.
Se na verificação quisermos incluir os números 0 e 30 devemos utilizar
os operadores relacionais >= e <=.
Se tivermos que verificar se um número é menor que 0 ou maior que
30, então utilizaremos o operador lógico || (OU), pois o número não deve
estar no intervalo entre 0 e 30.
A condição ficaria assim:
(numero < 0 || numero > 30)
Se apenas uma das expressões resultar true, então a condição é
satisfeita, pois um número não pode ser menor 0 e maior que 30
ao mesmo tempo!

Construção de Algoritmos – Desvio Condicional 8


Desvio condicional encadeado
Um desvio condicional encadeado é uma sequência de testes de
seleção, os quais serão executados ou não de acordo com o resultado das
condições e com o encadeamento dos testes (PUGA & RISSETTI, 2009).
O desvio condicional encadeado trabalha com um conjunto de
decisões aninhadas em que cada decisão mais interna depende do resultado
das decisões mais externas para ser executada. Ele é utilizado quando é
necessário testar várias condições que sejam dependentes.
Basicamente, teremos um ou mais comandos if dentro de outro
comando if, ou dentro de uma cláusula else.
Vamos analisar o fluxograma apresentado na figura 3 a seguir:

Figura 3 – Desvio condicional encadeado. (Fonte: PUGA & RISSETTI, 2009).

Na figura 3 temos duas condições ilustradas. A condição 2 é


dependente do resultado da condição 1. Se a condição resultar em false, a
condição 2 nunca será executada. Portanto, a condição 2 somente será
executada caso a condição 1 resulte em true. Nessa figura temos um
encadeamento de condições.
Apesar de não ser ilustrado na figura 3, poderíamos ter também uma
condição encadeada para o resultado false da condição 1.
Para exemplificar o uso do desvio condicional encadeado, vamos partir

Construção de Algoritmos – Desvio Condicional 9


do seguinte problema: Um aluno para ser aprovado em uma disciplina
precisa ter média maior ou igual a 6 e no mínimo 75% de frequência na
disciplina. As possibilidades e mensagens para ilustrar a situação de um
aluno, dadas a sua média e a sua frequência são:

 Aluno APROVADO!
 Aluno REPROVADO por falta!
 Aluno REPROVADO por nota!

Vamos analisar o algoritmo SituacaoAluno:

Para criar o algoritmo declaramos as variáveis média e frequência


para armazenarem as entradas dos usuários (linhas 6 a 12).
Na linha 14 uma decisão é tomada: o conteúdo da variável média é
maior ou igual a 6? Se o resultado desta condição for true, então outra
decisão será tomada. A segunda decisão somente será avaliada se condição
anterior for true. Se não, (linha 20) será executada a cláusula else indicando
a reprovação do aluno por nota.
Para a segunda tomada de decisão temos (linha 15): o conteúdo da
variável frequência é maior ou igual a 75? Se for, será indicada a aprovação
do aluno. Se não, a cláusula else (linha 17) será executada indicando a

Construção de Algoritmos – Desvio Condicional 10


reprovação do aluno por falta.

Lembre-se de que podemos ter if encadeado tanto para o comando


if quanto para uma cláusula else!

Atividades de fixação

Exercício 1
Faça um algoritmo para ler um número inteiro e imprimir o seu valor
caso esteja no intervalo entre 50 e 100 (inclusive).

Resposta:

Exercício 2
A empresa XSoftware concedeu um bônus de 20% do valor do salário
a todos os funcionários com tempo de trabalho na empresa igual ou superior
a cinco anos e um bônus de 10% aos demais funcionários. Faça um
algoritmo que leia o salário e a quantidade de anos de casa de um
funcionário, calcule e imprima o valor do bônus.
Resposta:

Construção de Algoritmos – Desvio Condicional 11


Exercício 3
Faça um algoritmo que receba a idade de um nadador e imprima a sua
categoria seguindo as regras:

Categoria Idade

Infantil A 5 - 7 anos

Infantil B 8 - 10 anos

Juvenil A 11- 13 anos

Juvenil B 14- 17 anos

Sênior maiores de 18 anos

Resposta:

Construção de Algoritmos – Desvio Condicional 12


BIBLIOGRAFIA
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi
de. Fundamentos de Programação de Computadores. 2. ed. São Paulo:

Construção de Algoritmos – Desvio Condicional 13


Pearson Prentice Hall, 2007.

FORBELLONE, A. L. V. & EBERSPÄCHER, H. F. Lógica de Programação: a


construção de algoritmos e estruturas de dados. 2. ed. São Paulo: Makron
Books, 2002.

PUGA, Sandra; RISSETTI, Gerson. Lógica de programação e estruturas de


dados com aplicações em Java. 2. ed. São Paulo: Pearson Prentice Hall,
2009.

Construção de Algoritmos – Desvio Condicional 14

Você também pode gostar