Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação BCC701 Programação de Computadores I Semestre: 2021-01 Aula Prática – Implementação de Funções Pré-requisitos: • Estar familiarizado com o conteúdo das aulas anteriores e ter realizado as tarefas correspondentes. • Ler o caṕıtulo 5 do livro texto da disciplina. • Assistir os v́ıdeos e/ou aulas teóricas correspondentes. Resumo: • Já vimos que em Python podemos usar várias funções internas: int, float, input, print e range. • Além dessas, existem outras funções que podem ser usadas e que fazem parte de bibliotecas de funções que têm finalidades espećıficas e que precisam ser importadas (comando import) para serem usadas. Por exemplo, a biblioteca math que possui as funções: – sqrt: raiz quadrada – cbrt: raiz cúbica – sin: seno – cos: cosseno – Exemplo: x = math.sqrt(25), a variável x receberá o valor 5. • As funções citadas anteriormente já estão implementadas na biblioteca padrão do Python ou na biblioteca math, e existem várias outras bibliotecas de funções dispońıveis. • Porém, a linguagem Python fornece recursos para que o programador possa implementar suas próprias funções. Algumas vantagens em utilizar tais recursos: – Os programas ficam mais leǵıveis, especialmente os maiores e mais complexos; – Realizar alterações e correções no código fica mais fácil; – Uma mesma tarefa pode ser representada em uma única porção de código (definição da função) e utilizada sempre que necessário (chamada da função). • Um exemplo de definição (implementação) e chamada (utilização) de funções: 1 # Definição (implementação da função) 2 def imprime_soma(a, b): 3 print(f"soma de {a} e {b} é igual a {a + b}") 4 5 # Chamadas (utilização da função implementada) 6 imprime_soma(2, 5) 7 imprime_soma(4, 8) 8 x = int(input(’Informe x: ’)) 9 y = int(input(’Informe y: ’)) 10 imprime_soma(x, y) • Nesta prática a intenção é reforçar seus conhecimentos em todos estes recursos e praticar sua utilização na construção de programas que resolvam algum problema espećıfico. Se você não está familiarizado com os itens listados acima, consulte os pré-requisitos da prática, listados no ińıcio desta página. 1 Tarefa 1: Maior Valor Função que imprime o maior valor entre dois passados por parâmetro. 1 def imprime_maior(x, y): 2 if x > y: 3 print(f"O maior valor é: {x}") 4 else: 5 print(f"O maior valor é: {y}") 6 7 imprime_maior(1, 3) Note que a função acima imprime na tela mas não retorna nenhum valor, visto que não há o comando return. A função a seguir, por outro lado, retorna o maior valor (note o comando return na linha 6). 1 def maior(x, y): 2 if x > y: 3 val = x 4 else: 5 val = y 6 return val 7 8 print(f"O maior valor é: {maior(1, 3)}") Implemente um programa contendo os códigos apresentados anteriomente (em ordem) e faça testes de execução e depuração. 2 Tarefa 2: Celsius para Fahrenheit e vice-versa Função que converte o valor de Celsius para Fahrenheit. 1 def celsius_para_fahrenheit(c): 2 return c * 9/5 + 32 Função que converte o valor de Fahrenheit para Celsius. 1 def fahrenheit_para_celsius(f): 2 return (f − 32) * 5/9 Note que as funções acima recebem exatamente um argumento, a temperatura, e retorna o valor da temperatura convertido para outra unidade. A seguir, vamos utilizar as funções acima, de acordo com os dados digitados pelo usuário: 1 # entrada: temperatura e opcao 2 temperatura = float(input(’Digite a temperatura: ’)) 3 opcao = input(’Digite 1 para converter de Celsius para Fahrenheit e 2 para converter de Fahrenheit para Celsius: ’) 4 5 if opcao == ’1’: 6 resultado = celsius_para_fahrenheit(temperatura) 7 print(f’{temperatura:.2f} Celsius = {resultado:.2f} Fahrenheit’) 8 elif opcao == ’2’: 9 resultado = fahrenheit_para_celsius(temperatura) 10 print(f’{temperatura:.2f} Fahrenheit = {resultado:.2f} Celsius’) 11 else: 12 print(f’Opção {opcao} inválida’) Implemente um programa contendo os códigos apresentados anteriormente (em ordem) e faça testes de execução e depuração. 3 Questão 1 Você empresta dinheiro com cobrança de juros simples, que é calculada da seguinte forma: J = C × t×m onde: J é o valor dos juros devido; C é o capital emprestado; t é a taxa de juros do peŕıodo; e m é a quantidade de meses para quitação da d́ıvida. A taxa de juros depende do capital emprestado: para valores menores ou iguais a R$ 10.000,00, a taxa de juros é de 10% ao mês (ou seja, t = 0, 1), já para valores maiores que R$ 10.000,00 e menores ou iguais R$ 20.000,00, a taxa de juros é de 7% ao mês (ou seja, t = 0, 07) e para valores maiores que R$ 20.000,00 a taxa de juros é de 5% ao mês (ou seja, t = 0, 05). Implemente um programa que receba como entradas os valores de: C (real) e m (inteiro). Em seguida ele determina a taxa de juros t, levando em consideração o valor do capital emprestado, e calcula o valor de juros devido. Ao final, o programa imprime a taxa de juros aplicada (valor percentual, com 0 casas decimais), o juros devido calculado (J , com 2 casas decimais) e o valor total da d́ıvida (soma do capital emprestado e o juros devido, também com 2 casas decimais). O valor de juros devido (J) deve ser calculado através da implementação e chamada da função jurosDevido, que recebe como argumentos os valores de C, t e m, calcula e retorna o valor de J . Exemplos de execução a seguir. Exemplo 1: Capital emprestado: 1560.89 Quantidade de meses para quitação: 6 Taxa de juros aplicada: 10% Juros devido: 936.53 Valor total: 2497.42 Exemplo 2: Capital emprestado: 25900.99 Quantidade de meses para quitação: 3 Taxa de juros aplicada: 5% Juros devido: 3885.15 Valor total: 29786.14 4 Questão 2 Implemente o programa descrito pelo fluxograma a seguir. Siga o formato de sáıda indicado nos exemplos e note que o programa imprime o peso que deve ser perdido com exatamente 2 casas decimais. Você deve implementar e utilizar duas funções: • calculoIMC: recebe como argumentos de entrada o peso e a altura, calcula e retorna o IMC da pessoa. • difPeso: recebe como argumentos de entrada o peso, o IMC desejado e a altura, calcula e retorna a diferença de peso que a pessoa deve ganhar ou perder. Início Calcular IMC Sexo é masculino (M)? Valor de IMC é maior que 25? Valor de IMC é maior que 24? Informe à usuária que ela não precisa perder peso para ter IMC <= 24 Imprimir o peso que a usuária deve perder para ter IMC=24 SimNão SimNão Informe ao usuário que ele não precisa perder peso para ter IMC <= 25 Imprimir o peso que o usuário deve perder para ter IMC=25 SimNão Fim Ler valores do Peso, Altura e Sexo Calcular o peso para obter IMC = 24 Calcular o peso para obter IMC = 25 Sexo é feminino (F)? Sim Informe que a entrada contém dados não reconhecidos Não Dica: lembre-se que IMC = Peso Altura2 e, portanto, Peso = IMC×Altura2. Exemplo 1: Digite seu peso (em kg): 90 Digite sua altura (em metros): 1.9 Seu sexo é masculino (M) ou feminino (F)? M Você não precisa perder peso para ter IMC <= 25 Exemplo 2: Digite seu peso (em kg): 60 Digite sua altura (em metros): 1.6 Seu sexo é masculino (M) ou feminino (F)? F Você não precisa perder peso para ter IMC <= 24 5 Exemplo 3: Digite seu peso (em kg): 60 Digite sua altura (em metros): 1.57 Seu sexo é masculino (M) ou feminino (F)? F Você deve perder 0.84kg para ter IMC = 24 Exemplo 4: Digite seu peso (em kg): 85 Digite sua altura (em metros): 1.75 Seu sexo é masculino (M) ou feminino (F)? M Você deve perder 8.44kg para ter IMC = 25 Exemplo 5: Digite seu peso (em kg): 85 Digite sua altura (em metros): 1.75 Seu sexo é masculino (M) ou feminino (F)? A A entrada contém dados não reconhecidos 6 Questão 3 Uma feirante está vendendo frutas com a seguinte tabela de preços: Até 5 kg acima de 5 kg Morango R$ 2,50 por kg R$ 2,20 por kg Maçã R$ 1,80por kg R$ 1,50 por kg Implemente um programa para ler a quantidade (em Kg) de morangos e a quantidade (em Kg) de maçãs adquiridas, ambos números reais, e escrever o valor gasto com cada fruta e o valor a ser pago pelo cliente (com precisão de duas casas decimais). Se o cliente fornecer pelo menos uma das quantidades menor do que 0 (zero), a mensagem “Entrada inválida” deve ser exibida no terminal. Você deve implementar e utilizar duas funções: • validaEntradas: recebe como argumentos de entrada as quantidades de morango e maçã e retorna um valor booleano representando se as entradas são válidas (True) ou inválidas (False). • calculaCustos: recebe como argumentos de entrada as quantidades de morango e maçã, calcula e retorna os dois valores gastos (um para morango e outro para maçã). Exemplo 1: Quantidade de Morangos (em kg): 0 Quantidade de Maçãs (em kg): 10.5 O valor pago pelos morangos é R$ 0.00 O valor pago pelas maçãs é R$ 15.75 O valor total da sua compra é R$ 15.75 Exemplo 2: Quantidade de Morangos (em kg): 0 Quantidade de Maçãs (em kg): 0 O valor pago pelos morangos é R$ 0.00 O valor pago pelas maçãs é R$ 0.00 O valor total da sua compra é R$ 0.00 Exemplo 3: Quantidade de Morangos (em kg): 10 Quantidade de Maçãs (em kg): −1 Entrada inválida Exemplo 4: Quantidade de Morangos (em kg): 10.8 Quantidade de Maçãs (em kg): 5 O valor pago pelos morangos é R$ 23.76 O valor pago pelas maçãs é R$ 9.00 O valor total da sua compra é R$ 32.76 7 Questão 4 Implemente um programa para ler a quantidade de lados (q, inteiro) de um poĺıgono regular, e a medida do lado (L, real), classificar o poĺıgono, calcular e imprimir o valor da área (A, com duas casas decimais), conforme as descrições a seguir: • q < 3, “Não é um poĺıgono”; • q igual a 3, “triângulo” com área: A = L 2× √ 3 4 ; • q igual a 4, “quadrado” com área: A = L2; • q igual a 5, “pentágono” com área: A = 5×L 2 4×tan(0,6283) ; • q igual a 6, “hexágono” com área: A = 3×L 2× √ 3 2 ; • q > 6, “Poĺıgono não identificado”. Veja os exemplos de execução a seguir, observe que a medida do lado é solicitada apenas quando o poĺıgono é válido, ou seja, primeiro é necessário avaliar a quantidade de lados e: (a) imprimir uma das mensagens de entrada inválida; ou (b) solicitar a medida do lado e realizar o processamento. Você deve implementar e utilizar a função calculaArea, que recebe como argumentos de entrada a quantidade de lados e a medida dos lados, calcula e retorna o valor da área e o tipo de poĺıgono (“triângulo”, “quadrado”, “pentágono” ou “hexágono”). Exemplo 1: Digite a quantidade de lados: 2 Não é um polígono Exemplo 2: Digite a quantidade de lados: 7 Polígono não identificado Exemplo 3: Digite a quantidade de lados: 5 Digite a medida do lado: 8.3 O polígono é um pentágono com área: 118.53 Exemplo 4: Digite a quantidade de lados: 3 Digite a medida do lado: 30 O polígono é um triângulo com área: 389.71 Exemplo 5: Digite a quantidade de lados: 6 Digite a medida do lado: 10.5 O polígono é um hexágono com área: 286.44 8
Compartilhar