·

Engenharia Mecânica ·

Introdução à Lógica e Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

AULA 3 COMANDOS DE REPETIÇÃO Vamos programar Descrição Seu programa deve calcular a média aritmética de sete números reais representando a temperatura em sete dias seguidos e informar se estava quente ou frio Média acima de 150 graus está quente e frio caso contrário Entrada Uma linha contendo sete números reais Saída Seu programa deve imprimir a frase Quente ou Frio seguida de uma quebra de linha Temperatura da semana Média aritmética da semana d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Mais um pouco de programação Como calcular a média da temperatura para 30 semanas Descrição Seu programa deve calcular a média aritmética da temperatura para cada uma das 30 semanas Média maior do que 150 é considerada quente e frio caso contrário Entrada Sete números reais temperatura lidos da entrada padrão para cada semana Saída Seu programa deve imprimir a frase Quente ou Frio seguida de uma quebra de linha para cada semana Média aritmética para 30 semanas Média aritmética para 30 semanas Semana 1 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 2 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 29 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 30 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio for Repetição de contagem for i in rangeN comando comando único for i in rangeN comando1 sequência de comandos comandoN for Repetição de contagem rangen gera a sequência de números 0 1 2 n 1 A cada repetição a variável de controle assume o próximo valor da sequência for i in range5 bloco de instruções for Repetição de contagem Exemplo imprimir números de 0 a 4 for i in range5 printi Exemplo imprimir números de 1 a 5 for i in range5 printi1 RANGE A função range gera uma sequência de números Até agora vimos que rangen gera a sequência 0 1 2 n 1 A forma mais completa é rangeinicio fim passo passo é opcional se não for informado é 1 que gera uma sequência do número inicio até o número fim não incluso contando de passo em passo RANGE Exemplos range1 5 gera 1 2 3 4 range5 1 1 gera 5 4 3 2 passo negativo range0 10 2 gera 0 2 4 6 8 de 2 em 2 range0 9 3 gera 0 3 6 Média aritmética para 30 semanas Semana 1 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 2 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 29 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Semana 30 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Média aritmética para 30 semanas for i in range29 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Média aritmética para 30 semanas for i in range30 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Descrição Seu programa deve imprimir os números divisíveis por 2 e também por 3 que sejam menores que N Entrada Um número N indicando o limite para impressão Saída Seu programa deve imprimir os números que são divisíveis por 2 e 3 Imprima um por linha Divisíveis por 2 e 3 Mostrar os números que são divisíveis por 2 e 3 menores que 100 19 for i in range101 if i 2 0 or i 3 0 print i Mostrar os números que são divisíveis por 2 e 3 menores que 100 20 for i in range100 if i 2 0 and i 3 0 print i Mostrar os números que são divisíveis por 2 e 3 menores que 100 21 for i in range6 100 6 print i Loops aninhados As estruturas de repetição são consideradas instruções Isso significa que é possível incluir uma estrutura de repetição dentro de outra Isso é o que chamamos de loops aninhados Média aritmética para 30 semanas for i in range30 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Média aritmética para 30 semanas media 0 for i in range30 for j in range7 d floatinput media media d media media70 if media 150 printQuente else printFrio for i in range30 d1 floatinput d2 floatinput d3 floatinput d4 floatinput d5 floatinput d6 floatinput d7 floatinput media d1d2d3d4d5d6d770 if media 150 printQuente else printFrio Média aritmética para 30 semanas for i in range30 media 0 for j in range7 d floatinput media media d media media70 if media 150 printQuente else printFrio Exemplo programa que imprime a tabuada de 9 for i in range10 printf9 i 9 i for Repetição de contagem Escrever da tabuada de 1 até a tabuada de 5 A saída deve obedecer ao seguinte formato 1 x 1 1 1 x 2 2 1 x 9 9 2 x 1 1 2 x 2 4 2 x 9 18 5 x 9 45 Exemplo tabela de multiplicação tabuada de 1 tabuada de 2 Pensando de fora pra dentro escrever a tabuada de 1 até a tabuada de 5 for i in range1 6 escrever a tabuada de i escrever a tabuada de i for j in range1 10 printfi j i j QUIZ TIME Encontre o erro escrever a tabuada de 1 até a tabuada de 5 for i in range1 6 for i in range1 11 printfi j i j Encontre o erro Comandos de repetição E se a quantidade de entradas não for conhecida while Repetição prétestada inicialização variável iterativa while condição comando atualização da variável iterativa comando único inicialização variável iterativa while condição comando1 sequência de comandos comandoN atualização da variável iterativa while Repetição prétestada Exemplo imprimir de 1 a 3 e imprimir Fim i 1 1 inicialização da variável de controle while i 3 2 teste da condição printi 3 instruções a serem repetidas i i 1 4 atualização da variável de controle Descrição Seu programa deve calcular a média aritmética da temperatura para cada uma das N semanas Média maior do que 150 é considerada quente e frio caso contrário Entrada Para cada semana a entrada contém duas linhas A primeira possui sete números reais temperatura e a segunda contém um inteiro C que indica se existem mais semanas C 1 ou não C 0 após a atual Saída Seu programa deve imprimir a frase Quente ou Frio seguida de uma quebra de linha para cada semana Média aritmética para N semanas Média aritmética de N semanas continua 1 while continua 0 media 0 for j in range7 d floatinput media media d media media70 if media 150 printQuente else printFrio continua intinput QUIZ TIME While Qual a saída do código abaixo t 5 while t 0 r intinput r 1 printr printFinal Encontre o erro JUST WAITING FOR YOUR INFINITE LOOP TO END memegeneratornet While while i 3 i 1 printi i i 1 printFim Encontre o erro i 3 while i 8 printi i i 1 printFim While programa para contar de 3 a 8 Encontre o erro Dica para problemas de loops Há duas formas principais de entrada FOR O primeiro valor da entrada indica quantos números serão fornecidos na continuação da entrada WHILE É usado um valor especial para indicar o final da entrada Indicação da quantidade de números da entrada n intinput for i in rangen x intinput printx 2 Entrada Saída 2 2 3 4 6 3 1 5 3 2 10 6 Programa dobro Dada uma lista de N inteiros imprima o dobro de cada número Entrada A entrada é composta de várias linhas cada um com um número O primeiro número é um inteiro positivo N Os N números seguintes são valores inteiros X para os quais se deve calcular o dobro Saída Seu programa deve produzir N linhas na saída contendo o dobro de cada um dos N números Valor especial sentinela indicando fim da entrada x intinput while x 0 printx 2 x intinput Dada uma sequência de números inteiros imprima o dobro de cada número Entrada A entrada é composta de várias linhas cada uma com um número da sequência O número 0 representa o final da entrada isto é ele não faz parte da sequência e ao ler esse valor seu programa deve encerrar Saída Para cada linha da entrada exceto o 0 seu programa deve imprimir uma linha com o dobro do número lido Entrada Saída 1 2 3 0 2 4 6 2 1 0 4 2 break e continue As instruções break e continue permitem alterar o fluxo de execução normal de um loop seja for ou while Observações Em geral é possível escrever programas sem usar essas instruções Em geral o seu uso deve ser evitado pois tende a tornar o código mais difícil de entender sobretudo em loops com muitas linhas de código while True n intinput if n 0 break printn 2 printFim Dentro de qualquer estrutura de repetição é possível usar a instrução break para sair do loop break continue Dentro de qualquer estrutura de repetição é possível usar a instrução continue para voltar para o início do loop Não imprime os números pares for i in range1 100 if i 2 0 continue printi Dada uma lista de N inteiros encontre a soma de todos eles Entrada A entrada é composta de várias linhas cada uma com um número O primeiro número é um inteiro positivo N Os N números seguintes são valores inteiros X que devem ser somados Saída Seu programa deve produzir uma única linha na saída contendo a soma de todos os N inteiros Problema SOMA adaptado de httpsbrspojcomproblemsSOMA Entrada Saída 2 2 3 5 3 1 5 3 9 n intinput soma 0 for i in rangen x intinput soma x printsoma Acumulador é uma variável que guarda o resultado parcial de uma computação sendo atualizada dentro de um loop com base no seu valor anterior e no valor do item sendo analisado na iteração atual É o caso da variável soma do exemplo anterior Conceito acumulador 3 4 5 3 7 0 12 soma X Dada uma lista de N inteiros nãonegativos distintos entre si encontre o maior de todos eles Entrada A entrada é composta de vários números em linhas diferentes O primeiro número é um inteiro positivo N Os N números seguintes são valores inteiros X a serem analisados Saída Seu programa deve produzir uma única linha na saída contendo o maior de todos os N inteiros Problema MÁXIMO adaptado de httpsbrspojcomproblemsSOMA n intinput maior 1 for i in rangen x intinput maior maxmaior x printmaior Alternativa if x maior maior x Entrada Saída 2 2 3 3 3 1 5 3 5 x 3 8 5 maior 0 3 8 8 max max max max