1 Estruturas de Controle. 2 4.2 Algoritmos Algoritmos –Série de ações em uma ordem específica...

Preview:

Citation preview

1

Estruturas de Controle

2

4.2 Algoritmos

• Algoritmos– Série de ações em uma ordem específica

• As ações executadas• Ordem na qual as ações são executadas

• Controle do Fluxo do Programa– Especificar a ordem na qual as ações são executadas

• As estruturas de controle ajudam a determinar esta ordem

3

4.3 Pseudocódigo

• Pseudocódigo– Linguagem informal para desenvolver algoritmos– Não é executado em computadores– Ajuda os desenvolvedores a "pensar" em algoritmos

4

4.4 Estruturas de Controle

• Execução seqüencial– As instruções do programa executam uma após a outra

• Transferência de Controle– Três estruturas de controle podem especificar a ordem de

execução das instruções:• estruturas de seqüência• estruturas de seleção• estruturas de repetição

5

4.4 Estruturas de Controle

• As estruturas seqüenciais são o default para a execução de programas Java

• Java tem três estruturas de seleção– if– if…else– switch

• Java tem três estruturas de repetição– while– do…while– for

• Cada uma dessas palavras é uma palavra reservada Java

6

4.5 Comando if (sem else)

• Estrutura de controle "entrada única/saída única"• Executa a ação somente se a condição for

verdadeira• Modelo de programação de ação/decisão

7

diagrama de atividade para um comando if

[grade >= 60]

[grade < 60]

print “Passed”

8

4.6 comando if…else

• Realiza a ação somente quando a condição é verdadeira

• Quando a condição é falsa, executa uma outra ação alternativa especificada pelo programador

• Operador condicional ternário (?:)• Estruturas if…else aninhadas

9

diagrama de atividade para um comando if..else

[grade >= 60][grade < 60]print “Failed” print “Passed”

10

4.7 O laço while

• Repita a ação enquanto a condição permanecer verdadeira

11

Diagrama de atividade para um laço while.

[product <= 1000]

[product > 1000]

dobra o valor do produto

merge

decisão

instrução Java:product = 2 * product;

124.8 Formulando algoritmos: Estudo de Caso 1 (Repetição controlada por

um contador)• Contador

– Variável que controla o número de vezes que um grupo de instruções é executada

• Media1.java calcula a média de notas– usa um contador para controlar o número de repetições

13

 total 0contador 1

Enquanto contador <= 10Leia a próxima notatotal total + notacontador contador + 1

fim enquanto

media total / 10Imprime a média

Pseudo código de um algoritmo que usa uma estrutura de repetição controlada por um contador para resolver o problema da média de uma turma.

14

Outline15

Declara variáveis; contaNotas é o contador

Continua o laço enquanto contaNotas for menor ou

igual a 10

Outline16

Media1.java

17

4.9 Estudo de Caso 2 (Repetição controlada por uma sentinela)

• Valor sentinela– Usado para indicar o fim da entrada de dados

• Media2.java tem o número de repetições indefinido– Usuário entra o valor sentinela (-1) para terminar as

repetições

18

total 0contador 0

Leia a primeira nota (talvez até a sentinela)

Enquanto o usuário não digitar o valor sentinelatotal total + notacontador contador + 1Leia a próxima nota (talvez seja a sentinela)

fim enquanto

se contador <> 0média total / contadorImprime a média

senãoImprime “Nenhuma nota foi entrada”

O problema da média resolvido por um laço com sentinela

19

Outline20

efetua o laço até que o valor da sentinela nota seja igual a (-1)

Formata o número com duas casas decimais

Outline21

Media2.java

22

4.10 Estudo de Caso 3: Estruturas de Controle Aninhadas

• Estruturas de Controle Aninhadas

23

aprovados 0reprovados 0estudante 1

Enquanto estudante <= 10 Leia o próximo resultado de exame

Se o estudante passou aprovados aprovados + 1

senão reprovados reprovados + 1

  estudante estudante + 1

Fim enquanto

Imprime o número de aprovadosImprime o número de reprovados

Se aprovados > 8 Imprime “Aumentar a dificuldade!”

Pseudo código para o problema da estatística dos resultados.

24

Outline25

Outline26

Analise.java

27

Operadores Associação Tipo ++ -- direita para a esquerda pós-incremento e pós-

decremento ++ -- + - (type) direita para a esquerda unários * / % esquerda para a direita multiplicativos + - esquerda para a direita aditivos < <= > >= esquerda para a direita relacionais == != esquerda para a direita igualdade ?: direita para a esquerda condicional = += -= *= /= %= direita para a esquerda atribuição Fig. 4.15 Precedência e associação dos operadores vistos até aqui.

Recommended