Nothing Special   »   [go: up one dir, main page]

Técnicas de Programação III

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 22

Técnicas de

Programação
Material Teórico
Estruturas de Repetição

Responsável pelo Conteúdo:


Prof. Esp. Margarete Eliane da Silva Almendro

Revisão Técnica:
Prof. Me. Douglas Almendro

Revisão Textual:
Prof. Me. Selma Aparecida Cesarin
a
Estruturas de Repetição

• Estruturas de Repetição
• Agrupando comandos

Nesta Unidade, o aluno terá uma visão do que vem a ser estrutura de
repetição e aplicação na programação bem como suas facetas para entender
a resolução de problemas computacionais.

Olá, alunos(as)!
Hoje veremos alguns assuntos introdutórios na nossa Disciplina e aproveito para apresentar
alguns conceitos que utilizaremos na estrutura de todas as nossas unidades.
Para obter um bom aproveitamento, vamos conferir a estrutura desta Unidade:
Atividade de Sistematização: os exercícios disponibilizados são de autocorreção e
objetivam que você pratique o que aprendeu na Disciplina e a que identifique os pontos aos
quais precisa prestar mais atenção ou sobre os quais necessita pedir esclarecimentos a seu
tutor. Além disso, a esses exercícios serão atribuídas notas que farão parte de sua média final
na Disciplina;
Atividade de Aprofundamento: é uma atividade dissertativa ou de pesquisa;
Material Complementar e Referências Bibliográficas: nestes links, você receberá
sugestões de leitura ou de mídias por meio das quais você poderá ampliar seus conhecimentos;
Videoaula: aqui serão apresentadas algumas ferramentas na prática e também a resolução
de alguns exercícios de forma prática.
Lembramos a você a importância de realizar todas as atividades propostas dentro do prazo
estabelecido para cada Unidade. Dessa forma, você evitará que o conteúdo se acumule e que
tenha problemas ao final do semestre.
Uma última recomendação, caso tenha problemas para acessar algum item da disciplina ou
dúvidas com relação ao conteúdo, não deixe de entrar em contato com seu professor tutor por
meio do botão mensagens ou nos fóruns.
Bom estudo!

5
Unidade: Estruturas de Repetição

Contextualização

Em algumas situações, perceberemos que os códigos desenvolvidos se repetirão, mas, não


se preocupem, isso é normal. Para solucionarmos esses problemas, utilizaremos recursos da
lógica de programação chamados de malhas ou repetições.
As estruturas de repetições são conhecidas como estrutura enquanto... faça... fim enquanto
tem o seu funcionamento controlado por decisão, as estruturas de repetição são utilizadas
para executar repetidamente uma instrução ou um bloco de instruções enquanto determinada
condição for verdadeira.
Com as malhas ou repetições podemos utilizar o mesmo trecho de código, executando-o
quantas vezes forem necessárias.

6
Estruturas de Repetição

As estruturas de repetição são também conhecidas como laços (loop). Em algumas


circunstâncias, é necessária a repetição de um trecho do programa algumas quantidades de
vezes. Sendo assim, deverá ser criado um laço que repita o processamento n vezes quantas
forem necessárias.
A estrutura enquanto... faça... fim_enquanto tem o seu funcionamento controlado por
decisão. É muito parecido com a estrutura de decisão vista anteriormente.
As estruturas de repetição são utilizadas para executar repetidamente uma instrução ou um
bloco de instruções enquanto determinada condição for verdadeira.
Temos três tipos:

Pseudocódigo Java
para for
enquanto while

faça...enquanto do while

Para determinarmos qual é a estrutura mais adequada, devemos saber:


• O número de vezes que o trecho programa vai ser executado → laços contados; ou
• A condição para que ela aconteça → laços condicionais.

Laços contados
Auxílio de um contador, que auxiliará no laço. Este possibilita a repetição da estrutura até
que o contador atinja o limite estipulado na condição.

Laços condicionais
O valor é desconhecido e devemos utilizar uma variável com valor pré-definido em uma
condição dentro do laço para finalizarmos a repetição
Independente do tipo de laço, todos são constituídos por três partes:
• Inicialização(ões) da(s) variável(is) de controle;
• Condição(ões);
• Atualização da(s) variável(is) de controle.

7
Unidade: Estruturas de Repetição

