Buscar

Conteúdo Interativo 5

Prévia do material em texto

10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 1/12
Algoritmos
Aula 5 - Estrutura de decisão
INTRODUÇÃO
Tomar decisões é uma parte muito importante da nossa vida e também dos nossos programas. Fazemos isso todos os
dias e a toda hora. 
Um programa também tem momentos nos quais tem de parar e avaliar as condições para tomar uma determinada
direção. Imagine o robô Curiosity em Marte fazendo suas explorações: ao encontrar um determinado tipo de material,
ele precisa avaliar e tomar alguma decisão. 
En�m, a estrutura de decisão é outra peça fundamental e presente em qualquer linguagem de programação. 
Vamos dividir este conceito em duas aulas e, nesta, vamos começar com os conceitos mais básicos. 
Vamos lá?
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 2/12
OBJETIVOS
Aplicar seus conhecimentos para escrever programas usando a estrutura de desvio condicional simples e composto.
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 3/12
RECORDANDO...
Até agora, vimos os seguintes elementos de programação:
Já aprendemos bastante coisa, não é? 
Para continuar nossos estudos, temos que começar a aplicar estes conceitos daqui para a frente e estudar alguns
comandos que desviam o �uxo sequencial e natural de um algoritmo e de um programa. 
É assim que ocorre também na estrada a seguir: o motorista que está nesta estrada tem uma importante decisão a
fazer: ou toma o caminho da direita ou o da esquerda.
Exemplo
, Nos programas de computador, as decisões são muito mais comuns do que você pensa. Quando você abre um arquivo, se ele for
protegido, então vai aparecer uma janela avisando. No Word, se o botão de negrito estiver selecionado, então o seu texto �cará em
negrito, e por aí vai. 
Temos que aprender a fazer isso. 
Vamos usar um exemplo mais fácil: pense nas suas notas escolares. Suponha que a média para aprovação seja 6.
COMO VOCÊ BOLARIA UM PROGRAMA PARA VERIFICAR SE VOCÊ
ESTÁ APROVADO OU NÃO?
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 4/12
O desvio é feito quando a média é maior que 6. E uma vez que a média for maior que 6, o programa pega um caminho
que exclui a outra possibilidade (de ser menor que 6).Além disso, atente que, se a nota for exatamente igual a 6, nem
assim o aluno estará aprovado. 
Percebeu que a condição lógica é importante? Isto foi visto na aula anterior, e lá dissemos que estas condições têm
que ser muito bem montadas para poder executar o programa corretamente.
Esse desvio é chamado de desvio condicional simples. Vamos observá-lo com mais detalhes em C++.Esse desvio é chamado de desvio condicional simples. Vamos observá-lo com mais detalhes em C++.
CALCULANDO UM DESVIO CONDICIONAL SIMPLES
Você também deve ter percebido que grifamos algumas palavras desde o início desta aula. 
Quais foram as palavras grifadas?Quais foram as palavras grifadas? 
“Se” e “então”. Aí, entramos no conceito do primeiro tipo de desvio: o chamado desvio condicional simpleso chamado desvio condicional simples.
Vamos fazer um exemplo para mostrar este tipo de desvio de �uxo. Trata-se do cálculo do IMCIMC (glossário) (glossário) (índice de
massa corporal). Este índice é muito fácil de ser calculado e, de acordo com seu resultado, precisamos consultar uma
tabela para classi�car o usuário.
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 5/12
COMO PROGRAMAR UM DESVIO CONDICIONAL SIMPLES
Veja que o programa:
Compare a forma como usamos o if com a �gura do comando exibida anteriormente. Tranquilo, né? Se o cálculo for
menor que 17, o sujeito está bem abaixo do peso. 
Essa classi�cação é feita de acordo com a tabela a seguir. Esta tabela pode ser obtida em qualquer site que mostre o
cálculo do IMC.
VÍDEO
PROGRAMANDO...
Portanto, como podemos perceber, a sintaxe de um if em C++ é assim:
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 6/12
Perceba que temos alguns detalhes que precisam ser seguidos para o if poder funcionar.
Exemplo
, Em C++, não utilizamos a palavra “então”. Fica implícito que o código que virá a seguir é o que deve ser feito quando a condição
testada é verdadeira. 
O comando é simples. Dentro dos parênteses há um teste, o qual pode ser uma simples comparação ou uma expressão lógica
maior. Isto vai depender do programa.
Então, prepare-se para colocar dentro desse teste qualquer tipo de expressão que possa ser avaliada e retornar
verdadeiro (true) ou falso (false). Se o teste for verdadeiro, o bloco é executado. Se for falso, o bloco é ignorado
completamente e o �uxo do programa continua na linha seguinte ao bloco.
O tamanho do bloco pode ser de 1, 2, 200, 2.000 linhas. De qualquer forma, se o teste for false, todo o bloco,
independentemente do tamanho que seja, será ignorado.
Você se lembra do �uxograma?Você se lembra do �uxograma? 
Para esta estrutura, o �uxograma correspondente é:
Voltando ao programa do cálculo do IMC, podemos torná-lo mais complexo.
Como você pode perceber, o programa só vai tratar daquelas pessoas bem magrinhas. As outras classi�cações
existentes na tabela não foram contempladas.
E agora? Como vamos fazer? O que vocêE agora? Como vamos fazer? O que você
sugere?sugere?
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 7/12
É simples. Se for menor que 17, já �zemos, a situação é “muito abaixo do peso”. 
Se estiver entre 17 e 18,49, a situação é “abaixo do peso”. Se estiver entre 18,5 e 24,99, a situação é “peso normal”. 
E assim por diante. 
Mas o que signi�ca estar entre 17 e 18,49 (por exemplo)?
Resposta Correta
Atenção
, Clique aqui (galeria/aula5/docs/a05_slide14.pdf) para fazer dowmload do programa.
VÍDEO
COMO PROGRAMAR UM DESVIO CONDICIONAL COMPOSTO
Até agora, aprendemos apenas uma parte da estrutura condicional. Vimos que, se uma condição for verdadeira, ela vai
executar um bloco de programação, e em seguida, continuar com o �uxo normal do programa. 
Veja o exemplo:
Observe que se a idade for menor que 18, o programa vai ignorar todo o bloco entre as linhas 10 a 14 e continuar o seu
�uxo normal na linha 15. 
Mas e se quisermos tratar a condição quando a idade for menor que 18 anos?Mas e se quisermos tratar a condição quando a idade for menor que 18 anos? 
Sua primeira resposta pode ser: “mas isto já é feito no programa acima. A linha 15 é executada se a idade for menor
que 18”.
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 8/12
Preste atenção: a linha 15 será executada de qualquer maneira. 
O que estamos propondo agora é:
Se a idade for maior que 18, faça as linhas 11 a 14, senão faça outra coisa! A situação pode ser explicada de acordo
com o �uxograma a seguir:
PROGRAMANDO UM DESVIO CONDICIONAL COMPOSTO
Em C++, a sintaxe é a seguinte:
Vamos ver um exemplo em C++:
VÍDEO
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f0… 9/12
Na linha 10, o teste é feito. Se o número for positivo, o programa executa a linha 11, encontra o �mdo bloco e (preste
atenção agora) vai para a linha 16.  O programa ignora o bloco do “else” (pois este bloco é a execução caso o teste for
falso). 
Se o teste da linha 10 for falso, o programa vai ignorar o bloco que começa com o { logo após o if e vai diretamente
procurar o else, que está na linha 13. Ele executa o bloco do else, também passa pela linha 16 e �naliza o programa. 
Assista com atenção ao vídeo:
O código do programa executado no vídeo é o seguinte:
Durante o vídeo, temos duas execuções. Cada uma delas mostra o resultado do teste da linha 10. 
Veja que, quando o teste é positivo, o programa executa o bloco das linhas 10 a 13, e quando o teste é falso, o bloco
das linhas 14 a 17 é executado. E para �nalizar, a frase da linha 18 é sempre mostrada.
Na próxima aula, vamos continuar a aprenderNa próxima aula, vamos continuar a aprender
outras formas de desvios de �uxo e, portanto,outras formas de desvios de �uxo e, portanto,
ainda vamos �car mais um tempoainda vamos �car mais um tempo
desvendando o “desvendando o “if-elseif-else”. Até lá!”. Até lá!
ATIVIDADE
1) Faça um programa bastante útil: para doar sangue, é necessário ter entre 18 e 67 anos.para doar sangue, é necessário ter entre 18 e 67 anos. 
Desenvolva um programa em C++ que pergunte a idade de uma pessoa e diga se ela pode doar sangue ou não.
Resposta Correta
2) O pedaço de programa abaixo está correto?
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f… 10/12
Sim, e vai imprimir “Idade maior ou igual a 15”.
Sim, e vai imprimir “Idade menor que 15”.
Não, pois o operador relacional está errado.
Não, há um erro de sintaxe na primeira linha.
Não, o cout pede o operador “>>”.
Justi�cativa
3) Em um programa para determinar se o número é par ou ímpar, vamos precisar dos seguintes recursos: 
I - Do operador mod (%); 
II - De um desvio condicional composto; 
III - Da biblioteca cmath.
Apenas I.
Apenas II.
Apenas III.]
Apenas I e II.
Apenas II e III.
Justi�cativa
4) Dentre os recursos que aprendemos, quais seriam usados para um programa que veri�ca se uma letra informada é
uma vogal ou consoante? 
I - Um if simples 
II - Um if composto 
III - Operador de igualdade (==) 
IV - Operador && 
V -Operador ||
Somente I e III.
Somente I, III e V.
Somente I, III e IV.
Apenas II, III e IV.
Apenas II, III e V.
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f… 11/12
Justi�cativa
5) Analise o trecho de programa em C++ abaixo e escolha a alternativa correta: 
int main(void) { 
int A, B; 
cin>>B 
cin>>A; 
if (A > B) 
B = A + B; 
if (A < B) 
A = (B%2); 
cout<<A; 
} 
Se A=62 e B=32, o que o programa vai imprimir?
62.
32.
0.
34.
93.
Justi�cativa
3) Escolha a condição que fará que o número 13 seja impresso: 
int main(void){ 
int num1, num2; 
num1 = 13; 
num2 = 22; 
if ( ________________________) 
cout<else 
cout<<num1; 
}
(num1>num2)||(num2<20)
(num2>num1)&&(num2<25)
(num1>num2)||(num1<20)
(num1==num2)||(num2<25)
(num1<num2)&&(num2<20)
Justi�cativa
10/03/2019 Disciplina Portal
http://estacio.webaula.com.br/Classroom/index.html?id=2405949&classId=1132431&topicId=2652526&p0=03c7c0ace395d80182db07ae2c30f… 12/12
Glossário
IMC
Índice de Massa Corporal. Este índice é adotado pela OMS (Organização Mundial de Saúde) e é usado para o diagnóstico da
obesidade e sobrepeso.

Continue navegando