Cyber Monday

ATÉ 40% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Dessafio Automatizando tarefas

Tentei fazer da mesma forma que o professor ensinou, mas tô com dúvida de como estruturar. Coloquei horario_evento(), mas os parênteses ficaram vazios e sinto que deveria colocar horario_evento(horario_inicio, horario_fim). Tentei abstrair como horario(inicio, fim), mas acabei me perdendo, então coloquei os underlines. Se alguém puder me dar uma dica de estruturação, seria legal.

inicio

    // pega dados de entrada

    evento_inicio = horario_evento()
    evento_fim    = horario_evento()
    lista_de_usuario = obter_dados_usuario()

    // pecorre usuarios

    para cada usuario em lista_de_usuario faça:
        usuario_inicio = horario_usuario(usuario)
        usuario_fim    = horario_usuario(usuario)

        // Verifica presença
        se usuario_inicio >= evento_inicio e usuario_fim >= evento_fim então:
            // enviar Mensagem
            enviar(Mensagem)
fim
1 resposta

Olá tudo bem?
A estrutura do seu código está boa mas precisa de alguns ajustes .
A lógica sugere que o evento tem um horário de início e de término.
No entanto, você está atribuindo o mesmo valor (horario_evento()) tanto para o evento_inicio quanto para o evento_fim, o que não parece correto.
O nome da função horario_evento() sugere que ela pega o horário de um único evento.
No entanto, ao que parece, você precisa de dois horários distintos: início e fim do evento.
Talvez você precise de duas funções separadas, ou apenas um ajuste no código.
Você está verificando se o usuario_inicio é maior ou igual ao evento_inicio e o usuario_fim maior ou igual ao evento_fim.
Isso pode estar incorreto dependendo da lógica desejada.
A lógica para verificar presença normalmente envolve comparar se o período do usuário se sobrepõe ao evento.
O que é exatamente "Mensagem"? Deveria ser um texto ou algo mais específico?
Isso pode ser melhorado para refletir o tipo de mensagem que será enviada.
Estrutura corrigida:

inicio

    // Pega dados de entrada
    evento_inicio = horario_evento_inicio()
    evento_fim    = horario_evento_fim()
    lista_de_usuario = obter_dados_usuario()

    // Percorre usuários
    para cada usuario em lista_de_usuario faça:
        usuario_inicio = horario_usuario_inicio(usuario)
        usuario_fim    = horario_usuario_fim(usuario)

        // Verifica presença
        se (usuario_inicio <= evento_fim) e (usuario_fim >= evento_inicio) então:
            // Enviar Mensagem
            mensagem = "Você está presente no evento!"
            enviar(mensagem)
        fim_se
    fim_para

fim

Explicações das mudanças:

  • Agora, estou utilizando duas funções distintas - horario_evento_inicio() e horario_evento_fim(), para capturar os horários de início e fim do evento separadamente. O mesmo foi feito para o usuário, com funções como horario_usuario_inicio() e horario_usuario_fim().
  • A condição foi ajustada para verificar a sobreposição entre os horários do usuário e do evento. O evento será considerado "presente" para o usuário se o início do evento for antes do fim do usuário, e o fim do evento for depois do início do usuário. Ou seja, há uma sobreposição nos horários.
  • A variável "Mensagem" foi substituída por uma string concreta, "Você está presente no evento!", mas você pode personalizar a mensagem como desejar.

Confere ai e me avise.
Qualquer duvida só chamar.
Bons estudos.