Para sabermos quando utilizar uma estrutura de repetição, basta analisarmos se uma
instrução ou uma sequência de instruções precisa ser executada várias vezes. Se isto se
confirmar, então se deve utilizar uma estrutura de repetição. As estruturas de repetição, assim
como a de decisão (seleção), envolvem a avaliação de uma condição (teste).
Então, as estruturas de repetição permitem que um trecho do algoritmo (conjunto de
instruções) seja repetido um número determinado (ou indeterminado) de vezes, sem que o código
correspondente, ou seja, as instruções a serem repetidas, tenha de ser escrito mais de uma vez.
A estrutura de repetição é uma estrutura de desvio do fluxo de controle presente em todas
as linguagens de programação que a princípio realiza e/ou repete diferentes algoritmos/ações
dependendo se uma condição é verdadeira ou falsa, em que a expressão é processada e
transformada em um valor booleano.
Está associada diretamente a uma estrutura de repetição uma condição (também chamada
“expressão de controle” ou “condição de parada”) e um bloco de código: verifica-se a condição,
e caso seja verdadeira, o bloco é executado. Após o final da execução do bloco, a condição
é verificada novamente e, caso ela ainda seja verdadeira, o código é executado novamente.
Devemos observar que, caso o bloco escolhido nunca modifique o estado da condição, a
estrutura será executada infinitamente, uma situação chamada laço infinito. Da mesma forma,
é possível especificar uma estrutura em que o bloco de código modifica o estado da condição,
mas esta é sempre verdadeira.
Algumas linguagens de programação especificam ainda uma palavra reservada para
sair “break go to” da estrutura de repetição de dentro do bloco de código, “quebrando” a
estrutura. Também é oferecido por algumas linguagens uma palavra reservada para terminar
uma iteração específica do bloco de código, forçando nova verificação da condição no laço.
É compacta pois a inicialização, condição e atualização estão reunidas na declaração do laço.

Pseudocódigo:
para (inicialização; condição; atualização)
instruções
fim para
Java
for (inicialização; condição; atualização)
{
instruções;}

Utiliza uma variável inteira para controlar o número de vezes que se deve repetir a execução
das instruções → laço contado.
É inicializada com um valor qualquer e é incrementada ou decrementada a cada iteração.

8
A condição geralmente verifica se essa variável já chegou em determinado valor para decidir
se o laço deve ser encerrado.

Vamos fazer um exemplo!

Algoritmo Tabuada
inteiro numero, i
início
escreva (“Entre com o número:”)
leia (numero)
para (i=0; i<=10; i++)
escreva ( numero* i )
fim para
fim

Em Java

9
Unidade: Estruturas de Repetição

Percebam que a mensagem da tabuada estará aparecendo 11 vezes, pois nós estamos
inicializando a variável de controle em 0, que estará exibindo desde a multiplicação do 0 até o
10 (estamos incluindo o zero).
No caso do Java, estamos usando o comando no modo console e não com o visual do
JOptionPane.
Vamos fazer outro exemplo!
Prestar atenção ao enunciado!
Faça um algoritmo que calcula e mostra a soma de 10 números reais digitados pelo usuário.
Use a estrutura de repetição para.

Algoritmo Somatório
real n1, soma
inteiro i
início
soma=0
para (i=1;i<=10;i++)
escreva (“Digite um número: ”)
leia (n1)
soma=soma+n1
fim para
escreva (“A somatória é: “ + soma)
fim

Algoritmo Somatório
real n1, soma Acumulador
inteiro i
início
soma=0
para (i=1;i<=10;i++)
escreva (“Digite um número: ”)
leia (n1)
soma=soma+n1
fim para
escreva (“A somatória é: “ + soma)
fim

10
Em Java

Estrutura enquanto (while)


Estrutura utilizada tanto para laços contados quanto para os laços condicionais, possui e a
seguinte sintaxe:

Pseudocódigo:
{iniciar a variável de controle}
enquanto (condição for verdadeira)
{instruções} Instrução que modifica o
{atualizar a variável de controle} estado de algum elemento
utilizado na condição.
fim enquanto

Java
{iniciar a variável de controle} Nestes casos de laços
while (condição for verdadeira){ de repetição, as chaves
identificarão o início e o
{instruções} fim do bloco a ser repetido.
{atualizar a variável de controle}
}

11
Unidade: Estruturas de Repetição

Exemplo
Faça um algoritmo que calcula e mostra a média entre duas notas de 10 alunos. Use a
estrutura de repetição enquanto.

Algoritmo media_com_enquanto
real media, soma
inteiro num, qtde
caracter resp
Inicio
soma=0
qtde = 0
resp = ‘s’
enquanto (resp==‘s’’ || resp == ‘S’)
escreva(“Digite um número”)
leia(num)
soma=soma+num
qtde=qtde+1
escreva(“Deseja continuar?”)
leia(resp)
fim enquanto
media=soma/qtde
escreva(“A média dos números digitados é: “ + media)
fim

Em Java

