Buscar

Desvios Condicionais em Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

0 
 Construção de Algorítmos 
1 
 
Autor(a): Simone de Abreu 
Curso Superior de Tecnologia em Análise e Desenvolvimento 
de Sistemas 
Coordenador: Emerson dos Santos Paduan 
 
São Paulo - 2016 
2 
Sumário 
Desvio condicional simples, composto e encadeado 3 
Introdução 3 
Desvio condicional simples 4 
Desvio condicional composto 7 
Desvio Condicional Encadeado 10 
Como Criar Condições? 13 
Bibliografia básica 16 
Bibliografia complementar 16 
3 
Desvio condicional simples, composto e enca-
deado 
Introdução 
O conteúdo apresentado nesta unidade tem como objetivo principal apontar os 
conceitos que serão abordados, direcionando-o para a consulta do material 
completo a ser estudado, por meio de acessos às Bibliotecas Virtuais disponí-
veis na página da Universidade Anhembi Morumbi. 
Cada tópico aqui abordado deverá ser estudado conforme as indicações desta-
cadas nos links. 
Siga os passos abaixo para acessar a Biblioteca da Universidade: 
 Entre na página da Biblioteca da Universidade; 
 Clique no ícone da Biblioteca Virtual 3.0/Ebrary/VTC, conforme figura 1; 
 Faça o login, se necessário. 
 
Figura 1- Página da Biblioteca da Universidade 
4 
Desvio condicional simples 
Os algoritmos vistos até o momento com entrada, processamento e saída eram 
puramente sequenciais. Todas as instruções eram executadas em uma ordem 
bem definida, do início ao fim. 
Um desvio condicional é utilizado quando existe a necessidade de se verificar 
condições para a realização de uma instrução ou de uma sequência de instru-
ções (PUGA & RISSETTI, 2009). 
A seguir, um exemplo de desvio condicional: 
 
Um desvio condicional simples é utilizado para verificar 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 tem-se um conjunto de instruções 
que podem ou não ser executadas, dependendo exclusivamente de uma con-
diçã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 o resultado da condição. 
Uma condição pode ser uma expressão lógica ou relacional. Portanto, ao se 
avaliar uma condição, tem-se 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 do fluxo. Se a condição resultar em false, o bloco de instrução 
será pulado e o fluxo de execução continuará. 
Suponha que uma pessoa esteja jogando um game de computador (PUGA 
& RISSETTI, 2009): 
1. Para que o jogador passe de uma fase para a fase seguinte, é 
necessário que se verifique se ele atingiu a pontuação exigida. As-
sim, 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 jo-
gador poderá escolher entre as respostas sim ou não. 
 
5 
 
 
A Figura 2 representa um desvio condicional simples utilizando um fluxograma 
para ilustrar de forma bem clara um desvio. 
 
Figura 2 – Fluxograma de um desvio condicional simples 
Ao analisar a Figura 2, o bloco de instruções ({ }) somente será executado se o 
resultado da condição resultar em true. Caso contrário, o bloco será pulado e o 
fluxo de execução continuará normalmente. 
O comando que representa um desvio condicional simples é o if. A Figura 3 
apresenta a sintaxe desse comando. 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/57 
(Capítulo 5 do livro Lógica de programação e estruturas de dados com 
aplicações em Java, de Puga e Rissetti). 
Observe, neste capítulo, o tópico 5.4 – Estruturas de Seleção Simples. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/57
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/57
6 
 
Figura 3 – Sintaxe do desvio condicional simples 
O exemplo a seguir (Figura 4) representa um desvio de fluxo que somente ocor-
rerá se o jogador de um game atingir 1000 pontos ou mais. Ao atingir essa pon-
tuação, o jogador passa para a próxima fase. Caso contrário, continua o fluxo 
de execução. 
 
Figura 4 – Exemplo de um desvio condicional simples 
 
A implementação em Java do exemplo do game é representada pela classe 
Game (Figura 5). Após informar a pontuação atingida, é tomada uma decisão 
para avançar ou não de fase. O avanço de fase somente acontecerá se a pon-
tuação for maior ou igual a mil pontos. 
7 
 
 
Figura 5 – Exemplo comando if 
 
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 con-
junto 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 se-
rem seguidos. 
A Figura 6, a seguir, representa um desvio condicional composto utilizando um 
fluxograma. 
8 
 
Figura 6– Fluxograma de um desvio condicional composto 
 
