Baixe o app para aproveitar ainda mais
Prévia do material em texto
Competências da Aula • C4 - (N) - Identificar e codificar estruturas de repetição simples e aninhadas para resolver problemas algorítmicos. Estruturas de Repetição • Nas aulas anteriores, conhecemos as estruturas de decisão: estruturas de decisão simples, compostas, aninhadas e as decisões de múltipla escolha. • Vimos que tais decisões são utilizadas quando há a necessidade de se estabelecer desvios na execução dos comandos e o algoritmo tem que decidir que caminho seguir. E essa decisão é tomada de acordo com uma condição específica. • A partir de agora, conheceremos outro grupo de estrutura de controle: as estruturas de repetição. • Há momentos em que há a necessidade de repetir um determinado trecho do algoritmo por um número específico de vezes. Estruturas de Repetição Estruturas de Repetição • Uma estrutura de repetição, ou simplesmente laço ou loop, permite que um grupo de comandos seja executado repetidamente um número determinado de vezes ou até que uma determinada condição seja verdadeira ou falsa. Estruturas de Repetição As estruturas de repetição podem funcionar de diferentes formas, de acordo com a necessidade do algoritmo que você vai criar. Assim como nas estruturas de decisão, há uma classificação para as estruturas de repetição: Repetição contada (comando PARA...FAÇA) – repete as instruções sob controle de um contador que percorre valores, de acordo com limites iniciais e finais pré estabelecidos. • Repetição condicional com teste de condição no INICIO (comandos ENQUANTO...FAÇA) – repete as instruções enquanto a condição for verdadeira. • Repetição condicional com teste da condição no FINAL (comandos REPITA...ATÉ) – repete as instruções até que a condição seja verdadeira. Estruturas de Repetição Na repetição contada, a quantidade de execuções do comando que irá repetir é conhecida previamente. Uma variável é criada para funcionar como contador para essas repetições e cessar a repetição no momento em que a contagem chegar ao final. Há, também, um valor de incremento,que define de quantas em quantas unidades a repetição executará. Estrutura para (for) - faça Sintaxe para <variável> de <valor_inicial> até <valor_final> faca <comando 1>; <comando 2>; <comando 3>; fimpara Estrutura para (for) - faça Sintaxe for(inicialização; condição; incremento) { instruções; } for(i=1;i<=10;i++) { printf("%d\n",i); } Estrutura faça - para • Atribui a variável, que é o nome de uma variável numérica, o valor_inicial; • Compara o valor da variável com o valor numérico valor_final. Se ele for menor ou igual ao valor_final, executa os comandos. Caso contrário, executa o comando após a estrutura de repetição (fimpara); • Incrementa o valor de variável em uma unidade; • Volta ao passo 2; Estrutura faça - para Veja a seguir algumas considerações sobre a sintaxe da estrutura: • A variável de controle deve ser uma variável numérica do tipo inteiro, pois servirá de contador e terá seu valor incrementado a cada passo. • O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição. • O valor final corresponde ao valor máximo que a variável pode alcançar. • Se o valor de incremento não for definido, assume-se o valor = 1. Exemplo • Escreva um algoritmo que escreva na tela (em linhas diferentes) os números de 1 a 100. • Escreva um algoritmo que escreva na tela (em linhas diferentes) os números de 1 a um número informado pelo cliente. • Escreva um algoritmo que mostre a tabuada de um número informado (entre 2 e 9). Exemplo nome exemplo_1; variaveis i : inteiro; Inicio i 0; para (i=1; i<=100;i++) faca Escreval(i); fimpara Fim nome exemplo_2; variaveis i : inteiro; numero : inteiro; Inicio escreva(“Favor inserir o número.”); leia(numero); para(i=1; i<=numero;i++) faca Escreva(i); fimpara Fim nome exemplo_3; variaveis resultado : inteiro; contador : inteiro; numero : inteiro; Inicio escreva(“Favor informar um número entre 2 e 9.”); leia(numero); SE (numero >=2) E (numero <=9) ENTAO para contador de 1 até 10 faça resultado numero * contador; Escreva(numero, “*”, contador, “=“, resultado); fimpara FIMSE Fim Exercícios • Faça um algoritmo que leia o nome, idade e sexo (‘M’ ou ‘F’) de 20 pessoas e mostre se a pessoa for do sexo masculino e tiver mais de 21 anos. • Faça um algoritmo que calcule o IMC de 20 alunos de uma escola de natação. O IMC é dado pela fórmula IMC = peso / altura * altura. Após o calculo mostre na tela o IMC encontrado. Nome exercicio_4; Variaveis nome : caracter; idade: inteiro; sexo : caractere; contador : inteiro; Inicio para contador de 1 até 20 faca escreva(“Favor informar o nome:”); leia(nome); escreva(“Favor informar a idade:”); leia(idade); escreva(“Favor informar o sexo da pessoa:”); leia(sexo); SE (sexo = ‘M’) E (idade > 21) ENTAO escreva(nome); FIMSE fimpara Fim Variáveis Acumuladoras - Exemplo • Faça um algoritmo que calcule a soma de todos os números de 100 (inclusive) à 200 (inclusive). Mostre o resultado final na tela. • Faça um algoritmo que calcule a soma de todos os números pares de 100 (inclusive) à 200 (inclusive); • Faça um algoritmo que calcule a soma de todos os números de um intervalo fornecido pelo cliente; Nome exercicio_1; Variaveis i : inteiro; soma: inteiro; Inicio soma 0; para i de 100 até 200 faça soma soma + i; fimpara escreva(soma); Fim Nome exercicio_2; Variaveis i : inteiro; soma: inteiro; Inicio soma 0; para(i=100; i<=200, i++)faca SE (i % 2 = 0) ENTAO soma soma + i; FIMSE fimpara escreva(soma); Fim Nome exercicio_3 Variaveis i : inteiro; soma : inteiro; num_inic, num_fim : inteiro; Inicio leia(num_inic); leia(num_fim); soma num_inic; para i de num_inic até num_fim faca soma soma + i; fimpara escreva(soma); Fim • Um professor possui 1 turma com 40 alunos. Construa um algoritmo que leia a nota dos alunos e exiba a média de notas da turma. Exiba também a maior nota da turma e a menor nota da turma. • Um professor possui 1 turma com 40 alunos. Construa um algoritmo que leia a nota dos alunos e exiba a média de notas da turma. Exiba também a maior nota da turma e a menor nota da turma. Em uma maternidade, nasceram 15 crianças em um dia. Faça um algoritmo que verifique o peso e o tamanho (em cm) das crianças, após indique o maior peso e maior tamanho registrado, neste dia. Comando : faça - enquanto (while) • A palavra “enquanto” indica que o comando seguinte será executado, desde que o resultado da expressão lógica seja verdadeiro • Ao encontrar o final do comando (bloco), volta- se para primeira linha do laço e verifica-se a expressão lógica ainda é verdadeira – Se sim, será feita uma nova execução do trecho – Se não, a execução do laço termina e continua-se no próximo comando após o trecho repetido. Comando : enquanto - faça enquanto <expr> faca <comando 1>; <comando 2>; fimenquanto • Repetição com teste no início 1)Valido se a expressão <expr> é verdadeira; 2) Se verdadeira, executo os comando 1 e 2, até que <expr> seja falsa; Exemplo Escreva um Algoritmo em Portugal que verifique se a nota do aluno é válida. Caso a mesma seja válida, verifique se o aluno está aprovado ou reprovado Alg Teste Var real: nota; Inicio escreval("Digite uma nota:"); leia(nota); enquanto (nota < 0) ou (nota > 10) faca escreval("Erro! A nota deve ser entre 0 e 10"); escreva("Digite novamente a nota: "); leia(nota);fimenquanto se (nota >= 7) então escreval("Aluno aprovado!“; senão escreval("Aluno reprovado!") fimse Fim Exemplo Resolvido • Faça um algoritmo que leia 20 valores reais e escreva seu somatório. Solução algoritmo soma_leitura; variaveis i :inteiro; somatorio, num : Real; inicio i 1; Somatorio 0; enquanto i <= 20 faca leia num; Somatorio Somatorio + num; i i + 1; fimenquanto; escreva 'O somatório é: ',Somatorio; fim. • Faça um algoritmo que leia diversos números informados pelo usuário, e após cada leitura exibir se o número é par ou ímpar. Considere que ao fornecer um valor negativo o usuário deseja encerrar a entrada de dados. Ao final, informar quantos números pares e quantos números impares foram lidos. num 0; par0; impar0; Escreval (“Favor Inf. Um numero”); leia(num); se (num>=0) entao enquanto (num >= 0) faca se (num % 2 = 0) entao escreva('É PAR'); par par +1; senao escreva('É IMPAR'); impar impar +1; fimse escreval(“Favor Inf. Um Numero:”) leia(num); fim-enquanto fimse escreva(“O total de numeros pares é:”, par); escreva(“O total de numeros impares é:”, impar); fim Exemplo • Escreva um algoritmo que leia o código, o nome e a idade dos competidores de um campeonato de futebol. A leitura será encerrada quando o código lido for igual a zero. • Altere o algoritmo anterior para que seja calculado o número de jogadores e a média de idade dos competidores Exercício • O que será impresso no algoritmo a seguir ? var X, Y : real; inicio X 5; Y 9; enquanto (X < 10) faca X X + 0.5; Y Y – 1; fim-enquanto escreva(X); escreva(y); fim Exercício Faça um algoritmo em Portugol que pergunte ao usuário quantos números deseja somar. Em seguida, leia a quantidade informada de números e apresente o valor da soma de todos os números, quantos números são menores que 7 e quantos números são maiores que 9. Estruturas de Repetição • Estrutura para - faça • Estrutura enquanto – faça • Estrutura repita – até repita – ate ( do-while) • Chamamos esta estrutura de repetição com teste no final, pois a decisão entre repetir ou parar o laço é feita ao final do comando. • Conclui-se, portanto, que sempre haverá pelo menos uma execução do trecho delimitado. repita - ate repita <comando 1>; <comando 2>; até <expr> Repetição com o teste no final 1)Executo os comandos 1 e 2; 2)Verifico se a expressão <expr>. Se verdadeira, encerro a repetição. Senão, executo comando 1 e 2 novamente. Exemplo Inicio Var opcao: inteiro; Inicio repita escreval("1 - Dizer olá!"); escreval("2 – Dizer oi! "); escreval("0 - Sair do programa"); leia(opcao); se (opcao = 1) então escreval("Olá!"); fimse se (opcao = 2) então escreval("Oi!"); fimse ate (opcao = 0) Fim Exercício • Faça um algoritmo que leia valores reais e escreva seu somatório. Considere que ao fornecer o valor zero o usuário deseja encerrar a entrada de dados Solução algoritmo soma_leitura; variaveis somatorio, num : Real; inicio somatorio 0; repita escreva(“Favor informar um num:”); ler num; Somatorio somatorio + num; até (num = 0) escreva (“O somatório é:”,somatorio); fim. Exemplo • Imprimir um conjunto de números informados pelo cliente na tela até que seja informado um número negativo; • Escreva um algoritmo que escreva na tela (em linhas diferentes) os números de 1 a 100. Construa um programa que apresente o peso total que será carregado por um container. Sabe- se que esse container carrega 32 caixas, com pesos diferentes. Será entrada do programa o peso (P) de cada uma das caixas. Considere que um funcionário recebe todo inicio de mês um crédito de R$500,00 de vale alimentação em seu cartão. Faça um programa utilizando a estrutura de repetição do ...while que após o recebimento do credito controle o saldo do cartão alimentação deste funcionário. Comparação Contador < valorfinalDe valor_inicial até valor final InícioPara Condição falsaMínimo 1FinalRepita Condição verdadeira?InícioEnquanto Condição de existência/repetição Quantidade de execuções Condição de término ESTRUTURA
Compartilhar