12
Estrutura faça ... enquanto (do-while)
É uma variação da estrutura enquanto:
• enquanto (while) → condição testada antes da primeira execução do loop. Se condição
for falsa na 1. vez que for avaliada, as instruções desse laço não serão executadas
nenhuma vez;
• faça... enquanto (do...while) → a condição é avaliado depois que suas instruções são
executadas. Mesmo que a condição desse laço seja falsa antes mesmo de ele iniciar, suas
instruções serão executadas uma vez.
Estrutura utilizada tanto para laços contados quanto para os laços condicionais, possui a
seguinte sintaxe:

Pseudocódigo:
{iniciar a variável de controle}
Instrução que modifica o
faça estado de algum elemento
{instruções} utilizado na condição.
{atualizar a variável de controle}
enquanto (condição for verdadeira)

Java
{iniciar a variável de controle}
do{
{instruções}
{atualizar a variável de controle}
}while(condição for verdadeira);

13
Unidade: Estruturas de Repetição

Vamos colocar em prática?


Faça um algoritmo que calcula e mostra a soma dos números ímpares digitados pelo usuário.
Para encerrar a entrada de dados, digite o número zero.
Use a estrutura de repetição faça ... enquanto

Algoritmo soma_dos_pares_com DoWhile


inteiro num, soma
Inicio
soma=0
faça
escreva(“Digite um número”)
leia(num)
se(num%2!=0)
soma=soma+num
fim se
enquanto(num!=0)
escreva(“A soma dos números ímpares é: “ + soma)
Fim

Em Java

14
Agrupando comandos

Agora que já conhecemos os comandos de decisão e os comandos de repetição, podemos


interagir um com o outro de forma que nossos algoritmos alcancem os objetivos.
Vamos trabalhar com alguns exemplos com comandos de repetição aninhados.
Crie um algoritmo que calcule a soma de todos os números inteiros de um intervalo dado
pelo usuário. Quando mostrar a resposta, pergunte ao usuário se deseja começar novamente.

Algoritmo Soma de um Intervalo


inteiro inicio, fim, soma, i
caracter continua
início
faça
faça
escreva(“Início do intervalo”)
leia(inicio)
escreva(“Fim do intervalo”)
leia(fim) Repetição Repetição
soma=0 interna Externa
para(i=inicio; i<=fim; i++)
soma = soma +
fim para
escreva(“A soma deu “ + soma)
escreva(“Quer continuar (S/N)”);
leia(continua)
enquanto(continua==‘s’ ou continua == ‘S’)
fim

Em Java

15
Unidade: Estruturas de Repetição

Comandos de Repetição e Decisão


Uma escola quer saber qual o aluno mais alto da turma. Para isso, desenvolva um programa
que leia a altura dos 50 alunos de uma turma e imprima qual a maior altura cadastrada.

Algoritmo Maior Altura


real altura, maior
inteiro i
início
maior=0
para(i=1; i<=50; i++)
escreva(“Qual a altura do aluno “ + i)
leia(altura)
se(altura > maior)
maior = altura
fim se
fim para
escreva(“A maior altura digitada foi “ + maior)
fim

Em Java

16
Material Complementar

Para aprofundar seus conhecimentos, consulte:

Vídeos:
Videoaula Algoritmos 11 - Comandos de Repetição. Acessado em 15 de janeiro de 2018.
https://www.youtube.com/watch?v=G7975lAWYFU

Livros:
MANZANO, José Augusto N.G. e OLIVEIRA, Jayr Figueiredo. Livro Estudo Dirigido
de Algoritmos. Editora Érica, 2010.
WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Ltc-Livros Técnicos
e Científicos, 1999.

17
Unidade: Estruturas de Repetição

Referências

DEITEL, H. M. Java: Como Programar. 6.ed. Porto Alegre: Bookman, 2003. (e-book)

FARRER, H. Algoritmos Estruturados. 3.ed. Rio de Janeiro: Ltc-Livros Técnicos e


Científicos, 1999.

FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: A Construção


de Algoritmos e Estrutura de Dados. 3.ed. São Paulo: Pearson Prentice Hall, 2008.

FURGERI, S. JAVA 6 – Ensino Didático: Desenvolvendo e Implementando Aplicações.


2.ed. São Paulo: Érica, 2009.

MANZANO, J. A. N. G. Algoritmos: Lógica para Desenvolvimento de Programação. 24.ed.


São Paulo: Érica, 2010.

OLIVEIRA, J. F.; MANZANO, J. A. N. G. Algoritmos – Lógica para desenvolvimento


de programação de computadores. Ver o conteúdo de Parte II – Técnicas Básica de
Programação - Capítulo 3 – Tipo de Dados e Instruções Primitivas.

18
Anotações

19

Você também pode gostar