03-Estrutura de Controle Fluxo Condicionais

5
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS NATAL - CENTRAL DIRETORIA DE EDUCAÇÃO E TECNOLOGIA DA INFORMAÇÃO Av. 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ão 4. 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

description

03-Estrutura de Controle Fluxo Condicionais

Transcript of 03-Estrutura de Controle Fluxo Condicionais

Page 1: 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

Page 2: 03-Estrutura de Controle Fluxo Condicionais

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

Page 3: 03-Estrutura de Controle Fluxo Condicionais

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

Page 4: 03-Estrutura de Controle Fluxo Condicionais

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

Page 5: 03-Estrutura de Controle Fluxo Condicionais

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