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
[grade >= 60]
print “Passed”
[grade < 60]
diagrama de atividade para um comando if
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
[grade < 60]
print “Failed”
[grade >= 60]
print “Passed”
diagrama de atividade para um comando if..else
10
4.7
O laço while
• Repita a ação enquanto a condição permanecer
verdadeira
11
merge
decisão
[product <= 1000]
dobra o valor do produto
[product > 1000]
instrução Java:
product = 2 * product;
Diagrama de atividade para um laço while.
4.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
12
13
total  0
contador  1
Enquanto contador <= 10
Leia a próxima nota
total  total + nota
contador  contador + 1
fim enquanto
media  total / 10
Imprime 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
15
Outline
Declara variáveis;
contaNotas é o contador
Continua o laço enquanto
contaNotas for menor ou
igual a 10
16
Outline
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  0
contador  0
Leia a primeira nota (talvez até a sentinela)
Enquanto o usuário não digitar o valor sentinela
total  total + nota
contador  contador + 1
Leia a próxima nota (talvez seja a sentinela)
fim enquanto
se contador <> 0
média  total / contador
Imprime a média
senão
Imprime “Nenhuma nota foi entrada”
O problema da média resolvido por um laço com
sentinela
19
20
Outline
efetua o laço até que o valor da
sentinela nota seja igual a (-1)
Formata o número com duas
casas decimais
21
Outline
Media2.java
22
4.10 Estudo de Caso 3: Estruturas de
Controle Aninhadas
• Estruturas de Controle Aninhadas
23
aprovados  0
reprovados  0
estudante  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 aprovados
Imprime o número de reprovados
Se aprovados > 8
Imprime “Aumentar a dificuldade!”
Pseudo código para o problema da estatística dos resultados.
24
25
Outline
26
Outline
Analise.java
27
Operadores
++ -++ -*
/
+
<
<=
== !=
?:
=
+=
Fig. 4.15
Associação
Tipo
direita para a esquerda pós-incremento e pósdecremento
+
(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
Precedência e associação dos operadores vistos até aqui.
Download

Estruturas de Controle