Ao analisar a Figura 6, se o resultado da condição 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, utiliza-se o 
comando if/else. A sintaxe desse comando é representada na Figura 7. 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/57 
(Capítulo 5 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
Observe, neste capítulo, o tópico 5.5 – Estruturas de Seleção Com-
posta. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/57
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/57
9 
 
Figura 7 – Sintaxe do desvio condicional composto 
 
O fluxograma a seguir (Figura 8) representa um desvio condicional composto 
para indicar se um número inteiro é par ou ímpar. Para determinar isso, é ne-
cessário saber se o número é divisível por 2; caso seja, então ele é par; caso 
contrário, é ímpar. 
 
 Figura 8 – Fluxograma representando um desvio condicional composto 
 
A classe ParImpar (Figura 9) apresenta a implementação do algoritmo para de-
terminar se um número é par ou ímpar. Agora existem dois fluxos distintos que 
serão executados de acordo com o resultado da condição. Um fluxo para o 
10 
bloco do if e outro fluxo para o bloco do else. Apenas um fluxo é acionado a cada 
execução da classe ParImpar: 
 
 
Figura 9 – Exemplo comando if/else 
 
É importante ressaltar que a cláusula else é sempre a negação da condição ve-
rificada no comando if. Portanto, não existe condição para a cláusula else. 
 
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 aninha-
das, 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, tem-se um ou mais comandos if dentro de outro comando if, ou 
dentro de uma cláusula else. A Figura 10 apresenta um exemplo de fluxograma 
para desvio condicional encadeado. 
11 
 
Figura 10 – Fluxograma de um desvio condicional encadeado 
 
Ao analisar a Figura 10, é possível perceber que a condição 2 é dependentedo 
resultado da condição 1. Se a condição 1 resultar em false, a condição 2 nunca 
será executada. Portanto, a condição 2 somente será executada se a condição 
1 resultar em true. O encadeamento também poderia acontecer para um resul-
tado false da condição 1. 
 
 
Para exemplificar o uso do desvio condicional encadeado, será analisado o se-
guinte problema: 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/61 (Capítulo 5 do livro Lógica de programa-
ção e estruturas de dados com aplicações em Java, de Puga e Rissetti). 
Observe, neste capítulo, o tópico 5.6 – Estruturas de Seleção Encadea-
das. 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/59 (Capítulo 4 do livro Fundamentos da 
programação de computadores, de Ascencio e Campus). 
Observe, neste capítulo, o tópico 4.4 – Estrutura condicional em Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/61
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/61
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/59
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/59
12 
 
Para ser aprovado em uma disciplina, um aluno precisa ter média maior ou 
igual a 6 e, no mínimo, 75% de frequência na disciplina. As possibilidades e 
as 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! 
 
Na classe SituacaoAluno (Figura 11), tem-se um desvio condicional encadeado. 
A decisão (frequência >= 75) somente será avaliada se a decisão anterior (media 
>= 6 ) resultar em true. 
Para verificar se o aluno foi aprovado ou não, primeiro se verifica a média atin-
gida. Se a média for menor que seis pontos, o fluxo vai para a cláusula else e 
apresenta uma mensagem de reprovação. Mas, se a média for maior ou igual a 
seis pontos, tem-se outra decisão, que é verificar a frequência do aluno nas au-
las. Caso a frequência seja maior ou igual a 75%, o aluno está aprovado; caso 
contrário, o aluno está reprovado por falta. 
13 
 
Figura 11 – Exemplo comando if/else encadeado 
 
Como Criar Condições? 
Para criar uma condição, é necessário identificar quais decisões serão tomadas 
em um determinando problema. Basicamente, tem-se de identificar quais per-
guntas devem ser respondidas em um problema. 
Uma condição é uma expressão lógica/relacional que utiliza os operadores re-
lacionais (>=, ==, <, != etc) e os operadores lógicos (&&, || e !). 
E como saber qual operador lógico utilizar? 
Para determinar se um número pertence a um intervalo entre 0 e 30, deve-se 
utilizar o operador lógico && (E), pois o número deve ser maior ou igual a 0 e 
também deve ser menor ou igual a 30. Se ambas as expressões resultarem true, 
então o número pertence ao intervalo (Figura 12). 
14 
 
Figura 12 – Exemplo de condição utilizando o operador && 
 
Já para determinar se um número está fora do intervalo entre 0 e 30, utiliza-se 
o operador lógico || (OU), pois o número deve ser menor que 0 ou maior que 
30. Se apenas uma das expressões resultar true, então a condição é satisfeita, 
pois um número não pode ser menor que 0 e maior que 30 ao mesmo tempo! 
(Figura 13) 
 
Figura 13 – Exemplo de condição utilizando o operador || 
 
Para formar uma condição é possível ter vários operadores relacionais e lógicos 
na mesma expressão. Por exemplo, pode-se utilizar o operador && e || em 
uma mesma expressão. 
Além do comando if/else para representar decisões em um programa, é possível 
utilizar o comando switch..case. Para saber mais sobre esse comando, acesse a 
bibliografia a seguir. 
 
 
15 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/65 
(Capítulo 5 do livro Lógica de programação e estruturas de dados com 
aplicações em Java, de Puga e Rissetti). 
Observe, neste capítulo, o tópico 5.7 – Estruturas de Seleção de Múltipla 
Escolha. 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/59 
(Capítulo 4 do livro Fundamentos da programação de computadores, 
de Ascencio e Campus). 
Observe, neste capítulo, o tópico 4.4.3 – Estrutura case. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/65
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/65
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/59
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/59
16 
Bibliografia básica 
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos de Programação de Compu-
tadores. 2. ed. São Paulo: Pearson Prentice Hall, 2007. 
PUGA, S; RISSETTI, G. Lógica de programação e estruturas de dados com aplica-
ções em Java. 2. ed. São Paulo: Pearson Prentice Hall, 2009. 
 
Bibliografia complementar 
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: Prentice Hall, 2005.

Outros materiais