Baixe o app para aproveitar ainda mais
Prévia do material em texto
Técnicas de Programação Material Teórico Responsável pelo Conteúdo: Prof. Esp. Margarete Eliane da Silva Almendro Revisão Técnica: Prof. Me. Douglas Almendro Revisão Textual: Prof.a Me. Selma Aparecida Cesarin Estruturas de Repetição 5 • 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! Estruturas de Repetição 6 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. 7 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. 8 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. 9 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 10 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 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 Acumulador 11 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} {atualizar a variável de controle} fim enquanto Java {iniciar a variável de controle} while (condição for verdadeira){ {instruções} {atualizar a variável de controle} } Instrução que modifica o estado de algum elemento utilizado na condição. Nestes casos de laços de repetição, as chaves identificarão o início e o fim do bloco a ser repetido. 12 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 13 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} faça {instruções} {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); Instrução que modifica o estado de algum elemento utilizado na condição. 14 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 15 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) soma=0 para(i=inicio; i<=fim; i++) Repetição interna Repetição Externa 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 16 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 17 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. 18 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. 19 Anotações
Compartilhar