Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Programação 1 IFRN/Campus Central de Natal/DIETINF Introdução à Programação Tema 6 Estrutura de repetição segunda-feira, 27 de abril de 2009 Introdução à Programação 2 Conteúdo Estruturas de Repetição Condicional Estrutura de Repetição Contada Comparando as Estruturas de Repetição Encadeando as Estruturas de Repetição Encadeando Diversas Estruturas Um Algoritmo para Construir Algoritmos segunda-feira, 27 de abril de 2009 Introdução à Programação 3 Contextualização Abrangência Apresentar os conceitos avançados relacionados a construção de algoritmos estruturados Importância Os conceitos ensinados permitem desenvolver algoritmos que repitam um conjunto de instruções segunda-feira, 27 de abril de 2009 Introdução à Programação 4 Objetivos Introduzir as três estruturas de repetição que podem ser usadas em um algoritmo Enquanto/Faça Repita/Até Para/Faça Discutir a forma correta de encadear e indentar instruções Apresentar um algoritmo para construir algoritmos segunda-feira, 27 de abril de 2009 Introdução à Programação 5 Iniciando . . . segunda-feira, 27 de abril de 2009 Introdução à Programação 6 Estruturas de Repetição Com o conhecimento adquirido até aqui, ainda não é possível fazer iterações! segunda-feira, 27 de abril de 2009 Introdução à Programação 7 Estruturas de Repetição Como escrever algoritmos que façam iteração de instruções? segunda-feira, 27 de abril de 2009 Introdução à Programação 8 Estruturas de Repetição Usar Estruturas de Repetição! segunda-feira, 27 de abril de 2009 Introdução à Programação 9 Existem situações que o processamento de um valor uma única vez não é suficiente para resolver o problema. Quando isto ocorre, deve-se utilizar uma estrutura de repetição. Estruturas de repetição permitem que um ou mais instruções sejam executadas um número definido de vezes, ou enquanto uma determinada condição não é alcançada. Estruturas de Repetição segunda-feira, 27 de abril de 2009 Introdução à Programação 10 As estruturas de repetição também são conhecidas como Laços ou Loops As estruturas de repetição das l inguagens de programação são de dois tipos Condicional Repetem até satisfazer a condição de repetição São usadas quando não se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição Contada Repetem um número contado (pré-definido) de vezes São usadas quando se sabe previamente quantas vezes deve-se executar as instruções do bloco de repetição Estruturas de Repetição segunda-feira, 27 de abril de 2009 Introdução à Programação 11 As estruturas de repetição condicional podem executar seus testes: No Início Enquanto/Faça No Fim Repita/Até As estruturas de repetição contada utilizam uma variável para controlar a quantidade de repetições Para/Faça Estruturas de Repetição segunda-feira, 27 de abril de 2009 Introdução à Programação 12 Normalmente, a utilização de uma estrutura de repetição requer o uso de dois tipos de variáveis: Contadora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um valor constante Acumuladora: é inicializada antes da estrutura de repetição e é incrementada no interior desta por um valor variável Estruturas de Repetição Condicional segunda-feira, 27 de abril de 2009 Introdução à Programação 13 Semântica: Faz o teste no início do laço. Se o resultado for V as instruções do laço e/são executadas. Volta-se para o início do laço e testa-se novamente a sua condição. Isto é repetido enquanto a condição testada for V. Estruturas de Repetição Condicional Executar outras instruções V F Instruções executadas para expressão = V Exp. Lógica Estrutura de repetição Enquanto/Faça segunda-feira, 27 de abril de 2009 Introdução à Programação 14 Exemplos: Estruturas de Repetição Condicional Algoritmo variávelContadora: ... cont 0 <estrutura de repetição> ... cont cont + 1 ... <fim estrutura de repetição> ... Algoritmo variávelAcumuladora: ... soma 0 <estrutura de repetição> ... soma soma + X ... <fim estrutura de repetição> ... constante Variável segunda-feira, 27 de abril de 2009 Introdução à Programação 15 Estrutura de repetição Enquanto/Faça Sintaxe: Enquanto <expressão lógica> FAÇA <Instrução1>; . . . <InstruçãoN>; Fim Enquanto; Estruturas de Repetição Condicional segunda-feira, 27 de abril de 2009 Introdução à Programação 16 Estruturas de Repetição Condicional Estrutura de repetição Enquanto/Faça Resumindo... Não se sabe de antemão quantas vezes o bloco de repetição será executado. Isto é, ele pode ser executado várias vezes ou nenhuma vez Testa a condição antes de entrar na estrutura de repetição Repete a execução do bloco de instruções toda vez que condição for V O bloco de instruções A execução do bloco é finalizada quando a condição for F segunda-feira, 27 de abril de 2009 Introdução à Programação 17 Algoritmo ExemploEnquantoFaça Inteiro : x; Início Escreva(“Digite um valor”); Leia (x); Enquanto (x<>0) faça Se (x > 0) Então Escreva (“X > 0”); Senão Escreva (“X < 0”); Escreva(“Digite um valor”); Leia (x); Fim Enquanto; Escreva (“X = 0”); Fim. Estruturas de Repetição Condicional “Digite um valor” Início VF Fim x x>0 “X < 0” “X > 0” x<>0 V “Digite um valor” x F “X = 0” segunda-feira, 27 de abril de 2009 Introdução à Programação 18 Semântica: Efetua um teste lógico no fim do laço, garantindo que pelo menos uma vez as instruções deste são executadas. Ao contrário do enquanto, esta só repete o laço se o resultado do teste for F. Estruturas de Repetição Condicional Executar outras instruções F Instruções executadas até expressão = V Exp. Lógica V Estrutura de repetição Repita/Até segunda-feira, 27 de abril de 2009 Introdução à Programação 19 Estrutura de repetição Repita/Até Sintaxe: Repita <Comando1>; . . . <ComandoN>; Até <expressão lógica>; Estruturas de Repetição Condicional segunda-feira, 27 de abril de 2009 Introdução à Programação 20 Estruturas de Repetição Condicional Estrutura de repetição Repita/Até Resumindo... Não se sabe de antemão quantas vezes o bloco de repetição será executado. Todavia é garantido que ele será executado pelo menos uma vez Testa a condição depois de entrar na estrutura de repetição Repete a execução do bloco de instruções toda vez que a condição for F A execução do bloco é finalizada quando a condição for V segunda-feira, 27 de abril de 2009 Introdução à Programação 21 Algoritmo ExemploRepitaAté Inteiro : x; Início Repita Escreva(“Digite um valor”); Leia (x); Se (x > 0) Então Escreva (“X > 0”); Senão Se (x < 0) Então Escreva (“X < 0”); Até (x = 0); Escreva (“X = 0”); Fim. Estruturas de Repetição Condicional “Digite um valor” Início FV Fim x x>0 “X > 0” “X < 0” x=0 V F “X = 0” X<0 V F segunda-feira, 27 de abril de 2009 Introdução à Programação 22 Estruturas de Repetição Condicional Toda repetição condicional pode ser representada por uma estrutura do tipo Enquanto/Faça ou Repita/Até. Todavia, perceba que a primeira repete somente quando a condição é V e a segunda somente quando a condição é F. Por isso, a condição de uma é a negação da outra Note I segunda-feira, 27 de abril de 2009 Introdução à Programação 23 NoteII Nos laços condicionais a variável que é testada, deve estar sempre associada a uma instrução que a atualize no interior do laço. Pois, se isto não ocorrer, o algoritmo ficará repetindo indefinidamente este laço, gerando uma situação conhecida como “laço/loop” infinito” Estruturas de Repetição Condicional segunda-feira, 27 de abril de 2009 Introdução à Programação 24 Estruturas de Repetição Condicional Algoritmo ExemploEnquantoFaça_LoopInfinito Inteiro : x; Início Escreva(“Digite um valor”); Leia (x); Enquanto (x<>0) faça Se (x > 0) Então Escreva (“X > 0”); Senão Escreva (“X < 0”); Escreva(“Digite um valor”); {Leia (x); - sem este Leia(x), o laço repete infinitamente!} Fim Enquanto; Escreva (“X = 0”); Fim. segunda-feira, 27 de abril de 2009 Introdução à Programação 25 Estrutura de repetição Para/Faça Sintaxe: PARA <varContador> de <Inicio> até <Fim>[, PASSO <N>] FAÇA <Instrução1>; . . . <InstruçãoN>; FIMPARA Estrutura de Repetição Contada Atenção: Passo 1 = opcional Passo 2 = varContador + 2 Passo –1 = varContador – 1 segunda-feira, 27 de abril de 2009 Introdução à Programação 26 Estrutura de repetição Para/Faça Estrutura de Repetição Contada Semântica: Repete as instruções enquanto a variável contador não atingir o valor final. Ressalta-se que a variável contador é previamente inicializada e incrementada ou decrementada de uma constante a cada repetição Executar outras instruções) V F Instruções executadas para expressão = V Incremento/ decremento Inicialização Início>=/<=fim segunda-feira, 27 de abril de 2009 Introdução à Programação 27 Estrutura de Repetição Contada Estrutura de repetição Para/Faça Resumindo... Sabe-se de antemão quantas vezes o bloco de repetição será executado. Isto é, repete enquanto o valor final não atingir o valor final da variável de controle Incrementa automaticamente a variável de controle cada vez que o bloco é executado (incremento 1 é o padrão) A variável de controle deve ser um número inteiro. A variável de controle não pode ser modificada dentro do bloco segunda-feira, 27 de abril de 2009 Introdução à Programação 28 Algoritmo ExemploParaFaça inteiro : x, i, contP; Início contP0; Para i1 até 20 faça Escreva(“Digite um valor”); Leia (x); Se (x > 0) Então contP contP + 1; Fim Para; Escreva (“positivos = ”+contP); Fim. Estrutura de Repetição Contada “Digite um valor” Início v Fim x i<=20F “positivos =”,cp x>0 Cpcp+1 Cp0 I1 ii+1 F v segunda-feira, 27 de abril de 2009 Introdução à Programação 29 Estrutura de Repetição Contada Pode-se implementar um laço PARA com um laço CONDICIONAL, entretanto o controle do incremento/decremento da variável contadora é seu. O laço PARA faz isso implicitamente! Atenção : segunda-feira, 27 de abril de 2009 Introdução à Programação 30 Algoritmo ExemploParaFaçaComEnquanto Var x, i, contP: inteiro Início contP0; i1; Enquanto (i <= 20) faça Escreva(“Digite um valor”); Leia (x); Se (x > 0) Então contP contP + 1; i i+1; {Incremento explícito da variável contadora} Fim Enquanto; Escreva (“positivos = ”+contP); Fim. Estrutura de Repetição Contada segunda-feira, 27 de abril de 2009 Introdução à Programação 31 Algoritmo ExemploParaFaçaComRepita Var x, i, contP: inteiro Início contP0; i1; Repita Escreva(“Digite um valor”); Leia (x); Se (x > 0) Então contP contP + 1; i i+1; {Incremento explícito da variável contadora} Até (i > 20); Escreva (“positivos = ”+contP); Fim. Estrutura de Repetição Contada segunda-feira, 27 de abril de 2009 Introdução à Programação 32 Comparando as Estruturas de Repetição As Estruturas de Repetição são assim comparadas: segunda-feira, 27 de abril de 2009 Introdução à Programação 33 Encadeando as Estruturas de Repetição Semelhante as estruturas de decisão composta, as estruturas de repetição também podem ser encadeadas/ aninhadas. Esta abordagem é usada quando há a necessidade de se usar laços dentro de laços. Por exemplo: fazer um algoritmo para gerar toda a tabuada de soma de 1 a 10. segunda-feira, 27 de abril de 2009 Introdução à Programação 34 Encadeando as Estruturas de Repetição Algoritmo TabuadaSoma Var r, n1, n2: inteiro Início n1:=1; Enquanto (n1<=10) faça Para n2 1 até 10 faça r n1 + n2; Escreva (n1,“ + ”,n2,“ = ”,r); Fim Para n1n1+1; Fim Enquanto Fim. segunda-feira, 27 de abril de 2009 Introdução à Programação 35 Encadeando as Estruturas de Repetição Também pode-se encadear estruturas de repetição com estruturas de decisão segunda-feira, 27 de abril de 2009 Introdução à Programação 36 Encadeando Diversas Estruturas Algoritmo TabuadaSomaComParidade Var r, n1, n2: inteiro Início n1:=1; Enquanto (n1<=10) faça Para n2 1 até 10 faça r n1 + n2; Se (r mod 2 = 0) Escreva (n1,“ + ”,n2,“ = ”,r, “ = Par”); Senão Escreva (n1,“ + ”,n2,“ = ”,r, “ = Impar”); Fim Para n1n1+1; Fim Enquanto Fim. segunda-feira, 27 de abril de 2009 Introdução à Programação 37 Encadeando Diversas Estruturas Cuidado com o encadeamento! segunda-feira, 27 de abril de 2009 Introdução à Programação 38 Encadeando Diversas Estruturas Correto Errado segunda-feira, 27 de abril de 2009 Introdução à Programação 39 Encadeando Diversas Estruturas - Indentação Você sabe o que é INDENTAÇÃO? segunda-feira, 27 de abril de 2009 Introdução à Programação 40 Indentação = Organização hierárquica das estruturas e suas instruções. Facilita visualizar o que está contido em que. Auxilia no entendimento do código e na busca de erros Encadeando Diversas Estruturas - Indentação segunda-feira, 27 de abril de 2009 Introdução à Programação 41 Um Algoritmo para Construir Algoritmos 1) Ler atentamente a especificação do problema até compreende-lo 2) Ler novamente, anotando os pontos fundamentais Variáveis, Constantes, Decisões, Repetições e Condições de Parada 3) Escrever em português, da forma que desejar, a entrada, o processamento e a saída dos resultados desejados Ao fim deste passo, deverá ser possível visualizar todas as estruturas de decisão e repetição necessárias ao algoritmo final 4) Escrever o algoritmo em pseudo-código Importante: veja se variáveis foram inicializadas e se as expressões lógicas das estruturas de decisão e de repetição estão corretas 5) Verifique a corretude do algoritmo Aplique a técnica de teste de mesa segunda-feira, 27 de abril de 2009 Introdução à Programação 42 Atividade 1 - Faça um algoritmo que 1) leia um número inteiro e positivo e escreva o numero inteiro que mais se aproxima da sua raiz quadrada 2) leia uma lista de números inteiros positivos e escreva a média aritmética de todos os números lidos que são pares. O algoritmo finaliza quando digitado zero, o qual deve ser excluindo para cálculo da média 3) leia um conjunto de 100 números inteiros positivos e escreva o maior e o menor deles segunda-feira, 27 de abril de 2009 Introdução à Programação 43 Atividade 1 - Faça um algoritmo que 4) escreva quantos anos serão necessários para que Ciclano seja maior que Fulano. Considere que Fulano tem 1,50 m e cresce 2 cm por ano e Ciclano tem 1,10 m e cresce 3 cm por ano 5) leia um número inteiro e escreva se ele é primo 6) leia um número inteiro e positivo e escreva o seu fatorial Considere: N! = 1 x 2 x 3 x ... x N-1 x N e 0 ! = 1 segunda-feira, 27 de abril de 2009 Introdução à Programação 44 Atividade 1 - Faça um algoritmoque 7) leia um código de votação e escreva a ordem de classificação e o percentual de votos de cada candidato. Considere: a) F = fim da eleição; b) X,Y,Z = códigos dos candidatos; c) N = voto nulo e d) B = voto em branco 8) escreva os 10 primeiros termos da serie Fibonacci. Isto é: 1,1,2,3,5,8,13,21,34,55 segunda-feira, 27 de abril de 2009 Introdução à Programação 45 Atividade 1 - Faça um algoritmo que 9) leia o salário de 100 funcionários e escreva: a) quantos funcionários recebem mais de R$2.000,00; b) quanto a empresa gasta com estes funcionários e c) quanto a empresa gastaria se fosse dar um aumento de 7,5% aos funcionários que recebem menos que R$2.000,00 10) leia N e escreva H, onde: segunda-feira, 27 de abril de 2009 Introdução à Programação 46 IFRN/Campus Central de Natal/DIETINF FIM segunda-feira, 27 de abril de 2009 Introdução à Programação Adaptado dos slides do Professor Robson Fidalgo 47 segunda-feira, 27 de abril de 2009
Compartilhar