Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 7 - Estrutura de repetição – Parte I INTRODUÇÃO A estrutura de repetição, junto com as estruturas sequenciais e de decisão, forma a trinca de estruturas fundamentais de desenvolvimento em qualquer linguagem de programação. É interessante notar o quanto fazemos tarefas repetidas no dia a dia. Todos os dias acordamos, estudamos, trabalhamos, dormimos etc. Na programação, não é diferente. Jogar um “joguinho” no computador é uma estrutura de repetição, assim como o próprio sistema operacional funciona em uma estrutura de repetição. Existem milhares de exemplos. Vamos começar a estudá-los nesta aula. Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 1 of 9 05/05/2019 14:03 Vamos lá? OBJETIVOS Aplicar os conhecimentos adquiridos para escrever programas com a estrutura for e com os operadores de incremento e decremento. Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 2 of 9 05/05/2019 14:03 REPETIÇÕES Vamos a mais uma importante estrutura de programação: a estrutura de repetição. Chico Buarque diz, na música Cotidiano: “todo dia ela faz tudo sempre igual, me sacode às seis horas da manhã, me sorri um sorriso pontual”... Concorda que essa é uma repetição? Repetições infinitas não são muito agradáveis, seja no mundo real ou em programas de computador. Quer ouvir a música? Acesso o link: Chico Buarque - Cotidiano (glossário) Vamos a um exemplo mais prático. Creio que você sabe jogar o famoso “jogo da velha”, certo? Olha só como é o jogo: Pergunto a você: - Quantas jogadas no máximo podemos ter em um jogo da velha?- Como o jogo começa? Como termina? Em breve, você terá condições de criar um jogo da velha bem bacana em C++, sabia? Até lá, essas perguntas deverão estar respondidas. Um jogo como este, ou um jogo de videogame qualquer, é uma estrutura de repetição. Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 3 of 9 05/05/2019 14:03 No mundo empresarial, temos milhares de situações envolvendo repetições: o cálculo de uma folha de pagamento, uma linha de produção em uma fábrica, um projeto de desenvolvimento de software etc. Ah, respondendo às perguntas do jogo da velha: Temos no máximo nove jogadas; se o jogador “X” começar, ele terá uma jogada a mais. Idem para o jogador “O”. Isto se o jogo não acabar antes; O jogo termina com todas as posições em branco, esperando ser preenchidas com “X” ou “O”;- O jogo finaliza quando algum dos jogadores ganha ou quando há um empate e ninguém faz uma sequência. Trocando para a linguagem de computador, teríamos: A palavra repetir é muito importante no exemplo. É ela que vai fazer com que a repetição ocorra nove vezes, que é um número conhecido. A cada repetição, quatro atividades serão feitas (jogada do “X”, verifica se ganhou; jogada do “Y”, verifica se ganhou). Sendo assim, temos nossa primeira forma de fazer repetição em C++. A ESTRUTURA FOR Qual é a tradução de for? “Para”, certo? Pois bem, a estrutura for é muito usada nas repetições, principalmente nas ocasiões nas quais sabemos a quantidade de repetições que ocorrerão. Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 4 of 9 05/05/2019 14:03 Esse tipo de repetição é chamada de repetição controlada por contador, pois teremos uma variável que determinará o número de repetições daquela parte do programa. Observe: é um pouco estranho ter duas repetições e meia, ou “repita 10 vezes e meia”, certo? Logo, esta variável tem que ser inteira. Não podemos ter uma variável decimal para contar quantas repetições teremos. EXEMPLO Vamos a um exemplo em C++:O exemplo mais simples que podemos fazer é criar um programa que conta de 1 a 10. Veja só: A execução do programa gera o seguinte resultado: Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 5 of 9 05/05/2019 14:03 Simples, não é? Observe a sintaxe do for em C++:for (inicialização ; condição ; incremento) O comando for em C++ é composto por três partes, e cada uma delas é separada por ponto e vírgula: Inicialização declaramos uma variável do tipo inteiro (sempre) e atribuímos um valor inicial; Condição é uma expressão relacional que determina quando a repetição acaba. Quando a condição se tornar falsa, a execução do programa continua no comando seguinte ao for; Incremento configura como a variável de controle da repetição varia cada vez que a repetição é executada. Pode ser positivo ou negativo. O for do primeiro exemplo está mostrado na linha 5. Vamos dar uma pausa no for para tratar de um assunto que está bastante relacionado com as estruturas de repetição em geral. Clique aqui (glossário) e saiba mais. O QUE PODEMOS FAZER COM O FOR? Agora que vimos o que podemos fazer com os operadores em C++, olha só o que podemos fazer com o for: Alterar a variável de controle de 1 a 100 incrementando de 1for (int i=1; i<=100; i++) Alterar a variável de controle de 100 a 1 em decrementos de 1for (int i=100; i>=1; i--) Alterar a variável de controle de 8 a 88 em incrementos de 8for (int i=8; i<=88; i+=8) Alterar a variável de controle de 20 a 2 em decrementos de 2for (int i=20; i>=2; i-=2) Alterar a variável de controle sobre uma sequência de valores. Por exemplo: 2,5,8,11,14,17,20for (int i=2; i<=20; i+=3) Alterar a variável de controle sobre uma sequência de valores. Por exemplo: 99,88,77,66,55,44,33,22,11,0for (int i=99; i>=0; i -=11) O comando for é usado para várias finalidades, em qualquer linguagem de programação. Uma das aplicações é somar valores. Observe o exemplo a seguir: Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 6 of 9 05/05/2019 14:03 A execução do programa gera o seguinte resultado: Embora o exemplo seja muito simples, ele mostra um uso muito comum desse tipo de estrutura de repetição: usar o for para somar valores e armazenar em uma variável que está dentro da repetição. Vamos fazer outro exemplo, e com ele, ajudar uma criança a aprender a tabuada. A ideia do programa é obter um valor do usuário referente à tabuada que ele deseja estudar e “tomar” a tabuada do número desejado. Clique aqui (glossário) e saiba mais. VÍDEO Como vimos no vídeo e na listagem, o programa cria uma repetição de 1 a 10 entre as linhas 13 a 24. Veja que nem sempre o for faz repetições somente com uma linha, como vimos nos exemplos anteriores. Neste programa e na maioria deles, o bloco de repetição pode ser bem grande. Para cada repetição, o programa pergunta o resultado da multiplicação do número da tabuada e do número da repetição atual. Se o usuário acertar, a variável acertos é acumulada, senão a variável erros é incrementada. Para isso, usamos uma estrutura de decisão composta (lembra?). Ou seja, misturamos nesse programa a estrutura de repetição com a estrutura de decisão vista anteriormente. No final do programa, nas linhas 25 a 30 é feita uma pequena análise do desempenho do usuário durante o programa. O programa Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 7 of 9 05/05/2019 14:03 “premia” o usuário que acertou todas as respostas; se houve um erro ou mais, ele mostra a quantidade de erros (de acordo com a variável erros) e a quantidade de acertos (variável acertos). Existem muitas coisas que dá para fazer com o for. Mas por enquanto, para aprender como ele funciona, está ótimo. 1- O que o seguinte pedaço de programa faz? Escreve os números de 1 a 10, na mesma linha; Escreve os números de 1 a 10, pulando linha; Escreve os números de 1 a 11, na mesma linha; Escreve os números de 1 a 11, pulando linha; Nada, há um erro de sintaxe. Justificativa 2. Em qual situação abaixo podemos usar um comando de repetição? Verificar se um número é par ou ímpar. Determinar a idade em dias de uma pessoa. Calcular a folha de pagamentode uma empresa. Fazer a conversão de dólar para real. Calcular a velocidade média de um carro, dados a distância e o tempo. Justificativa 3. Quero contar os números pares de 1 a 100. Como faço isto usando um for? for (int i=1; i = 100; i++) for (int i=1; i<=100;i+2) for (int i=1; i<100; i+=2) for (int i=0; i<=100; i+=2) for (int i=0; i<=100; i++) Justificativa Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 8 of 9 05/05/2019 14:03 Disciplina Portal http://estacio.webaula.com.br/cursos/gra007/aula7.html 9 of 9 05/05/2019 14:03
Compartilhar