CSE 111: Programação com Funções

S02 - Atividade Guiada de Programação: Eficiência de Latas

Visão Geral

Para esta atividade, você irá programar enquanto assiste um vídeo do instrutor, que guiará cada passo da tarefa abaixo. Certifique-se de pausar o vídeo ou revisar partes dele, caso necessário, para concluir a atividade por completo.

Seu instrutor publicará um link para o vídeo no Microsoft Teams.

Contexto

Em muitos países, os alimentos são armazenados em latas de aço (ou, simplesmente, latas) que têm o formato de cilindros. Existem muitos tamanhos diferentes de latas. A eficiência de armazenamento de uma lata nos diz quanto ela armazena em comparação com a quantidade de aço necessária para fabricá-la. Alguns tamanhos de latas exigem muito aço para armazenar uma pequena quantidade de alimento. Outros tamanhos requerem menos aço e armazenam mais alimentos. Uma lata com alta eficiência de armazenamento é considerada mais sustentável para o meio ambiente do que uma lata com baixa eficiência de armazenamento.

A eficiência de armazenamento de uma lata é calculada dividindo o volume da lata pela área de sua superfície.

eficiencia_de_armazenamento =
volume
area_da_superficie

Em outras palavras, a eficiência de armazenamento de uma lata é o espaço dentro da lata (volume) dividido pela quantidade de aço necessária para fabricá-la (área da surperfície). As fórmulas do volume e da área da superfície de um cilindro são:

volume = π raio2 altura
area_da_superficie = 2π raio (raio + altura)

Programa

Escreva um programa em Python enquanto assiste seu instrutor, que calcule e exiba a eficiência de armazenamento para cada um dos 12 tamanhos de latas de aço a seguir. Em seguida, analise a saída e responda à pergunta: “Qual tamanho de lata tem a maior eficiência de armazenamento?”

Nome Raio
(centímetros)
Altura
(centímetros)
Custo por lata
(reais)
#1 Piquenique 6.83 10.16 R$0.28
#1 Grande 7.78 11.91 R$0.43
#2 8.73 11.59 R$0.45
#2.5 10.32 11.91 R$0.61
#3 Cilindro 10.79 17.78 R$0.86
#5 13.02 14.29 R$0.83
#6Z 5.40 8.89 R$0.22
#8Z pequena 6.83 7.62 R$0.26
#10 15.72 17.78 R$1.53
#211 6.83 12.38 R$0.34
#300 7.62 11.27 R$0.38
#303 8.10 11.11 R$0.42

Requisitos

  1. Seu programa deve calcular o volume de todos os 12 tamanhos de lata.
  2. Seu programa deve calcular a área de superfície de todos os 12 tamanhos de lata.
  3. Seu programa deve calcular e imprimir a eficiência de armazenamento de todos os 12 tamanhos de latas.

Desafios Adicionais

Abaixo está uma lista de desafios adicionais que você pode fazer. Seu instrutor lhe guiará por pelo menos um deles. Fique à vontade para realizar os demais.

  1. Adicione uma função chamada calcular_eficiencia_de_armazenamento. Essa função deve chamar as funções calcular_volume e calcular_area_da_superficie para calcular e retornar a eficiência de armazenamento de uma lata de aço. Substitua o código correspondente na função main por uma chamada a função calcular_eficiencia_de_armazenamento. Isso reduziu o número de linhas do seu programa?
  2. A tabela de tamanhos de latas também mostra o custo por lata. Crie a função calcular_eficiencia_de_custo, que calcula e retorna o volume da lata dividido pelo seu custo. Em seguida, chame essa função e exiba a eficiência de custo de cada tamanho. Depois, analise a saída e responda: Qual lata tem a maior eficiência de custo?
  3. Se você se lembra de listas e laços for do CSE 110, reescreva a função main usando listas para armazenar os nomes e dimensões das latas. Depois, percorra os valores com um for.
  4. Adicione instruções if dentro do loop para determinar automaticamente qual tamanho de lata tem a melhor eficiência de armazenamento e qual tamanho tem a melhor eficiência de custo.

Instruções

  1. Crie uma pasta para armazenar o programa da Atividade Guiada de Programação desta semana.
  2. Abra a pasta que você acabou de criar no VSCode.
  3. Crie um novo arquivo chamado tamanhos_latas.py.
  4. Encontre o vídeo que seu instrutor publicou para esta tarefa e crie o código junto com ele para concluir cada um dos requisitos. Analise os requisitos em ordem com o instrutor em vez de pular para etapas mais complicadas para garantir que você não perca nenhuma explicação.
Link de Vídeo Alternativo

Além do link que seu instrutor publicou, você também pode assistir ao seguinte passo a passo do código:

Recursos Adicionais

Você pode usar esses recursos adicionais para se aprofundar nos estudos.

Documentação Útil
Procedimento de Teste

Verifique se seu programa funciona corretamente seguindo cada etapa deste procedimento de teste:

  1. Execute seu programa e verifique se ele exibe os resultados corretos, arredondados e formatados, conforme mostrado abaixo.
    > python tamanhos_latas.py
    #1 Piquenique 2.04
    #1 Grande 2.35
    #2 2.49
    #2.5 2.76
    #3 Cilindro 3.36
    #5 3.41
    #6Z 1.68
    #8Z pequena 1.80
    #10 4.17
    #211 2.20
    #300 2.27
    #303 2.34
Gráficos de Chamadas

O gráfico de chamadas a seguir mostra as chamadas e retornos de função no exemplo de solução para esta tarefa. Neste gráfico de chamadas, vemos as seguintes chamadas de função:

  1. O computador começa a executar o programa de exemplo chamando a função main.
  2. Durante a execução da função main, o computador chama as funções calcular_volume, calcular_area_da_superficie e print.
Gráfico de chamadas de função para esta tarefa

O próximo gráfico de chamadas mostra as chamadas de função e os retornos no exemplo de solução para os desafios adicionais desta tarefa. Neste gráfico de chamadas, vemos as seguintes chamadas de função:

  1. O computador começa a executar o programa adicional chamando a função main.
  2. Ao executar a função main, o computador chama a função calcular_eficiencia_de_armazenamento, que chama as funções calcular_area_da_superficie e calcular_volume.
  3. Enquanto ainda executa a função main, o computador chama a função calcular_eficiencia_de_custo, que chama a função calcular_volume.
  4. Por fim, enquanto ainda executa a função main, o computador chama a função print.
Um gráfico de chamadas de função para os desafios adicionais desta tarefa

Envio

Por favor, pause e assista novamente a quaisquer partes do vídeo do instrutor necessárias até que você tenha concluído toda a atividade e seu programa funcione da mesma forma que o do instrutor. Quando tiver terminado:

Links Úteis: