Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Estruturas de Controle Estrutura de Repetição (while) Linguagem de Programação I - Cátia Khouri & Fábio Moura 1 Objetivos Entender as Técnicas Básicas de soluções de problemas Ser capaz de desenvolver algoritmos usando refinamento top-down Ser capaz de usar a estrutura de repetição while 2/10/2009 2 Linguagem de Programação I - Estruturas de Controle 2 Estrutura de repetição 2/10/2009 Linguagem de Programação I - Estruturas de Controle 3 Uma estrutura de repetição permite que o programador indique que uma ação deve ser repetida enquanto alguma condição for verdadeira Enquanto houver itens na lista de compras Comprar próximo e item e excluí-lo da lista 3 2/10/2009 Linguagem de Programação I - Estruturas de Controle 4 Enquanto houver itens na lista de compras Comprar próximo e item e excluí-lo da lista Arroz Feijão Sabão em pó Maçã Banana Biscoito 4 Exemplo 2/10/2009 Linguagem de Programação I - Estruturas de Controle 5 Considere achar a primeira potência de 2 maior do que 1.000 20 = 1 21 = 2 22 = 4 ... até quando? 20 = 1 F F F 1 > 1.000 ? 21 = 2 2 > 1.000 ? 22 = 4 4 > 1.000 ? 210 = 1.024 1.024 > 1.000 ? ... V Fim do processo !!! 5 Exemplo (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 6 Considere achar a primeira potência de 2 maior do que 1.000 20 = 1 F F F 1 > 1.000 ? 21 = 2 2 > 1.000 ? 22 = 4 4 > 1.000 ? 210 = 1.024 1.024 > 1.000 ? ... V Calcule a primeira potência de 2 (20) Enquanto (potência <= 1000) Calcule a próxima potencia de 2 6 Exemplo (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 7 Considere achar a primeira potência de 2 maior do que 1.000 Faça n = 0 Faça potência = 2n Enquanto potência <= 1.000 Adicione 1 a n Faça potência = 2n Imprima n Imprima potência n potência 0 20=1 1 21=2 2 22=4 ... ... 9 29=512 10 210=1.024 7 Em Python 2/10/2009 Linguagem de Programação I - Estruturas de Controle 8 n = 0 potencia = 2 ** n while potencia <= 1000: n = n + 1 potencia = 2 ** n print “Potencia = ", n print "Valor = ", potencia 8 while (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 9 potencia = 2 while potencia <= 1000: potencia = 2 * potencia print “Potencia = ”, potencia potencia<=1000 potencia = 2*potencia True False potencia = 2 imprimir potencia 9 Estudo de caso 1 2/10/2009 Linguagem de Programação I - Estruturas de Controle 10 Uma turma de dez estudantes resolve um teste. As notas (inteiros no intervalo de 1 a 100) alcançadas estão disponíveis para você. Objetivo: determinar a média aritmética das notas da turma. Dicas: Vamos usar uma repetição controlada por contador para fornecer as entradas (notas), uma de cada vez Vamos usar um total para ir acumulando a soma das notas Vamos guardar a nota média em media 10 Estudo de caso 1 (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 11 Refinamento top-down Inicializar as variáveis Receber os dados de entrada, somar e contar as notas Calcular e imprimir a média da turma Inicializar as variáveis Inicializar total com zero Inicializar contador com zero 11 Estudo de caso 1 (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 12 Receber os dados de entrada, somar e contar as notas Enquanto o contador for menor que 10 Receba como entrada a próxima nota Some a nota ao total Some um ao contador de notas Calcular e imprimir a média da turma Atribua à média o total dividido por 10 Imprima a média 12 Estudo de caso 1 (cont.) 2/10/2009 Linguagem de Programação I - Estruturas de Controle 13 Repetição controlada por contador Inicializar total com zero Inicializar contador com zero Enquanto o contador for menor que 10 Receba como entrada a próxima nota Some a nota ao total Some um ao contador de notas Atribua à média o total dividido por 10 Imprima a média 13 Exercícios 2/10/2009 Linguagem de Programação I - Estruturas de Controle 14 Fazer programas em Python para: Calcular a soma dos 100 primeiros números naturais Calcular a média aritmética dos 100 primeiros nº naturais Imprimir o menor inteiro positivo x cujo quadrado é superior a um valor L dado 14