Baixe o app para aproveitar ainda mais
Prévia do material em texto
APRENDA PYTHON VOL 2 – ESTRUTURA CONDICIONAL COMPOSTA INSTITUTO DE COMPUTAÇÃO – ICOMP – UFAM Exercícios resolvidos de Linguagem Python. Cardoso, A. K. S. 1 - É MÚLTIPLO DE 2? Elabore um programa que leia um número inteiro. Se ele for múltiplo de 2, então imprima a mensagem "sim". Caso contrário, imprima "nao". Dicas 1. As linhas 5, 7, 9 e 12 contêm erros. Corrija-os e submeta o programa ao CodeBench. 2. Use o operador de resto da divisão (%). Se A for divisível por B, então A % B é igual a zero. 3. Atenção para a grafia das palavras: todas as letras do resultado devem ser minúsculas. Não use acentos. 4. O comando s.upper() ajusta todas as letras da string s para MAIÚSUCLAS. O comando s.lower() ajusta todas as letras da string s para minúsculas. 2 - PAGA OU NÃO PAGA A PASSAGEM? Elabore um programa que leia a idade de uma pessoa (número inteiro). O programa deve verificar se a pessoa vai pagar ou não a passagem com base nas seguintes regras: • Se ela tiver 2 anos ou mais, então imprima a mensagem paga. • Caso contrário, imprima nao_paga. Dicas 1. Atenção para a grafia das palavras: todas as letras do resultado devem ser minúsculas. Não use acentos. 2. Teste as duas possibilidades da condição if. Não se limite ao exemplo de entrada/saída. 3 - PONTO EM QUADRANTES SUPERIORES OU INFERIORES Escreva um programa que leia 02 valores, xx e yy, que representam as coordenadas de um ponto no plano cartesiano. Como saída, imprima: • Superiores, se o ponto está situado nos quadrantes Q1 ou Q2. • Inferiores, se o ponto está situado nos quadrantes Q3 ou Q4. Dicas 1. Os valores de entrada são reais (float). 2. Utilize letras maiúsculas e minúsculas exatamente como consta no enunciado. 3. Antes de submeter, teste as várias possibilidades de saída. Não se limite ao caso de exemplo. 4 - PATRONO: GINA E HARRY Harry Potter e Gina Weasley conseguem produzir seus patronos (um feitiço baseado na felicidade) com tempo diferente e que percorrem uma distância diferente. Escreva um programa que leia o nome do bruxo desejado (GINA ou HARRY). Como saída, calcule e imprima a velocidade (m/s) do patrono correspondente. Use os seguintes espaços e tempos para cada bruxo: • Gina: o Espaço (m): 3.7654 o Tempo (s): 2.3479 • Harry: o Espaço (m): 3.674 o Tempo (s): 2.789 Dicas 1. Use o método .upper() após o final do nome da string para converter todas as suas letras em MAIÚSCULAS. O ponto e os parênteses são necessários! 2. Não é necessário arredondar o resultado. 5 - CONTA DE ENERGIA A concessionária de energia elétrica Darkness tem a seguinte política de cobrança tarifária: 1. Se o cliente consumir 150 kWh ou menos, a empresa cobra uma tarifa de R$ 0,60 a cada kWh consumido, mais um valor fixo de R$ 5,00 como taxa de iluminação pública. 2. Caso contrário, a empresa cobra uma tarifa de R$ 0,75 a cada kWh, mais um valor fixo de R$ 16,00 pela taxa de iluminação pública. Escreva um programa que leia: • o consumo de energia (em kWh) de um cliente. Como saída, determine: • o valor da conta que ele terá que pagar à empresa Darkness. O valor de saída deve ser arredondado com até duas casas decimais. Dicas 1. Considere que a entrada do programa sempre será um valor maior que zero. 2. Verifique se as variáveis associadas ao problema são reais ou inteiras. 3. Use o comando int() para converter a entrada de texto para um número inteiro e float() para converter uma entrada de texto para número real. 4. A ordem de leitura das variáveis de entrada deve obedecer àquela explicitada no enunciado. 5. A quantidade de entradas solicitadas em um programa determina a quantidade de comandos input(); e a quantidade de saídas determina a quantidade de comandos print(). 6. Use a função round(x,n) para arrendondar o número x para n casas decimais. 6 - A BATALHA DE YAVIN A Batalha de Yavin foi uma grande batalha da Guerra Galáctica Civil que resultou na destruição da primeira Estrela da Morte. Esse evento marca o “ano zero” do Calendário Galáctico de tal forma que datas antes da batalha são marcadas com o prefixo ABY (Antes da Batalha de Yavin) e datas após a batalha são marcadas com o prefixo DBY (Depois da Batalha de Yavin). Escreva um programa que leia um ano (inteiro) que pode ser positivo ou negativo. Como saída, seu programa deverá escrever o ano no formato do Calendário Galáctico, ou seja: • Se o ano for negativo, imprima primeiro ABY, seguido do valor absoluto do ano. Exemplo: -18 ficará ABY 18 • Se o ano for positivo (incluindo o zero), imprima DBY seguido do ano. Exemplo: 5 ficará DBY 5 Dicas 1. Verifique se as variáveis associadas ao problema são reais ou inteiras. 2. O valor de saída deverá ter um espaço entre o prefixo (ABY/DBY) e o ano. Isso é feito automaticamente pela função print 7 - CONVERSOR DE TEMPERATURA Escreva um programa que converta uma temperatura da escala Celsius para Fahrenheit ou vice-versa. Use a seguinte equação para conversão: C=5/9(F−32) Para isso, você deverá ler duas entradas: 1. escala em que a temperatura está representada: C para Celsius, ou F para Fahrenheit. 2. valor da temperatura. Como saída, imprima: • a temperatura convertida para a outra escala, arredondada em duas casas decimais. Dicas 1. Atenção para a ordem de leitura de valores. 2. A conversão de Celsius para Fahrenheit requer a manipulação da fórmula. 3. Use a função round(x,n) para arrendondar o número x para n casas decimais. 4. Teste as duas possibilidades da condição if. Não se limite ao exemplo de entrada/saída. 8 - LOJA VIRTUAL DE GAMES - DESCONTO Uma loja de jogos eletrônicos na Internet está com um desconto na compra de dois jogos. Na compra do segundo jogo você ganha um desconto de 25% no valor do segundo jogo. Dessa forma, escreva um programa que leia: 1. A quantidade de jogos (1 ou 2). 2. O preço do primeiro jogo. 3. O preço do segundo jogo, se for o caso. Como saída, imprima: • o valor total da compra. O valor de saída deve ser arredondado para duas casas decimais. Dicas 1. Certifique-se qual o tipo numérico (float ou int) das entradas e saídas. 2. Use a função round(x,n) para arrendondar o número x para n casas decimais. 9 - Restaurante do Zezinho - dinheiro curto Além do serviço de buffet, o restaurante do Zezinho dispõe de sucos e salgados para a comunidade UFAM. A tabela de preços é a seguinte: Item Preço Suco R$ 3,00 Salgado R$ 3,50 Você e seus amigos estão com pouco dinheiro, mas gostariam de fazer um lanche no restaurante do Zezinho. Escreva um programa que leia, nesta ordem: 1. A quantidade de sucos. 2. A quantidade de salgados. 3. O valor que vocês têm disponível. Como saída, imprima: 1. O valor total do lanche arredondado para duas casas decimais. 2. ‘Sim’ se o valor disponível for suficiente ou ‘Nao’, caso contrário. Dicas 1. Certifique-se qual o tipo das entradas e saídas. 2. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 3. Use a função round(x,n) para arrendondar o número x para n casas decimais. 10 - RAÍZES DE EQUAÇÕES DO SEGUNDO GRAU Considere a seguinte equação do segundo grau: Ax²+bx+c=0 Escreva um programa em Python que leia três valores reais que representam os coeficientes de uma equação de 2o grau nessa ordem: 1. Coeficiente a do termo x² 2. Coeficiente b do termo x 3. Termo independente c. Utilize a Fórmula de Bhaskara (https://brasilescola.uol.com.br/matematica/formula-bhaskara.htm) e considere todas as possíveis condições para delta: delta < 0, delta > 0 e delta = 0). Como saída o programa deve apresentar: https://brasilescola.uol.com.br/matematica/formula-bhaskara.htm 1. Apresentar as raízes, se for possível fazer o cálculo para os valoresinformados; 2. A mensagem "a equacao nao possui raizes reais", se não for possível fazer o cálculo. Não use o módulo Math da linguagem Python na implementação. Dicas 1. Utilize o tipo float para as variáveis a, b e c. 2. Lembre-se que: o delta=b2−4ac o x1=(−b+√ delta )/2∗a o x2=(−b−√ delta )/2∗a 3. Na saída, imprima x1 e depois x2. 11 - FERTILIZAÇÃO AÉREA A empresa de aviação agrícola Agro Fértil oferece um serviço de aplicação de fertilizantes. O custo do serviço depende da área da plantação a ser fertilizada e obedece a seguinte regra: 1. Se a área a ser fertilizada for de 10 mil hectares ou menos, o custo é de R$ 5,00 por hectare. 2. Se a área a ser fertilizada tiver mais do que 10 mil hectares, o custo total é de R$ 5,00 por cada um do 10 mil hectares iniciais, mais R$ 4,00 por hectare excedente. Escreva um programa que leia: • a área a ser fertilizada (em hectares). Como saída, determine: • o valor total a ser cobrado pela empresa Agro Fértil. O valor de saída deve ser arredondado com até duas casas decimais. Dicas 1. Considere que a entrada do programa sempre será um valor maior que zero. 2. Verifique se as variáveis associadas ao problema são reais ou inteiras. 3. Use o comando int() para converter a entrada de texto para um número inteiro e float() para converter uma entrada de texto para número real. 4. A ordem de leitura das variáveis de entrada deve obedecer àquela explicitada no enunciado. 5. A quantidade de entradas solicitadas em um programa determina a quantidade de comandos input(); e a quantidade de saídas determina a quantidade de comandos print(). 6. Use a função round(x,n) para arrendondar o número x para n casas decimais. 12 - Comissão da Sapataria A sapataria Pies Descalzos tem a seguinte política de pagamento de comissão para seus vendedores: 1. Se o volume de vendas for R$ 1.000,00 ou menos, a sapataria paga 5% de comissão sobre o valor vendido. 2. Se o volume de vendas for maior que R$ 1.000,00, a sapataria paga 5% sobre os primeiros mil reais mais 10% em relação ao que exceder. Escreva um programa que leia: • o valor de vendas de um funcionário. Como saída, determine: • o valor da comissão a ser paga pela sapataria Pies Descalzos. O valor de saída deve ser arredondado com até duas casas decimais. Dicas 1. Considere que a entrada do programa sempre será um valor maior que zero. 2. Verifique se as variáveis associadas ao problema são reais ou inteiras. 3. Use o comando int() para converter a entrada de texto para um número inteiro e float() para converter uma entrada de texto para número real. 4. A ordem de leitura das variáveis de entrada deve obedecer àquela explicitada no enunciado. 5. A quantidade de entradas solicitadas em um programa determina a quantidade de comandos input(); e a quantidade de saídas determina a quantidade de comandos print(). 6. Use a função round(x,n) para arrendondar o número x para n casas decimais. 13 - SISTEMA DE EQUAÇÕES DE DUAS VARIÁVEIS Um sistema de equações lineares da forma: pode ser resolvido utilizando-se as seguintes fórmulas: Elabore um programa que leia o conjunto de coeficientes aa, bb, cc, dd, ee, ff, nessa ordem. Como saída, imprima a solução xx e yy, nessa ordem. Antes de efetuar a divisão, verifique se ela pode ser feita. Caso negativo, imprima no console a mensagem Nao tem solucao Dicas 1. Atenção para a ordem de leitura e de impressão de valores. 2. Seu programa deve exibir a mensagem de erro exatamente como consta no enunciado. Observe o uso de maiúsculas e minúsculas, e sinais de pontuação. Não utilize acentos. 3. A divisão por zero é um erro que impede a execução correta do programa. Evite-o calculando as soluções xx e yy dentro da condição if. 14 - PROPRIEDADES DE UM NÚMERO Escreva um programa que leia um número inteiro nn de 03 dígitos, ou seja, 100≤n≤999 Como saída, imprima SIM caso nn satisfaça a propriedade abaixo, ou NAO, caso contrário. Propriedade: • Se o dígito da esquerda for removido, o número restante é divisor do número original. Dicas 1. Se a entrada for 150, remove-se o dígito 1 à esquerda, obtendo-se 50. Como 50 é divisor de 150, então a saída deve ser SIM. 2. Se a entrada for 160, remove-se o dígito 1 à esquerda, obtendo-se 60. Como 60 não é divisor de 160, então a saída deve ser NAO. 3. Observe o uso de maiúsculas e minúsculas. Não utilize acentos. 4. Considere que a entrada sempre recebe números de 03 dígitos. 15 - SOMA DOS CUBOS O número 153 possui uma característica curiosa. Ele é igual à soma dos cubos de seus algarismos: 153=13+53+33 Elabore um programa que leia um número fornecido pelo usuário. Em seguida, verifique se o número satisfaz essa característica. Como saída, o programa deverá imprimir, nesta ordem: 1. O número fornecido pelo usuário. 2. A mensagem atende, se a característica for atendida, ou nao atende, caso contrário. Caso de teste 1 • Entrada: 456 • Cálculo: 4³ + 5³ + 6³ = 405 • Saídas: 456 e nao atende Caso de teste 2 • Entrada: 153 • Cálculo: 1³ + 5³ + 3³ = 153 • Saídas: 153 e atende Dicas 1. Para separar o número em três partes, utilize os operadores de resto da divisão (%) e da divisão inteira (//). 16 - Robertina compra apartamento? Robertina quer investir um valor inicial Q0 de R$ 1.500,00 de sua poupança para comprar seu apartamento. Para isso, investiu seu capital inicial durante 36 meses tt a juros compostos. Nessas condições, escreva um programa que leia, nesta ordem: 1. A taxa de juros (j) aplicada no valor inicialmente investido pela Robertina. 2. O valor do apartamento. Calcule o valor final, usando a fórmula de juros compostos: Qf=Q0∗(1+j)^t Como saída, imprima: 1. O valor final do investimento 2. ‘Sim’ se Robertina tiver o suficiente para comprar o apartamento ou ‘Nao’, caso contrário. Dicas 1. xyxy em Python pode ser escrito como: “x**y”. 2. O valor final deve possuir duas casas decimais. Use a função round(x, y). 3. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 17 - GRATIFICAÇÃO AO FUNCIONÁRIO DO ANO Uma empresa decidiu dar uma gratificação diferenciada ao melhor funcionário do ano. A gratificação é determinada com base no número de horas extras trabalhadas e no número de horas não trabalhadas, ou seja, que o funcionário faltou ao serviço, conforme tabela a seguir, em que o índice H é determinado da seguinte forma: H = (NÚMERO DE HORAS EXTRAS) - 1/4 * (NÚMERO DE HORAS NÃO TRABALHADAS) Tipo Índice H Gratificação Melhor funcionário Maior que 400 R$500,00 Padrão Até 400 R$100,00 Escreva um programa que leia: 1. O número de horas extras; 2. O número de horas que o funcionário faltou. Considere as horas informadas como sendo um número real, por exemplo 3.5 horas. Como saída, imprima a seguinte mensagem: E extras e F de falta R$ G Nas mensagens, substitua a letra G pelo valor correspondente. Dicas DICAS: 1. Os valores em moeda devem ser arredondados em duas casas 2. A ordem de leitura das variáveis de entrada deve obedecer àquela explicitada no enunciado. 3. Considere que o usuário sempre fornece entradas válidas, ou seja, números reais positivos. 4. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros 18 - HAVERÁ SEGUNDO TURNO? No Brasil, as eleições para prefeito podem ser decididas em segundo turno, se o município tiver mais de 200 mil habitantes. O que define a possibilidade de realização de segundo turno é a adoção do critério da maioria absoluta de votos, ou seja, para ser eleito, o candidato mais votado deve obter mais da metade dos votos válidos. Votos válidos são aqueles atribuídos a algum candidato. Suponha que estamos contabilizando os votos do primeiro turnode uma eleição com três candidatos. Escreva um programa que leia o número de votos, nesta ordem: 1. Do candidato mais votado 2. Do candidato em segundo lugar 3. Do candidato menos votado Como saída, imprima: • SIM, se a eleição for precisar de segundo turno; • NAO, se a eleição for decidida no primeiro turno. Dicas DICAS: 1. A ordem de leitura das variáveis de entrada deve obedecer àquela explicitada no enunciado. 2. Considere que o usuário sempre fornece entradas válidas, ou seja, números inteiros (int). 3. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use acentos, para evitar erros. 19 - TANQUE DE COMBUSTÍVEL Um tanque de combustível tem o formato esférico, conforme figura abaixo. Escreva um programa que leia: 1. O raio (rr) do tanque. 2. A altura da coluna de ar (xx) na parte superior do tanque. 3. O número da opção desejada, onde: ▪ 1 indica o cálculo do volume de ar; e ▪ 2 indica o cálculo do volume de combustível no tanque. A saída do programa deverá ser o volume conforme a opção selecionada, com quatro casas decimais de precisão. Volume da esfera de raio rr: V=4πr³/3 Volume da calota esférica de raio rr e altura xx: V=πx²⋅(3r−x)/3 Dicas 1. O volume de ar corresponde à formula da calota esférica. 2. O volume do combustível é a diferença entre volume total da esfera e o volume da calota esférica. 3. Não altere a ordem dos parâmetros de entrada. 4. Não é necessário verificar situações inválidas, tais como: opções diferentes de 1 ou de 2; altura da coluna de ar maior que o diâmetro da esfera. 5. Use a função round(x, n) para arredondar um número x com até n casas decimais de precisão. 20 - ANGRY BIRDS No jogo Angry Birds, o objetivo é lançar um pássaro para atingir um porco. A distância máxima R que o pássaro percorrerá na componente horizontal é dada por: R=(v0)²⋅sen(2α)/g onde: • v0 é a velocidade inicial (m/s). • α é o ângulo do vetor de lançamento com o solo. • g = 9,8 m/s² é a aceleração da gravidade. Escreva um programa que leia os seguintes valores, nesta ordem: 1. velocidade inicial v0 (em m/s). 2. ângulo α (em graus). 3. distância horizontal D (em metros) entre o pássaro e o porco, considerando que eles estão na mesma altura em relação ao solo. Como saída, o programa deverá imprimir, nesta ordem: 1. a mensagem sim, se o pássaro atingir o porco. 2. a mensagem nao, caso contrário. Admita uma tolerância de 0,1. Por exemplo, se D = 20 então podemos considerar que o pássaro acerta o porco quando R = 19,9 ou R = 20,1. Dicas 1. Não se esqueça que a função seno (sin) trabalha com ângulos em radianos. 2. Use a função radians(x), do módulo math, para converter um ângulo x de graus para radianos. 3. Use a função abs(x), que fornece o valor absoluto de um número real x, ou seja, a sua distância escalar até o zero. Por exemplo, abs(D - R) deve ser menor que 0,1. 4. Não altere a ordem dos parâmetros de entrada, para que o CodeBench não rejeite seu programa.
Compartilhar