Baixe o app para aproveitar ainda mais
Prévia do material em texto
APRENDA PYTHON VOL 3 – ESTRUTURA CONDICIONAL ENCADEADA INSTITUTO DE COMPUTAÇÃO – ICOMP – UFAM Exercícios resolvidos de Linguagem Python. Cardoso, A. K. S. 1 - DE VOLTA À ÁREA DO TRIÂNGULO Escreva um programa que leia as medidas dos três lados A, B, C de um triângulo qualquer. Em seguida, ele deve verificar se as medidas são válidas (condição de existência de um triângulo). Se as medidas forem válidas o programa deve calcular a área do triângulo. Dados de entrada: 1. Lado A 2. Lado B 3. Lado C Como saída, o programa deverá imprimir a seguinte mensagem: Entradas: A, B, C Area: X No comando print as letras A, B, C devem ser substituídas pelos valores de entrada informados pelo usuário. Se as entradas forem válidas, substitua a letra X pelo valor da área, com até três casas decimais de precisão. Caso contrário, substitua a letra X pela seguinte mensagem: invalida. Leia as dicas para verificar as condições em que três valores representam medidas válidas de um triângulo. Dicas 1. O programa está incompleto. Substitua as expressões ___COMPLETE AQUI___ por comandos que façam o programa executar corretamente. 2. A solução proposta adota os seguintes passos: 1. Ler o valor de cada lado do triângulo: A, B, C. 2. Verificar se todos os valores fornecidos são positivos. 1. Se verdade, verificar se as medidas fornecidas correspondem às de um triângulo, ou seja, se a soma dos dois lados menores é maior que o lado maior. 2. O teste deve ser verdadeiro para todas as três combinações possíveis. 3. Se todos os testes forem bem sucedidos, calcule a área e exiba a mensagem. 4. Se pelo menos um teste falhar, apresente a mensagem de erro 3. Execute o programa para todos o casos de teste apresentados. 2 - QUAL O TIPO DE TRIÂNGULO? Escreva um programa que leia três números reais, correspondentes às medidas dos lados de um triângulo, em ordem qualquer. Dados de entrada: 1. Lado A 2. Lado B 3. Lado C Como saída, o programa deverá imprimir: Entradas: A, B, C Tipo de triangulo: X No comando print() as letras A, B, C devem ser substituídas pelos valores de entrada informados pelo usuário. Substitua a letra X por um dos seguintes valores: • equilatero, se todos os três lados forem iguais; • isosceles, se apenas dois lados forem iguais; • escaleno, se nenhum par de lados forem iguais; • invalido, se pelo menos um dos lados for negativo ou se os três lados não formarem um triângulo. Leia as dicas para verificar as condições em que três valores representam medidas válidas de um triângulo. Dicas 1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 2. Condições de existência de um triângulo: 1. Todos os lados devem ser positivos. 2. A medida de qualquer um dos lados deve menor que a soma das medidas dos outros dois. 3. Execute o programa para todos o casos de teste apresentados. 3 - QUAL SUA CASA EM GOT? Elabore um programa que leia a descrição do brasão de uma das casas da série de TV "Guerra dos Tronos", conforme tabela abaixo. Como saída, determine o nome da casa correspondente. • Se a entrada for uma descrição válida, então imprima: Entrada: X Casa: Y • Se a entrada for uma casa não listada na tabela, imprima: Entrada: X Brasao invalido Substitua a letra X pela entrada inserida e a letra Y pela casa correspondente. Brasão Casa lobo Stark leao Lannister veado Baratheon dragao Targaryen rosa Tyrell sol Martell lula Greyjoy esfolado Bolton turta Tully Dicas 1. Utilize condições encadeadas (elif). 2. Use letras maiúsculas e minúsculas da mesma maneira como descrita no enunciado. Não use acentos. 3. Lembre-se que "x" (com aspas) indica o caractere xis, ao passo que x (sem aspas) indica o nome de uma variável chamada x. 4 - DOIS INTERVALOS DE VALORES Considere dois intervalos numéricos sobre a reta real: [a,b][a,b] e [c,d][c,d]. Escreva um programa que verifique se existe interseção (pelo menos um ponto em comum) entre os intervalos. • Se houver interseção, o programa deverá imprimir: Intervalo 1: a, b Intervalo 2: c, d Ha intersecao • Se não houver interseção, o programa deverá imprimir: Intervalo 1: a, b Intervalo 2: c, d Nao ha intersecao • Por fim, se as entradas forem inválidas, o programa deverá imprimir: Intervalo 1: a, b Intervalo 2: c, d Entradas invalidas Nas mensagens, substitua as letras a, b, c, d pelos valores fornecidos como entrada. Dicas 1. Leia os números reais na ordem solicitada: aa, bb, cc, dd. 2. Primeiro, verifique se os intervalos são válidos, ou seja, se b>ab>a e d>cd>c. 3. Não pressuponha nada com respeito à posição relativa entre os intervalos [a,b][a,b] e [c,d][c,d]. Ou seja, eles podem estar situados antes ou depois um do outro. 4. Antes de programar, teste alguns exemplos numéricos em um rascunho, para encontrar uma regra geral. 5. Alguns dos operadores booleanos (and, or, not) serão úteis. 6. Use letras maiúsculas e minúsculas exatamente conforme o enunciado. Não use acentos. 5 - INTERVALO DE VALORES Considere dois números reais aa e bb, sendo b>a. Um número real xx pertence ao intervalo [a,b][a,b] se a ≤ x ≤ b Escreva um programa que leia os números reais x, a, b, nesta ordem. • Se x pertencer ao intervalo, imprima a seguinte mensagem: x pertence ao intervalo a, b • Caso contrário, imprima a seguinte mensagem: x nao pertence ao intervalo a, b • Se as entradas forem inválidas, ou seja, se b ≤ a, imprima a seguinte mensagem: Entradas a e b invalidas Nas mensagens, substitua as letras x, a, b pelos valores fornecidos como entrada. Dicas 1. Note que as três entradas são números reais (float). 2. Utilize condições encadeadas (if/elif). 3. Alguns dos operadores booleanos (and, or, not) serão úteis. 4. Não confunda a vírgula que deve ser impressa (string) com a vírgula que separa um argumento de outro dentro da função print(). 6 - BOATE Em uma boate, o preço da entrada varia conforme o dia da semana. Nas segundas, terças e quintas, ela normalmente oferece um desconto de 25% sobre o preço normal de entrada. Porém, nos dias de músicas ao vivo, independentemente do dia da semana, é acrescida uma taxa fixa de R$20,00 ao preço da entrada. Elabore um programa que calcule o preço final a ser pago para entrar na boate, a partir dos seguintes valores, nesta ordem: 1. O preço normal da entrada (em reais) 2. O dia da semana (1 para domingo, 2 para segunda, ..., 7 para sábado) 3. É dia de música ao vivo? (S ou N) Validação dos dados de entrada Note que: • O preço normal deve ser maior ou igual a zero • Dias da semana só podem assumir valores inteiros de 1 a 7 • Música ao vivo só pode ser S ou N. Se o usuário inserir valores inválidos, imprima a seguinte mensagem: Entradas: X , Y , Z Dados invalidos Se as entradas forem válidas, imprima a seguinte mensagem: Entradas: X , Y , Z Valor a pagar: R$ W Nas mensagens, substitua as letras X, Y, Z e W pelos valores correspondentes. 7 - PLANTIO DE GRAMA Objetivo: Determinar o valor do serviço. A floricultura Sempre Verde oferece o serviço de plantio de grama. O custo do serviço depende da área a ser coberta e é dado pela seguinte fórmula: Valor = Área * Custo + Fertilizante O custo e o valor do adubo variam conforme a tabela a seguir: Área (m2) Custo Fertilizante [0, 100] R$ 2,00 R$ 100,00 ]100, 2500] R$ 1,80 R$ 150,00 ]2500, 10000] R$ 1,50 R$ 200,00 ]10000, ∞[ R$ 1,20 R$ 250,00 Escreva um programa que leia a área a ser coberta (em m2) e determine o valor total a ser cobrado pela empresa Sempre Verde. Dicas 1. Verifique se as variáveis associadas ao problema são reais ou inteiras. 2. O valor de saída deve ser arredondado com até duas casas decimais. 3. Considere que a entrada do programa sempre será um valormaior ou igual a zero. Exemplos adicionais: ENTRADA DE EXEMPLO (1): 1 SAÍDA DE EXEMPLO (1): 102.0 ENTRADA DE EXEMPLO (2): 10001 SAÍDA DE EXEMPLO (2): 12251.2 8 - SUSHI – INGREDIENTE Objetivo: Calcular a quantidade necessária de um ingrediente. Para fazer um sushi, vários ingredientes são utilizados. A tabela a seguir mostra o ingrediente e a quantidade necessária para preparar UMA receita. Ingrediente Quantidade (gramas) ARROZ 500 CENOURA 100 KAMPYO 20 NORI 50 OMELETE 200 PEPINO 150 SALMAO 300 SHITAKE 150 Escreva um programa que leia: 1. O nome desse ingrediente 2. A quantidade de receitas que se deseja preparar (inteiro) Como saída, determine a quantidade necessária do ingrediente para preparar o número de receitas desejado, em gramas. Se a quantidade de receitas for um valor menor que zero ou maior que 50, ou se o ingrediente não estiver listado, a saída deve ser “Entrada invalida”. Dicas 1. O valor de entrada e de saída devem ser inteiros. 2. Atenção para o uso de caracteres MAIÚSCULOS. Não use acentos. 9 - FERTILIZAÇÃO AÉREA – ESTENDIDA Objetivo: Determinar o valor do serviço. A empresa de aviação agrícola Agro Nomo oferece um serviço de aplicação de fertilizantes. O custo do serviço depende da área da plantação a ser fertilizada e é dado pela seguinte fórmula: Valor = Área * Custo + Fertilizante O custo e o valor do fertilizante variam conforme a tabela a seguir: Área (ha) Custo Fertilizante [0, 10000] R$ 6,00 R$ 100,00 ]10000, 20000] R$ 5,50 R$ 150,00 ]20000, 30000] R$ 5,00 R$ 200,00 ]30000, ∞[ R$ 4,50 R$ 250,00 Escreva um programa que leia a área a ser fertilizada (em hectares) e determine o valor total a ser cobrado pela empresa Agro Nomo, arredondado para duas casas decimais.. Dicas 1. Verifique se as variáveis associadas ao problema são reais ou inteiras. 2. Considere que a entrada do programa sempre será um valor maior ou igual a zero. 10 - FUNÇÃO C Considere a seguinte função f(x): Faça um programa que leia o valor de x e retorne o valor de f(x) baseado na definição acima. Observe que a função não está definida para todos os valores reais. Caso o usuário entre como um valor de x que não pertence ao domínio da Função, o programa deve gerar como saída a mensagem ‘entrada invalida’. Dicas 1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 2. Alguns dos operadores booleanos (and, or, not) serão úteis. 3. Imprima saída com 4 casas decimais (use a função round()). 11 - ESCOLHAS: CATEGORIA DE PESOS - A Um campeonato de luta tem 3 categorias de peso masculino, e mais 3 categorias de peso feminino. Na divisão masculina, os lutadores peso pesado são conhecidos pelo poder devastador dos seus socos, e o lutadores mais leves são conhecidos pela rapidez e agilidade. Os lutadores só podem competir na sua categoria de peso, e para mudar de categoria, eles têm que ganhar ou perder peso, o que os leva muitas vezes a perder rapidez ou perder força. O programa deverá ler as duas informações, nesta ordem: 1. O gênero do lutador (masculino ou feminino). 2. O peso do lutador. Como saída, o programa deve informar a categoria do lutador de acordo com a seguinte definição: Para mulheres, as opções são: 1. Peso Pena Feminino (acima de 61.0 até 66.0 Kg) 2. Peso Galo Feminino (acima de 52.0 até 61.0 Kg) 3. Peso Palha Feminino (até 52.0 Kg) Para os Homens, as opções são: 1. Peso Pesado (acima de 93.0 até 120.0 Kg) 2. Peso Meio Pesado (acima de 84.0 até 93.0 Kg) 3. Peso Médio (de 78.0 até 84.0 Kg) Se as entradas forem inválidas (qualquer uma das duas), imprimir a seguinte mensagem: “categoria invalida”. Dicas DICAS: 1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 2. Use o método .lower() após o final do nome da string para converter todas as suas letras em MINÚSCULAS. O ponto e os parênteses são necessários! 3. Alguns dos operadores booleanos (and, or, not) serão úteis. 4. Considere os intervalos de pesos do enunciado. Intervalos diferentes do enunciado devem ser considerados como entrada inválida, ou seja, categoria inválida. 5. Verifique se as entradas (pesos) são do tipo inteiro ou float. 12 - ÍNDICE DE MASSA CORPORAL (IMC) Escreva um programa que leia a idade e o índice de massa corporal (IMC) de uma pessoa, nessa ordem. Como saída, determine o risco de problemas cardíacos dessa pessoa, conforme a tabela a seguir: Idade < 45 ≥ 45 IMC < 22,0 Baixo Médio ≥ 22,0 Médio Alto Validação dos dados Verifique se os dados informados são válidos. Se a idade for menor ou igual a zero ou maior que 130 anos, ou se o IMC for menor ou igual a zero, imprima: Entradas: X anos e IMC Y Dados invalidos Se as entradas forem válidas, imprimia: Entradas: X anos e IMC Y Risco: Z Nas mensagens de saída, substitua as letras X, Y e Z pelos valores fornecidos. Dicas 1. Use condições encadeadas (if/elif). 2. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos. 3. Alguns dos operadores booleanos (and, or, not) serão úteis. 13 - FATOR DE FRIO DO VENTO A sensação de frio é determinada não só pela temperatura, mas também pela velocidade do vento, umidade relativa do ar e brilho do sol. Uma das formas de calcular a sensação de frio σσ envolve a seguinte fórmula: σ=13,12+0,6215⋅Tar−(11,37⋅v0,16)+(0,3965⋅Tar⋅v0,16), onde: • σ representa a sensação de frio • v representa a velocidade de vento em km/h • Tar representa a temperatura do ar em graus Celsius (C) Essa fórmula é definida apenas para temperaturas entre -50°C e 10°C, e velocidade acima de 4,8 km/h. Escreva um programa que leia a temperatura em Celsius e a velocidade do vento em km/h. • Se os valores de entrada forem válidos, o programa deverá calcular e exibir o valor de σ, com até quatro casas decimais de precisão. • Se o valor da temperatura do ar for inválido, imprima: Temperatura invalida • Se o valor da velocidade for inválido, imprima: Velocidade invalida Dicas 1. Atenção para a ordem de leitura de valores. 2. Use os operadores booleanos (and, or). 3. Use o comando round(x, n) para arredondar um valor x com até n casas decimais. 14 - POSIÇÃO DO PONTO Considere uma reta que parte do ponto p0(x0,y0) ao ponto p1(x1,y1). Dado um ponto p2(x2,y2), pode-se decidir se p2 está à esquerda, à direita ou sobre a reta (veja a figura), com base na seguinte condição cc: c=(x1−x0)⋅(y2−y0)−(x2−x0)⋅(y1−y0) A localização de p2 é definida pelas seguinte regras: • Se c<0, p2 está à direita da reta • Se c>0, p2 está à esquerda da reta • Se c=0, p2 está sobre a reta Escreva um programa que leia as coordenadas x e y de cada um dos três pontos p0, p1 e p2, um par (xi, yi) por vez. O programa deverá calcular o valor de c e imprimir a localização de p2: • A direita da reta • A esquerda da reta • Sobre a reta Fonte: Liang. Introduction to Programming Using Python. Pearson, 2013. Dicas 1. Atenção para a ordem de leitura de valores. 2. Não se limite ao caso de exemplo. Teste as diversas possibilidades de entradas e saídas. 15 - PASSAGEM DE BARCO O preço da passagem de barco, partindo de Manaus, varia conforme o destino desejado e se o passageiro fecha ou não um pacote de ida-e-volta. Escreva um programa que leia as seguintes informações, nesta ordem: 1. O nome da cidade de destino. 2. Se o percurso é somente de ida ou ida-e-volta. Como saída, imprima o preço da passagem conforme a tabela abaixo. Se a cidade de destino não estiver na relação abaixo, imprima: Destino inexistente Destino Ida (R$) Ida-e-volta (R$) Belém 350,00 650,00 Borba 80,00 152,00 Coari 106,00 199,00 Humaitá 200,00 390,00 Manicoré 150,00280,00 Maués 100,00 190,00 Dicas 1. Atenção para o tipo das entradas e saídas (inteiro, real, string). 2. Não utilize acentos. 3. Uso o ponto para separar a parte inteira da fracionária em número reais. 16 - CONTRACHEQUE Em uma empresa, o salário líquido dos funcionários é calculado em função de dois descontos: a contribuição previdenciária e o imposto de renda. Dado o salário bruto do funcionário, a contribuição previdenciária é calculada de acordo com a seguinte tabela: Salário bruto Alíquota Até R$ 1.659,38 8% De R$ 1.659,39 a R$ 2.765,66 9% De R$ 2.765,67 a R$ 5.531,31 11% Acima de R$ 5.531,31 Desconto fixo de R$ 608,44 Após o desconto da contribuição previdenciária, o valor restante é então utilizado para calcular o desconto do imposto de renda, com base nesta tabela: Salário base Alíquota de desconto Até R$ 1.903,98 Isento De R$ 1.903,99 a R$ 2.826,65 7,5% De R$ 2.826,66 a R$ 3.751,05 15% De R$ 3.751,06 a R$ 4.664,68 22,5% Acima de R$ 4.664,68 27,5% Escreva um programa que leia o salário bruto de uma pessoa, e aplique os dois descontos. Como saída, imprima a seguinte: Salario liquido = R$ X Dicas 1. Primeiro calcule a contribuição previdenciária e desconte do salário bruto. Depois, use o valor restante para determinar a o desconto do imposto de renda. Por fim, subtraia esse valor e determine o valor do salário líquido. 2. Use o comando round(x, n) para arredondar a resposta x com até 2 casas decimais. 3. Use o operador lógico (and) para a comparação entre as diferenças.
Compartilhar