Baixe o app para aproveitar ainda mais
Prévia do material em texto
APRENDA PYTHON VOL 1 – VARIAVEIS E ESTRUTURAS SEQUENCIAIS INSTITUTO DE COMPUTAÇÃO – ICOMP – UFAM Exercícios resolvidos de Linguagem Python. Cardoso, A. K. S. 1 - COMPRANDO JOGOS NA INTERNET Estanislau deseja comprar 08 jogos para seu console favorito. O preço varia de um site para o outro, mas é sempre igual para todos os títulos. O valor do frete é fixo e custa R$45,00. Escreva um programa que leia: • o valor (unitário) do jogo em um determinado site. Como saída, determine o preço a ser pago por Estanislau pelo total de 8 jogos, acrescido do valor do frete. Dicas 1. Use o comando var = input("Instrucoes: ") para ler um valor digitado via teclado e atribuí-lo à variável var. 2. 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(). 3. Use o comando float() para converter uma entrada de texto para número real. 4. As entradas e saídas de exemplo são apenas uma ilustração. O CodeBench utiliza outros casos de teste para avaliar seu código. Teste seu código com outros valores possíveis. 5. No código fornecido, modifique as linhas que contém o sinal ??, para atender as especificações do enunciado. 2 - COMPRANDO MAIS JOGOS NA INTERNET Agora, Estanislau deseja comprar vários jogos para seu console favorito. Em um mesmo site, o preço do jogo é sempre o mesmo para todos os títulos. O valor do frete é diferente para cada site. Escreva um programa que leia as seguintes entradas, nesta ordem: 1. A quantidade de jogos a serem encomendados; 2. O valor unitário de cada jogo; 3. O valor do frete. Como saída, determine o preço total a ser pago por Estanislau pelos jogos que for encomendar do site, incluindo o valor do frete. Dicas 1. Cada entrada corresponde a um comando input(). Cada saída corresponde a um comando print(), com um argumento. 2. Siga exatamente a mesma ordem de leitura de entradas especificada no enunciado. 3. Use o comando var = input("Instruções: ") para ler um valor digitado via teclado e atribuí-lo à variável var. 4. Use o comando float() para converter uma entrada de texto para número real, e o comando int() para converter uma entrada de texto para número inteiro. 5. As entradas e saídas de exemplo são apenas uma ilustração. O CodeBench utiliza outros casos de teste para avaliar seu código. Teste seu código com outros valores possíveis. 6. Modifique o código da questão anterior. 7. Considere que o CodeBench usa valores sempre válidos para corrigir o seu código (valores positivos). 3 - ELEMENTOS DA DIVISÃO INTEIRA Escreva um programa que leia dois números inteiros, nesta ordem: • X (dividendo) • Y (divisor) Como saída, imprima os quatro elementos da divisão inteira, nesta ordem: • dividendo • divisor • quociente • resto Dicas 1. O quociente da divisão inteira não tem parte fracionária. A divisão inteira é indicada por duas barras (//). 2. O resto da divisão é indicado pelo sinal %. Por exemplo, o resto da divisão de 9 por 4 é indicado por 9 % 4, cujo resultado é 1. 4 - O LUCRO DE BILICHILDE Bilichilde é consultora de uma linha de cosméticos. Seu lucro sobre o valor total de vendas é de 30%. Escreva um programa que leia o total de vendas de Bilichilde. Como saída, determine o valor do lucro obtido (em reais). Dicas 1. Valores percentuais devem ser divididos por 100 antes de serem multiplicados por uma expressão. 2. Os valores em reais devem ser arredondados em duas casas decimais de precisão. 3. Dentro do comando print, use o comando round(x, 2) para arredondar a resposta x com até duas casas decimais. 5 - ORDEM CRESCENTE Escreva um programa que leia três números inteiros a partir do teclado. Como saída, imprima os valores em ordem crescente. Dicas 1. Leia os três valores usando as funções int() e input(). 2. Use as funções min(a,b,c) e max(a,b,c) para encontrar o menor e o maior valor. 3. Para descobrir o valor intermediário, some os três valores inseridos, e em seguida subtraia o menor e o maior valor. 6 - LEIA E CONVERTA PARA MAIÚSCULAS Escreva um programa que leia o nome completo de uma pessoa. Em seguida, imprima a string lida convertendo todas as letras para MAIÚSCULAS. Dicas 1. A entrada já é uma string. Portanto, não é necessário usar nem int, nem float, que convertem strings em números. 2. Use o método .upper() após o final do nome da string para converter todas as suas letras em maiúsculas. 3. Exemplo: se texto = "Selina Kyle", então print(texto.upper()) exibe SELINA KYLE. 7 - LEIA E CONVERTA PARA MINÚSCULAS Escreva um programa que leia o nome de um produto a partir do teclado. Em seguida, imprima a string lida convertendo todas as letras para minúsculas. Dicas 1. A entrada já é uma string. Portanto, não é necessário usar nem int, nem float, que convertem strings em números. 2. Use o método .lower() após o final do nome da string para converter todas as suas letras em minúsculas. 3. Exemplo: se texto = "SABONETE", então print(texto.lower()) exibe sabonete. 8 - ÁREA DO CÍRCULO E VOLUME DA ESFERA Escreva um programa que leia o valor de um raio r, inserido via teclado. Como saída, determine as seguintes informações, nesta ordem: 1. Área de um círculo com o raio r. 2. Volume de uma esfera com raio r. Arredonde os resultados com até 03 casas decimais de precisão. Dicas 1. Importe o módulo math, para trabalhar com funções e constantes matemáticas. 2. Área de um círculo de raio r: A=πr2A=πr2. 3. Volume de uma esfera de raio r: V=43πr3V=43πr3. 4. Use a constante pi do módulo math em seus cálculos. Não use o valor aproximado dela. 5. Dentro do comando print, use o comando round(x, 3) para arredondar a resposta x com até três casas decimais. 9 - ÁREA DO TRIÂNGULO Considere um triângulo de lados a, b, c. O semiperímetro (metade do perímetro) desse triângulo é definido por: s=a+b+c2 A área A do triângulo pode ser calculada pela seguinte fórmula: A=√ s(s−a)(s−b)(s−c) Escreva um programa que leia os comprimentos dos lados de um triângulo. Como saída, determine a sua área. Dicas 1. Use a função raiz quadrada sqrt(), do módulo math. 2. Verifique qual o tipo das entradas: reais ou inteiras? 3. Considere que as entradas sempre correspondem a medidas válidas de um triângulo. 4. Dentro do comando print, use o comando round(x, 5) para arredondar a resposta x com até cinco casas decimais. 10 - COMO O GOOGLEMAPS CALCULA A DISTÂNCIA ENTRE DOIS PONTOS NA SUPERFÍCIE DA TERRA? A superfície da Terra é curva. Por isso, o teorema de Pitágoras não pode ser utilizado para calcular a distância entre dois pontos sobre a superfície da Terra. Seja (ti, gi) a latitude e longitude de um ponto Pi na superfície da Terra. A distância d entre dois pontos P1 e P2, em km, é dada por: d=R.arccos(sen(t1).sen(t2)+cos(t1).cos(t2).cos(g1−g2)) onde R = 6371,01 km é o raio médio da Terra. Escreva um programa que leia as seguintes informações, medidas em graus: 1. A latitude t1 de um ponto P1. 2. A longitude g1 de um ponto P1. 3. A latitude t2 de um ponto P2. 4. A longitude g2 de um ponto P2. Como saída, determine a distância d, em quilômetros, com duas casas decimais de precisão. 11 - DISTÂNCIA ENTRE OBJETOS Na figura abaixo: A distância entre as duas árvores pode ser calculada pelo observador usando a lei dos cossenos: c=√ a2+b2−2abcosγ Faça um programa que tenha como entrada, nessa ordem: 1. a distância a entre o observador e a primeira árvore. 2. a distância b entre o observador e a segunda árvore. 3. o angulo γ entre aa e b (em graus). Como saída, seu programa deverá imprimir, com duas casas decimais, o valor de c, correspondente à distância entre as duas árvores. 12 - MÉDIA PONDERADA Escreva umprograma que leia quatro notas de um aluno. Como saída, imprima a média ponderada, sabendo que os pesos das avaliações são respectivamente: 1, 2, 3 e 4. Arredonde os resultados com até 02 casas decimais de precisão. Dicas 1. Dentro do comando print, use o comando round(x, 2) para arredondar a resposta x com até n casas decimais. 2. Verifique o tipo das entradas: as notas são valores inteiros ou reais? 13 - QUAL O VALOR DA FÓRMULA? Escreva um programa que leia três variáveis reais a, b, c, nesta ordem. Como saída, o programa deve imprimir o resultado da seguinte fórmula matemática: (a²+b²+c²)/(a+b+c) Arredonde os resultados com 07 casas decimais. Dicas 1. Primeiro leia as variáveis, depois aplique a fórmula e, por fim, imprima o resultado. 2. Considere que a soma a + b + c nunca será igual a zero, ou seja, não terá divisão por zero 3. Dentro do comando print, use o comando round(x, n) para arredondar a resposta x com até n casas decimais. 14 - POLPA DE FRUTAS Michael comprou alguns litros de polpa de frutas, com o objetivo de doar dois terços a uma instituição de caridade e ficar com um terço. Escreva um programa que leia quantos litros foram comprados. Como saída, apresente a quantidade que ficará com Michael. Arredonde os valores com até 03 casas decimais de precisão. Dicas 1. Dentro do comando print, use o comando round(x, 3) para arredondar a resposta x com até três casas decimais. 2. Observe qual o tipo de entradas e saídas esperadas: real ou inteiro? Por exemplo, é possível comprar 2,5 litros ou apenas quantidades inteiras? 3. Use a função round(x, n) para arredondar um número x com até n casas decimais de precisão. 15 - CONSUMO DE COMBUSTÍVEL A partir da distância total percorrida (em km) e do total de combustível gasto (em litros), calcule o consumo médio de um automóvel. Apresente o valor que representa o consumo médio do automóvel com até 3 casas após a vírgula, seguido da mensagem "km/l". Dicas 1. Dentro do comando print, use o comando round(x, 3) para arredondar a resposta x com até três casas decimais. 2. Dentro do comando print, além do consumo médio, imprima a string "km/l". 3. Use a função round(x, n) para arredondar um número x com até n casas decimais de precisão. 16 - VIAGEM DE CARRO Escreva um programa que leia: 1. O tempo gasto em uma viagem de carro. 2. A velocidade média do veículo. Como saída, o programa deve calcular e apresentar: 1. A distância percorrida. 2. A quantidade de litros de combustível gastos na viagem. A autonomia do veículo é de 12.0 km com um litro de combustível. Dicas 1. O tempo de viagem deverá ser lido em horas, como um número real. Exemplos: o 1h 15min = 1.25 o 30 min = 0.5 17 - FEITIÇO PARA ABRIR OBJETOS A bruxa Hermitwo precisa lançar um feitiço para abrir objetos. O feitiço consiste em repetir N vezes a seguinte frase mágica: Abra + nome_do_objeto Escreva um programa que leia as seguintes informações, nesta ordem: 1. Nome do objeto 2. Número de repetições do feitiço Como saída, imprima o feitiço a ser conjurado por Hermitwo. Dicas 1. Atenção para o uso de caracteres maiúsculos e minúsculos. 2. Use o sinal de + para concatenar strings e o sinal de * para repetir strings. 3. Durante a leitura, tenha atenção para os tipos das variáveis envolvidas: string e inteiro. 4. Antes de repetir a string, concatene o caractere de espaço ao final da frase mágica: " ". 18 - DANO NA BATALHA Escreva um programa que leia as seguintes informações: 1. Pontos de vida iniciais de um monstro antes de uma batalha de RPG (Role Playing Game). 2. Os valores sorteados no lançamento de dois dados de vinte faces (D1 e D2). Como resultado, determine os pontos de vida RESTANTES do monstro após a aplicação do golpe. O dano causado pelo golpe corresponde à parte inteira do resultado da seguinte fórmula: dano=⌊√ 5⋅D1+πD23⌋ onde D1 e D2 são os valores sorteados pelos dados, na ordem informada. Dicas 1. Importe o módulo math, para trabalhar com funções e constantes matemáticas. 2. Use a função int(f) para obter a parte inteira de um número real f. 3. Atente para a ordem das entradas. 4. Observe o tipo das entradas: inteiras ou reais? 19 - DÍGITO VERIFICADOR Objetivo: calcular o dígito verificador de uma conta bancária As contas bancárias do banco Gringotes são identificadas por uma sequência de quatro dígitos, mais um dígito verificador. Exemplo: Para calcular o dígito verificador, procede-se assim: 1. Começando da direita para a esquerda, cada dígito da conta é multiplicado por um número, sendo o primeiro por 2, depois por 3, depois por 4, e depois por 5. 2. O somatório dessas multiplicações é dividido por 11. 3. O resto desta divisão (módulo 11) é o dígito verificador. Observe este exemplo: Escreva um programa que leia um número inteiro de quatro dígitos, correspondente à conta bancária. Como saída, imprima o dígito verificador. Dicas 1. Para isolar os dígitos do número lido, utilize os operadores de resto da divisão (%) e da divisão inteira (//). 2. Considere que a entrada é sempre válida, ou seja, tem sempre no máximo quatro dígitos. 20 - PONTO MÉDIO ENTRE DOIS PONTOS NO PLANO CARTESIANO Sejam A e B dois pontos sobre plano cartesiano. As coordenadas do ponto M, o ponto médio do segmento de reta formado por A e B, são dadas por: xM = (xB+xA)2 yM = (yB+yA)2 Elabore um programa que leia, nesta ordem: 1. as coordenadas do ponto A (xA, yA) 2. as coordenadas do ponto B (xB, yB) Como saída, imprima o valor das coordenadas xM e yM, nessa ordem, com até uma casa decimal de precisão. Dicas 1. Atenção para a ordem de leitura e impressão dos valores. 2. Use a função round(x, n), nativa da linguagem Python, para arredondar um número x com até n casas decimais de precisão. 3. Certifique-se qual o tipo numérico (float ou int) das entradas e saídas. 21 - DISTÂNCIA ENTRE DOIS PONTOS NO PLANO CARTESIANO Sejam A e B dois pontos sobre o plano cartesiano, como ilustrado na figura a seguir. A distância d entre A e B é dada pela seguinte fórmula: dAB=√ (XB−XA)2+(YB−YA)2 dAB=(XB−XA)2+(YB−YA)2 Elabore um programa que leia as coordenadas do ponto A (XA,YA) e as do ponto B (XB,YB), nessa ordem, e imprima no console o valor da distância entre eles com até três casas decimais de precisão. Dicas 1. Atenção para a ordem de leitura dos valores de entrada. 2. Use a função round(x, n), nativa da linguagem Python, para arredondar um número x com até n casas decimais de precisão. 3. Certifique-se qual o tipo numérico (float ou int) das entradas e saídas. 22 - PROBLEMA DO ANIVERSÁRIO Em um grupo de n pessoas, a probabilidade de que duas delas façam aniversário no mesmo dia do ano é dada pela seguinte expressão: p(n)=[1−365!/(365−n)!]⋅[1/365^n] Escreva um programa que leia o número de pessoas em um grupo e, como saída, informe a probabilidade (em %) de duas pessoas desse grupo fazerem aniversário juntas. Apresente o resultado com até duas casas decimais de precisão. Observe que p será um número entre 0 e 1 por ser uma probabilidade. A questão solicita o resultaod em porcentagem. Curiosidade: Para um grupo maior que 23 pessoas, como uma sala de aula, a probabilidade de que duas pessoas façam aniversário juntas é maior que 50%. Será se isso acontece na sua turma? Dicas 1. Note que p(n) é um valor entre 0 e 1, mas que a saída deve estar entre 0 e 100 (em %). 2. Use a função factorial(x) do módulo math, para encontrar o fatorial de x. 3. Use a função round(x, n) para arredondar um número x com até n casas decimais de precisão. 4. Certifique-se qual o tipo numérico (float ou int) das entradas e saídas. 23 - MÉDIA FINAL Em uma turma de IPC, a nota final (NF) é calculada com base em três outras notas: 1. Média dos Laboratórios(ML) que compõe 25% da nota final. 2. Média dos Trabalhos (MT) que compõe 30% da nota final. 3. Média das Provas (MP) que compõe 45% da nota final. Escreva um programa que leia, nessas ordem, essas três notas (que estarão entre 0 e 10). Como saída, seu programa deve imprimir a nota final do aluno com duas casas decimais. Dicas 1. Tanto as médias quanto a nota final são números reais. 2. Utilize a função round().
Compartilhar