03-Estrutura de Controle Fluxo Condicionais
-
Upload
vanessacavalcantii -
Category
Documents
-
view
216 -
download
0
description
Transcript of 03-Estrutura de Controle Fluxo Condicionais
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIACAMPUS NATAL - CENTRAL
DIRETORIA DE EDUCAÇÃO E TECNOLOGIA DA INFORMAÇÃOAv. Sen. Salgado Filho, 1559, Natal/RN, 59015-000. Fone/FAX (084) 4005-2637
E-mail: [email protected] - Site: http://www.ifrn.edu.br/dietinf
Curso: - Superior de Tecnologia em Análise e Desenvolvimento de Sistemas- Superior de Tecnologia em Redes de Computadores
Disciplina: - Algoritmos e Técnicas de Programação- Introdução à Programação
Professor: Fabiano Papaiz
ESTRUTURAS DE CONTROLE DE FLUXO CONDICIONAL (se...senão e escolha...caso)
Todos os algoritmos vistos até agora foram do tipo sequencial - com fluxo contínuo.
Isso significa que todos os passos sempre são executados, desde o primeiro até o último.
Mas veremos agora um exemplo de algoritmo onde precisaremos executar alguns
passos somente se uma condição for considerada "verdadeira". Nestes casos precisaremos
utilizar os chamados controles de fluxo condicionais.
O algoritmo deverá receber um valor em reais e exibir uma das seguintes mensagens:
• "Você tem dinheiro suficiente para ir ao cinema": se o valor informado for maior ou
igual a 10
• "Infelizmente você vai ficar em casa assistindo TV": se o valor informado for menor
que 10.
Algoritmo:1. Receba o valor em reais
2. Guarde o valor em meu_dinheiro
3. Se meu_dinheiro for maior ou igual a 10 então4. exiba "Você tem dinheiro suficiente para ir ao cinema"
5. Senão
6. exiba "Infelizmente você vai ficar em casa assistindo TV"
Perceba que neste algoritmo o passo 4 só será executado se (e apenas se) a
condição "meu_dinheiro for maior ou igual a 10" for "verdadeira" (true). Assim como o passo 6 só
será executado se a condição for "falsa" (false).
O uso de condições altera o fluxo das instruções de um algoritmo, permitindo que
diferentes instruções sejam executadas de acordo com os valores de entrada.
Em nossos algoritmos, iremos utilizar dois comandos de controle de fluxo
condicionais: o se...senão e o caso. A seguir iremos detalhar o uso de cada um deles.
1
meu_dinheiro
Comando se...senão
Para escrever este comando, podemos utilizar a alternativa simples ou a composta.
Alternativa Simples1. ...
2. ...
3. se < condição_booleana > então4. faça isso
5. faça aquilo
6. ...
7. ...
Nesta alternativa, utilizamos um se sem o senão. Se a condição booleana for
verdadeira (true) os comandos dentro do bloco se serão executados (passos 4 e 5), caso
contrário, a execução do algoritmo continuará na linha seguinte ao bloco se (passo 6).
Importante observar que, uma condição booleana é uma expressão que resultará
apenas um dentre os dois valores possíveis: verdadeiro ou falso (ou true e false). Isto significa
que uma condição booleana ou retornará verdadeiro ou falso.
Abaixo estão alguns tipos de condições booleanas:• (3+4) = 7 -> verdadeiro: 7 = 7
• meu_dinheiro >= 10 -> verdadeiro se meu_dinheiro for 15, falso se for 7
• (5*2) < (1+2+3) -> falso: 10 < 6
Alternativa Composta1. ...
2. ...
3. se < condição_booleana > então4. faça isso
5. faça aquilo
6. senão
7. faça outra coisa
8. faça mais outra coisa
9. ...
10. ...
Na alternativa composta, se a condição booleana for verdadeira (true) os comandos
dentro do bloco se serão executados (passos 4 e 5), caso contrário, os comandos dentro do bloco
senão serão executados (passos 7 e 8), e por fim, a execução do algoritmo continuará no seu
fluxo normal (passo 9).
Os comandos se..senão também podem ser encadeados de várias maneiras,
formando fluxos condicionais mais complexos. A seguir temos um exemplo:
2
bloco se
bloco se
bloco senão
1. ...
2. ...
3. se < condição_booleana > então4. faça A
5. faça B
6. senão
7. se < outra_condição_booleana > então8. faça C
9. faça D
10. senão
11. faça E
12. faça F
13. ...
14. ...
Perceba que, no exemplo acima temos um bloco senão que é formado por outros dois
blocos se e senão.
Comando escolha...caso
Em algumas situações, precisaremos executar um mesmo bloco de instruções se
diversas condições forem verdadeiras para uma mesma variável. Nestas situações, o comando
escolha...caso nos fornece uma forma mais prática de escrevermos o nosso algoritmo.
Para exemplificar, vejamos dois algoritmos - que resolvem o mesmo problema - mas
um utilizando o comando se..senao e o outro o escolha...caso.
3
Exemplo: um algoritmo que deve receber um cargo de um funcionário de uma
empresa e a partir dele exibir a localização de seu assento em um auditório da seguinte forma:
• se for presidente ou gerente: camarote
• se for diretor: setor A
• se for chefe ou sub-chefe: setor B
• se for qualquer outro: setor C
Usando se..senao Usando escolha...caso
1. Receba o nome do cargo2. armazene em cargo3. se (cargo = "presidente") ou (cargo = "gerente") entao4. exiba "Dirija-se ao camarote"5. senao6. se (cargo = "diretor") entao7. exiba "Dirija-se ao setor A"8. senao9. se (cargo = "chefe") ou (cargo = "sub-chefe") entao10. exiba "Dirija-se ao setor B"11. senao12. exiba "Dirija-se ao setor C"
1. Receba o nome do cargo2. armazene em cargo3. escolha pelo valor de cargo4. caso "presidente", "gerente"5. exiba "Dirija-se ao camarote"6. caso "diretor"7. exiba "Dirija-se ao setor A"8. caso "chefe", "sub-chefe"9. exiba "Dirija-se ao setor B"10. outrocaso11. exiba "Dirija-se ao setor C"
Neste exemplo, foi preciso testar o valor da variável cargo diversas vezes. E um
mesmo bloco de instrução foi executado para mais de um valor em cargo, como em: se (cargo = "presidente") ou (cargo = "gerente") entao....
Perceba como nessa situação a utilização do comando escolha...caso tornou nosso
algoritmo mais claro e fácil de ler.
Agora responda:
1. Se precisássemos incluir uma nova condição nesse algoritmo, em qual dos dois
exemplos seria mais fácil fazer esta alteração?
2. Quando usar se..senao e quando utilizar o escolha...caso?
Exercícios:
1. Em uma construção se sem senão, o que acontece se a condição de teste for falsa?
a) O controle procura pelo último senão do algoritmo.
b) Não acontece nada.
c) O controle passa a instrução seguinte ao comando se.
d) O bloco do comando se é executado.
4
2. O senão de um comando se...senão é executado quando?
a) A expressão de teste do se for falsa.
b) A expressão do teste do se for verdadeira.
c) A expressão do teste do senão for falsa.
d) A expressão do teste do senão for verdadeira.
3. Verdadeiro ou falso: Toda construção escolha...caso pode ser transformada em se...senão
encadeados.
4. Construa um algoritmo que leia um número inteiro e mostre uma mensagem indicando se
este número é par ou ímpar, e se é positivo ou negativo.
5. Construa um algoritmo que leia 4 notas, calcule a média dessas e escreva: Reprovado
(média < 5), Recuperação (média >= 5 e < 7) e Aprovado (média >= 7).
6. Construa um algoritmo que leia a idade de um nadador e exiba sua categoria segundo as
regras: A(5 até 7); B(8 até 10); C(11 até 13); D(14 até 18) e E( Idade > 18).
7. Escreva um algoritmo que leia dois números inteiros, uma operação matemática (+,-,*,/) e
faça o calculo destes números segundo a operação lida. Lembre-se de mostrar o
resultado.
8. Monte um algoritmo que leia o nome e a idade de três pessoas e informe o nome da
pessoa mais velha e o nome da pessoa mais nova. Considere que não existem idades
iguais.
9. Construa um algoritmo que leia dois números inteiros A e B e informe se A é múltiplo,
divisor ou nada de B.
10. Monte um algoritmo que leia três números e mostre-os em ordem crescente.
11. Escreva um algoritmo que leia o salário, a idade, o tempo de trabalho e o número de
dependentes de um funcionário. A seguir, deve-se calcular e exibir o seu novo salário com
base nos seguintes critérios:
a) para cada dependente, o salário deve ser reajustado em 5%;
b) caso o funcionário tenha entre 0 e 10 anos de trabalho, seu aumento será de 5%;
c) caso o funcionário tenha entre 11 e 20 anos de trabalho, seu aumento será de 10%;
d) caso o funcionário tenha entre 21 e 55 anos, seu aumento será de 15%;
e) para o funcionário maior que 55 anos, seu aumento será de 20%.
12. Dados 3 valores A, B, C, verifique se estes podem ser valores de lados de um triângulo –
sabendo que cada lado deve ser menor do que a soma dos outros dois.
5