Buscar

Aula-4-Estruturas de Repetiçã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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 55 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 55 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 55 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estruturas de Repetição
Introdução a estruturas de 
repetição em Java:
– com teste no início ( while )
– com teste no final ( do .. while )
– com variável de controle ( for )
Estrutura de Repetição com 
Teste no Início
• A <condição> é primeiro avaliada
• Enquanto a <condição> for verdadeira o “bloco verdade” é executado
• Quando a <condição> for falsa, é executado o bloco de instruções 
imediatamente após FIM_ENQUANTO
ENQUANTO <condição> FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
FIM-ENQUANTO
Estrutura de Repetição com 
Teste no Início, em Java
while ( <condição> ) {
instrução 1;
instrução 2;
. . .
instrução n;
}
ENQUANTO <condição> FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
FIM-ENQUANTO
Exemplo: Repetição com teste no 
início
• Converter o algoritmo que imprime
a tabuada do número dado pelo
usuário, usando a estrutura de
repetição ENQUANTO-FAÇA num
programa em Java.
Exemplo de Algoritmo (1) - Resolução
Nome: Tabuada
Objetivo: Elaborar um algoritmo que 
imprima a tabuada de um número 
inteiro
Dados de Entrada: Um número inteiro
Saída: A tabuada do número lido
Exemplo de Algoritmo (2) - Resolução
Variáveis:
inteiro num, <número lido>
cont, <contador da repetição>
result <resultado da multiplicação>
Exemplo de Algoritmo (3) - Resolução
INÍCIO
1 LEIA num
2 cont ← 1
3 ENQUANTO cont <= 10 FAÇA
3.1 result ← num * cont
3.2 IMPRIMA num, “x” , cont, “=” , result
3.3 cont ← cont + 1
FIM-ENQUANTO
FIM.
Inicialização da variável 
contador
Condição
Incremento da variável 
contador
Exemplo de Implementação (parte I)
package seuNome;
import javax.swing.JOptionPane;
public class Tabuada {
public static void main ( String[ ] args ) {
// declaração de variáveis:
int num;// Número lido
int cont; // Contador da repetição
int result; // Resultado da multiplicação
String entrada; // Variável auxiliar para entrada de dados
String saida; // Variável auxiliar para exibição de mensagem
Exemplo de Implementação (parte II)
// instruções:
// 1) Leia num:
entrada = JOptionPane.showInputDialog("Digite um número:" );
num = Integer.parseInt (entrada);
// 2) Inicia variáveis:
cont = 1;
saida = "";
Exemplo de Implementação (parte III)
// 3) Gera a tabuada:
while (cont <= 10) {
// 3.1) calcula:
result = num * cont;
// 3.2) monta a mensagem de saída:
saida = saída + num + " x " + cont + " = " + result + "\n" ;
// 3.3) incrementa o contador:
cont = cont + 1;
}
// 4) exibe a mensagem de saída
JOptionPane.showMessageDialog(null, saida);
} // fim do main
} // fim da classe
Exercício 6.1: Estrutura de Repetição 
com Teste no Início
• ESTE EXERCÍCIO É RECOMENDADO COMO ESTUDO PARA
A PROVA!!!
• Dada a quantidade de alunos de uma turma,
calcular a média semestral de cada aluno da
turma e mostrar uma mensagem para os
alunos aprovados.
Exemplo de Algoritmo para Exercício 
6.1 - Resolução (1)
Nome: CálculoMédia.
Objetivo: Calcular a média de cada aluno de
uma turma e mostrar uma mensagem para os
aprovados
Dados de Entrada: Quantidade de alunos,
médias do 1º e 2º bimestre (MB1 e MB2).
Saída: Média semestral de cada aluno e uma
mensagem para os aprovados
Exemplo de Algoritmo para Exercício 
6.1 - Resolução (2)
Variáveis:
inteiro qtd <quantidade de alunos>
real MB1 <Nota do 1º. Bimestre>
real MB2 <Nota do 2º. Bimestre>
real media <media semestral>
Exemplo de Algoritmo para Exercício 
6.1 - Resolução (3)
INÍCIO
1 LEIA qtd
2 cont ← 0
3 ENQUANTO cont < qtd FAÇA
3.1 LEIA MB1
3.2 LEIA MB2
3.3 media ← (MB1 + MB2)/2
3.4 SE media >= 7,0
ENTÃO
3.4.1 IMPRIMA "Você foi aprovado !“
3.4.2 IMPRIMA "Parabéns !"
FIM-SE
3.5 IMPRIMA media
3.6 cont ← cont + 1
FIM-ENQUANTO
FIM.
Inicialização da variável contador
Incremento da variável 
contador
Condição ou critério de 
parada (depende da variável 
contador já inicializada!)
Exercício 6.2: Estrutura de Repetição 
com Teste no Início
ESTE EXERCÍCIO É RECOMENDADO COMO ESTUDO PARA A
PROVA!!!
Dado um número inteiro positivo n, imprimir os n
primeiros naturais ímpares.
– Exemplo: Para n = 4,
a saída deverá ser 1, 3, 5, 7
– Escreva um algoritmo e, em seguida, implemente-o em Java.
Exercício 6.3: Estrutura de Repetição 
com Teste no Início
ESTE EXERCÍCIO É PARA SER FEITO EM SALA VALENDO NOTA!!!
Escrever um programa em java que resolva o problema a seguir:
Uma pesquisa sobre a população de uma determinada região coletou os 
seguintes dados, referentes a cada habitante, para serem analisados:
– idade (em anos)
– sexo (m-masculino, f-feminino)
– Para cada habitante são informados os dados acima. 
A fim de indicar o final da entrada, após a seqüência de dados dos habitantes, o 
usuário entrará com o valor -1 para a idade, o que deve ser interpretado pelo 
algoritmo como fim de entrada. 
Encontrar a maior idade de um conjunto de indivíduos e o percentual de indivíduos do 
sexo feminino com idade entre 18 e 35 anos.
Exemplo de Algoritmo para Exercício 
6.3 - Resolução (1)
Nome: Habitantes
Objetivo: Encontrar a maior idade de um 
conjunto de indivíduos e o percentual de 
indivíduos do sexo feminino com idade entre 
18 e 35 anos
Dados de Entrada: A idade e o sexo
Saída: a maior idade e o percentual de 
indivíduos do sexo feminino com idade entre 
18 e 35 anos
Exemplo de Algoritmo para Exercício 
6.3 - Resolução (2)
Variáveis:
inteiro idade, <idade de um indivíduo>
maioridade, <a maior idade>
femHab <habitantes do sexo feminino>
real totalHab, < total de habitantes>
porcentagem <porcentagem de habitantes>
caracter sexo <sexo do indivíduo>
INÍCIO
1. maioridade  –1 <inicializa algumas variáveis>
2. femHab  0
3. totalHab  0
4. IMPRIMA "Entre com a idade do habitante ou -1 para encerrar: “
5. LEIA idade <lê a idade do primeiro habitante>
6. ENQUANTO idade  –1 FAÇA <calcula os resultados>
6.1. LEIA sexo
6.2. SE idade > maioridade ENTÃO
6.2.1. maioridade  idade
FIM-SE
6.3. totalHab  totalHab + 1 <conta o número total de habitantes>
6.4. SE (idade  18) E (idade  35) E (sexo =’F’) ENTÃO
6.5.1. femHab  femHab + 1
FIM-SE
6.5. IMPRIMA "entre com a idade do habitante ou -1 para encerrar: "
6.6. LEIA idade <lê a idade do próximo habitante>
FIM-ENQUANTO
7. SE totalHab > 0 ENTÃO <escreve a maior idade e a porcentagem pedida>
7.1. porcentagem  femHab*100/totalHab
7.2. IMPRIMA "a maior idade é: ", maioridade
7.3. IMPRIMA "a porcentagem é: ", porcentagem
FIM-SE
FIM.
Exercícios: Estrutura de Repetição 
com Teste no Início
ESTES EXERCÍCIOS SÃO RECOMENDADOS COMO ESTUDO PARA A 
PROVA!!! 
6.4) Ler um número inteiro n, que não contém dígito 0, e escrever um 
número inteiro m que corresponde ao número n invertido. 
Por exemplo, se n igual a 123, a saída será m igual a 321
6.5) Escreva um algoritmo que leia um número inteiro e positivo
representando um número binário, determine o seu equivalente
decimal. 
Exemplo: Dado 10010 a saída será 18, 
pois
1. 24 + 0. 23 + 0. 22 + 1. 21 + 0. 2 0 = 18
Algoritmo do Exercício 6.4
Objetivo: Inverter um número inteiro sem dígito 0.
Dados de Entrada: Um número inteiro e positivo n.
Saída: o número m (n invertido).
Variáveis:
inteiro n <armazena o número inteiro>
r < armazena um valor auxiliar >
m < armazena o número invertido >
Início
1. LEIA n
2. m  0 < inicializa a variável que conterá o inteiro invertido >
3. ENQUANTO n > 0 FAÇA < encontra o número invertido>
3.1 r  n % 10
3.2 m  m * 10 + r
3.3 n  n / 10
FIM-ENQUANTO
4. IMPRIMA m
Fim
Algoritmo do Exercício 6.5
Objetivo: Ler um número inteiro representado na base 2 e fazer a conversão paraum número
inteiro representado na base 10
Entrada: Um número inteiro representado na base 2
Saída: O número lido convertido para a base 10
Variáveis:
inteiro binário, decimal, resto, pot2
Início
1. LEIA binário
2. decimal  0
3. pot2  1
4. ENQUANTO binario > 0 FAÇA
4.1 resto  binario % 10 < obtém o dígito menos significativo do nº>
4.2 decimal  decimal + resto * pot2
4.3 pot2  pot2 * 2
4.4 binario  binario / 10 <atualiza o binario >
FIM-ENQUANTO
5. IMPRIMA decimal
Fim
Exercícios Gerais:
ESTES EXERCÍCIOS SÃO RECOMENDADOS COMO ESTUDO
PARA A PROVA!!!
6.6) Faça um programa em Java que leia 5 valores inteiros
e positivos e exiba:
o maior valor, o menor valor e a média aritmética dos números
lidos
6.7) Dados valores B e E, de base e expoente, exibir BE,
sem usar a função Math.pow.
6.8) Dados inteiros positivos N e M, exiba o resultado de
N*M, sem usar o operador *.
Exercícios Gerais:
ESTES EXERCÍCIOS SÃO RECOMENDADOS COMO ESTUDO
PARA A PROVA!!!
6.9) Dados 5 valores inteiros positivos, exiba quantos
desses valores são múltiplos de 7 e quantos são pares.
6.10) ConversãoDecimalBinário
6.11) Verificar se um número é palíndromo
Estrutura de Repetição com 
Teste no Final
repetição com Teste no Final: 
FAÇA – ENQUANTO
FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
ENQUANTO <condição>
Estrutura de Repetição com 
Teste no Final
Principais características:
• O “bloco verdade” é executado uma vez
• Ao final a <condição> é avaliada
• Enquanto a <condição> for verdadeira o
“bloco verdade” é executado
• Quando a <condição> for falsa, é executado
o bloco de instruções imediatamente após a
estrutura de repetição
Estrutura de Repetição com 
Teste no Final
• A instrução ou o “bloco verdade” é executado pelo
menos uma vez, independentemente do resultado da
<condição>, enquanto que o teste no início testa
antes de executar o “bloco verdade”
FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
ENQUANTO <condição>
do {
instrução 1;
instrução 2;
. . .
instrução n;
} while ( <condição> ) ;
Exemplo: Repetição com Teste
no Final
Elaborar um algoritmo que imprima a tabuada
do número dado pelo usuário, usando a 
estrutura de repetição FAÇA-ENQUANTO
Resolução: Trecho de Algoritmo
com FAÇA-ENQUANTO
INÍCIO
1. LEIA num
2. cont ← 1
3. FAÇA
3.1 result ← num * cont
3.2 IMPRIMA num, “x “, cont, “= “, result
3.3 cont ← cont + 1
ENQUANTO cont <= 10
FIM.
Exemplo de Implementação (parte I)
package seuNome;
import javax.swing.JOptionPane;
public class Tabuada {
public static void main ( String[ ] args ) {
// declaração de variáveis:
int num; // Número lido
int cont; // Contador da repetição
int result; // Resultado da multiplicação
String entrada; // Variável auxiliar para entrada de dados
String saida; // Variável auxiliar para exibição de mensagem
Exemplo de Implementação (parte II)
// instruções:
// 1) Leia num:
entrada = JOptionPane.showInputDialog("Digite um número:" );
num = Integer.parseInt (entrada);
// 2) Inicia variáveis:
cont = 1;
saida = "";
// 3) Gera a tabuada:
Exemplo de Implementação (parte III)
do {
// 3.1) calcula:
result = num * cont;
// 3.2) monta a mensagem de saída:
saida = saida + num+ " x “+cont+" = "+ result + "\n" ;
// 3.3) incrementa o contador:
cont = cont + 1;
} while (cont <= 10);
// 4) exibe a mensagem de saída
JOptionPane.showMessageDialog(null, saida);
} // fim do main
} // fim da classe
Exemplo de Algoritmo: Validação
Uma aplicação da estrutura de reptição com teste no final
é a validação dos dados de entrada
Por exemplo: Ler um número inteiro e positivo
Nome: LerNumeroInteiroPositivo
Objetivo: Ler e mostrar um número inteiro e positivo
Dados de Entrada: Número inteiro e positivo
Saída: O número lido
Variáveis: inteiro n
Exemplo de Algoritmo: Validação
INÍCIO
1. FAÇA
1.1 LEIA n
2. ENQUANTO n < 0
3. IMPRIMA n
FIM.
Exercício 6.12: Estrutura de 
Repetição com Teste no Final
Leia o ano de nascimento de uma pessoa viva;
só aceite valores “razoáveis”. Imprima o valor
do ano e se ele é ou não ano bissexto.
– Entende-se por “razoavel” por exemplo:
• número inteiro;
• anos anteriores ou igual ao ano atual;
• é razoável considerar que alguém viva até 130
anos?
– Considere que um ano múltiplo de quatro é bissexto.
Estrutura de Repetição com 
Variável de Controle
A característica principal: sabe-se normalmente previamente o 
número de vezes que a instrução ou “bloco verdade” deve
ser repetido. 
PARA <variável> DE < valor inicial> ATÉ <valor final> PASSO <incremento> FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
FIM-PARA
Estrutura de Repetição com 
Variável de Controle, em Java
PARA <variável> DE < valor inicial>
ATÉ <valor final> PASSO
<incremento> FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
FIM-PARA
for ( <inicialização> ;
<condição> ;
<incremento> ) {
instrução 1;
instrução 2;
. . .
instrução n;
}
Exemplo: Estrutura de Repetição com 
Variável de Controle, em Java
Observações:
i ++ equivale a i = i + 1
i -- equivale a i = i -1
i +=2 equivale a i = i + 2
PARA i DE 1 ATÉ 10 PASSO 1 FAÇA
<Bloco Verdade>
instrução 1
instrução 2
.
instrução n
FIM-PARA
for ( i = 1 ; i <= 10 ; i++ ) {
instrução 1;
instrução 2;
. . .
instrução n;
}
Exemplo de Algoritmo
Elaborar um algoritmo que imprima a tabuada do número
dado pelo usuário, usando a estrutura de repetição
PARA-PASSO-FAÇA
Nome: Tabuada
Objetivo: Elaborar um algoritmo que imprima a tabuada
de um número inteiro
Dados de Entrada: Um número inteiro
Saída: A tabuada do número lido
Resolução: Algoritmo com 
Variável de Controle
INÍCIO
1. LEIA num
2. PARA cont DE 1 ATÉ 10 PASSO 1 FAÇA
2.1 result ← num * cont
2.2 IMPRIMA num, “x “, cont, “= “, result
FIM-PARA
FIM
Exemplo de Implementação (parte I)
package seuNome;
import javax.swing.JOptionPane;
public class Tabuada {
public static void main ( String[ ] args ) {
// declaração de variáveis:
int num; // Número lido
int cont; // Contador da repetição
int result; // Resultado da multiplicação
String entrada; // Variável auxiliar para entrada de dados
String saida; // Variável auxiliar para exibição de mensagem
Exemplo de Implementação (parte II)
// instruções:
// 1) Leia num:
entrada = JOptionPane.showInputDialog("Digite um número:" );
num = Integer.parseInt (entrada);
// 2) Inicia variáveis:
saida = "";
Exemplo de Implementação (parte III)
// 3) Gera a tabuada:
for ( cont=1 ; cont <= 10 ; cont ++ ) {
// 3.1) calcula:
result = num * cont;
// 3.2) monta a mensagem de saída:
saida = saida + num +" x "+cont + " = " + result + "\n" ;
}
// 4) exibe a mensagem de saída
JOptionPane.showMessageDialog(null, saida);
} // fim do main
} // fim da classe
Exercícios: Estrutura de Repetição 
com Variável de Controle
6.13) Calcular e exibir a soma de todos os números pares
desde 100 até 200, inclusive, utilizando uma instrução
condicional para determinar se o número é par.
6.14) Resolver o problema 6.13 variando o PASSO para
que a incrementação seja feita de duas em duas
unidades
Algoritmo do Exercício 6.13
Nome: SomaPares100até200
Objetivo: Somar os números pares de 100 a
200, utilizando uma instrução condicional para
determinar se o número é par.
Dados de Entrada: Nenhum dado de entrada é
requerido
Saída: O somatórios de todos os número pares
de 100 até 200
Algoritmo do Exercício 6.13
INÍCIO
1. soma ← 0
2. PARA i DE 100 ATE 200 PASSO 1 FAÇA
2.1 SE i % 2 = 0ENTÃO
2.1.1 soma ← soma + i
FIM-SE
FIM-PARA
3. IMPRIMA soma
FIM.
Algoritmo do Exercício 6.14
Nome: SomaPares100até200
Objetivo: Somar os números pares de 100 a
200, sem usar uma instrução condicional para
determinar se o número é par.
Dados de Entrada: Nenhum dado de entrada é
requerido
Saída: O somatórios de todos os número pares
de 100 até 200
Algoritmo do Exercício 6.14
INÍCIO
1. soma ← 0
2. PARA i DE 100 ATE 200 PASSO 2 FAÇA
2.1 soma ← soma + i
FIM-PARA
3. IMPRIMA soma
FIM.
Definição para o próximo Exercício
Considere a seguinte definição para
resolver o próximo exercício:
Dado um número natural N maior ou
igual a zero, o fatorial de N
(escreve-se N!) é definido como:
– Se N = 0, 0! = 1 (por definição);
– Se N > 0, N! = 1 x 2 x 3 x ... x (N – 1) x N
Exercícios Propostos
6.15) Dado um número inteiro e positivo, calcular o seu
fatorial. Fatorial é o produto dos números naturais
desde 1 até o inteiro n.
Faça a validação se o número digitado pelo usuário é
positivo.
– Por exemplo, para n = 5, o algoritmo deverá executar as
multiplicações sucessivas e acumulá-las a fim de possuir o valor
120 após 5 passos
– 5! = 1 x 2 x 3 x 4 x 5 = 120
Exercícios Propostos
6.16) Uma pessoa aplicou seu capital a juros e deseja
saber, trimestralmente, a posição de seu investimento
inicial c.
Chamando de i a taxa de juros do trimestre, escrever
uma tabela que forneça, para cada trimestre, o
rendimento auferido e o saldo acumulado durante o
período de x anos, supondo que nenhuma retirada
tenha sido feita.
O Comando BREAK
Comando break pode quebrar a execução de um comando
(como no caso do switch)
ou interromper a execução de qualquer ciclo (como no
caso do for, do while ou do do-while).
O break faz com que a execução do programa continue na
primeira linha seguinte ao loop ou bloco que está sendo
interrompido.
O Comando CONTINUE 
O comando continue pode ser visto como sendo o oposto
do break. Ele só funciona dentro de um ciclo. Quando o
comando continue é encontrado, o ciclo salta para a
próxima execução, sem abandonar o ciclo, ao contrário
do que acontecia no comando break.
Exemplo do Continue
/*Adiciona nºs entre 1 e10 sem incluir o 5 */
int sum= 0, i = 0;
While(i <= 10){
i ++;
if (i == 5)
continue;
sum+= i;
}
Exemplo do Continue
/*Adiciona nºs entre 1 e10 sem incluir o 5 */
int sum= 0, i;
for (i = 1 ; i <= 10 ; i++){
if (i == 5)
continue;
sum+= i;
}

Continue navegando