Escreva uma função chamada estacionamento que recebe como parâmetros a hora e minuto de entrada, e hora e minuto de saída de um estacionamento e retorna o valor total devido de acordo com as seguintes regras:
Quantidade de Horas Tarifa
Até duas horas para cada hora
Entre três e quatro horas para cada hora
Acima de quatro horas para cada hora
0 número de horas a pagar é sempre inteiro e arredondado por excesso. Por exemplo, quem estacionar por 1 minuto pagará por 1 hora. Quem estacionar durante 61 minutos pagará por 2 horas. Perceba que os momentos de entrada e saída do estacionamento são apresentados na forma de pares de inteiros, representando horas e minutos. Por exemplo, o par representará
Observação 1: O nome da função deve ser exatamente como especificado acima e seu arquivo deve obrigatoriamente se chamar problema3.py.
Observação 2: Seu programa deve conter apenas a função descrita acima. Você não precisa realizar a entrada e saída de dados (não precisa usar as funções input() e print()).

Passo 1

Então, vamos lá! O que a gente precisa fazer aqui é criar uma função chamada estacionamento que vai calcular quanto alguém tem que pagar ao estacionar o carro. Para isso, vamos receber as horas e minutos de entrada e saída do estacionamento. Vamos precisar calcular o tempo total que o carro ficou estacionado e, com base nesse tempo, aplicar a tarifa correta conforme as regras fornecidas. Vamos usar operações matemáticas básicas e estruturas condicionais para isso.

Passo 2

Primeiro, precisamos calcular o tempo total que o carro ficou estacionado. Para facilitar, vamos converter tudo para minutos. A gente faz isso multiplicando as horas por 60 e somando os minutos. Por exemplo, se a entrada foi às 12:50 e a saída às 14:10, a gente converte para minutos:
íí

Passo 3

Depois de ter o total de minutos, a gente precisa converter isso para horas inteiras. Mas atenção: sempre que tiver um minuto extra, a gente arredonda para cima. Isso significa que se a pessoa estacionou por 61 minutos, ela paga por 2 horas. A gente pode usar a função de teto (ceil) para isso:
Como não estamos usando bibliotecas, podemos fazer isso de uma forma simples: se houver algum resto na divisão, adicionamos 1 à parte inteira.

Passo 4

Agora que temos o total de horas, vamos determinar qual tarifa se aplica. As regras são:
  • Até 2 horas: R$ 1,00 por hora
  • Entre 3 e 4 horas: R$ 1,40 por hora
  • Acima de 4 horas: R$ 2,00 por hora
Então, vamos usar estruturas condicionais para verificar em qual faixa o tempo se encaixa.

Passo 5

Com a tarifa certa identificada, basta multiplicar o total de horas pelo valor correspondente para obter o valor total a pagar:

Passo 6

Por fim, vamos retornar o valor total calculado pela função.

Resposta

Aqui está a função completa seguindo os passos acima:
import math

def estacionamento(hora_ent, min_ent, hora_sai, min_sai):
    # Calcula o total de minutos da entrada e saída
    total_minutos_entrada = hora_ent * 60 + min_ent
    total_minutos_saida = hora_sai * 60 + min_sai
    
    # Calcula a diferença em minutos
    diferenca_minutos = total_minutos_saida - total_minutos_entrada
    
    # Converte para horas, arredondando para cima
    total_horas = math.ceil(diferenca_minutos / 60)
    
    # Determina a tarifa por hora
    if total_horas <= 2:
        tarifa = 1.00
    elif 3 <= total_horas <= 4:
        tarifa = 1.40
    else:
        tarifa = 2.00
    
    # Calcula o valor total
    valor_total = total_horas * tarifa
    
    return valor_total

Exercícios relacionados

Instancie uma variável homogênea unidimensional inteira em linguagem C.(2.0)
Qual estrutura de repetição na linguagem é a mais recomendada para valores contáveis com limite definido? Justifique (2.0)