Buscar

Algoritmos Aula 5 Estrutura de decisão

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

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

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ê viu 3, do total de 21 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

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

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ê viu 6, do total de 21 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

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

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ê viu 9, do total de 21 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

Prévia do material em texto

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. 
Enfim, 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á? 
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 fluxo 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 ficará 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? 
 
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++. 
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? 
“Se” e “então”. Aí, entramos no conceito do primeiro 
tipo de desvio: o chamado desvio condicional 
simples. 
Vamos fazer um exemplo para mostrar este tipo de 
desvio de fluxo. Trata-se do cálculo do IMC (índice de 
massa corporal). Este índice é muito fácil de ser 
calculado e, de acordo com seu resultado, precisamos 
consultar uma tabela para classificar o usuário. 
 
Como programar um desvio condicional simples 
Veja que o programa: 
 
Compare a forma como usamos o if com a figura do 
comando exibida anteriormente. Tranquilo, né? Se o 
cálculo for menor que 17, o sujeito está bem abaixo 
do peso. 
Essa classificação é feita de acordo com a tabela a 
seguir. Esta tabela pode ser obtida em qualquer site 
que mostre o cálculo do IMC. 
 
 
Fonte: 
https://www.youtube.com/embed/https://youtu.be/
2TTJW92xHcQ 
Programando... 
Portanto, como podemos perceber, a sintaxe de um if 
em C++ é assim: 
 
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 fluxo 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 fluxograma? 
Para esta estrutura, o fluxograma 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 
classificações existentes na tabela não foram 
contempladas. 
E agora? Como vamos fazer? O que você sugere? 
É simples. Se for menor que 17, já fizemos, 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 significa estar entre 17 e 18,49 (por 
exemplo)? 
GABARITO 
Resposta em “computes”: imc>=17 E imc<=18,49, ou 
melhor, imc>17 && imc<=18,49. 
Atenção 
https://www.youtube.com/VcwYB1p0_mU 
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 fluxo 
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 fluxo normal na linha 15. 
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”. 
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 fluxograma a seguir: 
 
Programando um desvio condicional composto 
Em C++, a sintaxe é a seguinte: 
 
Vamos ver um exemplo em C++: 
 
Fonte: https://www.youtube.com/embed/ylAcViIrZIs 
Na linha 10, o teste é feito. Se o número for positivo, 
o programa executa a linha 11, encontra o fim do 
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 
finaliza 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 
finalizar, a frase da linha 18 é sempre mostrada. 
Na próxima aula, vamos continuar a aprender outras 
formas de desvios de fluxo e, portanto, ainda vamos 
ficar mais um tempo desvendando o “if-else”. Até lá! 
Atividade 
 
1) Faça um programa bastante útil: 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. 
2) O pedaço de programa abaixo está correto? 
 
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 “>>”. 
GABARITO 
Letra d. Após o if e a condição, não pode ter o “;”. 
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. 
GABARITO 
 
4) Dentre os recursos que aprendemos, quais seriam 
usados para um programa que verifica 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. 
GABARITO 
 
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. 
GABARITO 
 
6) 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) 
GABARITO

Outros materiais