Departamento de Ciência da Computação - IME - USP

MAC110 - Introdução à Computação

BMAC - Primeiro Semestre de 2024

Primeiro Exercício Programa      Entrega: até 6 de abril de 2024 às 23h55m00s

 

Calculando o desempenho na corrida de rua

  "Run, Forrest! Run!"
Jenny Curran, no filme Forrest Gump

 


Objetivos

O objetivo do primeiro exercício-programa consiste em familiarizar os alunos com manipulação de números inteiros, operadores matemáticos, lógicos e laços. Note que para resolver esse exercício você só poderá utilizar o conteúdo visto em sala de aula.

Introdução

As corridas de rua têm atraído muitas e muitos praticantes nos últimos anos (em particular, o campus da USP na capital é um local muito utilizado para as pessoas treinarem e participarem de provas).

Foto da Volta da USP de 2022

Corredoras e corredores costumam utilizar smartphones ou relógios para monitorarem seus treinos e suas provas. Esses dispositivos utilizam sistemas de navegação por satélite, como o GPS (Global Positioning System), para armazenar a posição da pessoa a cada instante de tempo. A depender das funcionalidades do dispositivo, ele também consegue armazenar o batimento cardíaco em bpm (batimentos por minuto). O batimento cardíaco máximo de uma pessoa durante uma corrida pode ser usado para calcular o que se chama de idade de aptidão física, uma informação útil para a pessoa ter noção do seu condicionamento físico.

As empresas que promovem corridas de rua costumam ordenar atletas na largada com base nas velocidades de cada um. O objetivo dessa ordenação é manter as pessoas que correm em velocidades similares, próximas entre si, evitando acidentes e tornando a prova mais justa (alguém que corre muito rápido e que comece a prova atrás de todos na largada teria que ultrapassar muito mais pessoas do que alguém que corre muito rápido e que comece a prova na frente de todos na largada). Essas ordenações de atletas são chamadas de pelotões.

Tarefa

Neste EP, a sua tarefa será receber dados de um GPS fictício (vamos chamar o dispositivo usado pela pessoa só de GPS mesmo) e retornar a idade de aptidão física da pessoa, o pelotão onde ela largaria em uma prova e uma informação sobre se ela terá desconto no pagamento da inscrição nessa prova.

Vamos considerar que a idade de aptidão física é calculada como:

220 - batimento cardíaco máximo

Por exemplo, se o batimento cardíaco máximo medido no GPS for 185 bpm, então a idade de aptidão física da pessoa é 35 anos. Se for 200 bpm, a idade de aptidão física da pessoa é 20 anos.

Os pelotões são definidos como:

  • QUENIA: Se a velocidade média for ≥ 4m/s
  • AZUL: Se a velocidade média for < 4m/s e ≥ 2m/s
  • BRANCO: Se a velocidade média for < 2m/s

Além disso, considere que a empresa que está organizando a corrida dará um desconto no valor da inscrição para algumas pessoas e contratou você para definir uma regra para sortear quais dessas pessoas serão as sortudas. Você decidiu que esse sorteio na verdade não será bem um sorteio, mas sim uma escolha com base no batimento cardíaco máximo. No caso, as pessoas agraciadas com o desconto serão aquelas cujo batimento cardíaco máximo seja um número abundante. Um número é abundante caso a soma dos seus divisores próprios seja maior do que o número. Por exemplo, 12 é um número abundante pois a soma dos seus divisores próprios (1+2+3+4+6) é 16, que é maior que 12. Como não existem tantos números abundantes assim, a pessoa vai acreditar que foi sorte mesmo.

Entrada e saída e cálculo da velocidade média

Considere que o GPS informa um único número natural a cada segundo que precisa ser "descascado" para obter as informações de posição e de batimento cardíaco de uma pessoa em um dado instante. O número conterá sempre 5 dígitos, sendo que os dois primeiros dizem respeito à posição em uma linha reta (Será sempre um valor maior ou igual a 10 e menor que 99) e os três últimos dizem respeito ao batimento cardíaco. Por exemplo:

10070

significa que a pessoa esteve na posição 10 metros com batimento cardíaco igual a 70 bpm.

40090

significa que a pessoa esteve na posição 40 metros com batimento cardíaco igual a 90 bpm.

90110

significa que a pessoa esteve na posição 90 metros com batimento cardíaco igual a 110 bpm.

Considere também que os cálculos para encontrar a velocidade média devem ser feitos usando números inteiros. Ou seja, calcule a média usando o operador // de divisão inteira para determinar o pelotão correto do(a) atleta.

Seu programa deve ler do teclado várias linhas com as informações do GPS e uma última linha contendo 000. Cada linha representa a medição feita pelo GPS com um intervalo de 1 segundo. Seguem alguns exemplos de entradas possíveis:

14180
18182
22185
27188
25189
40188
43188
45189
49190
50190
000

40150
42151
45156
46151
48152
000

Considere que serão informadas sempre, no mínimo, 5 linhas, além da linha final 000.

Note que para calcular a velocidade média será necessário saber a distância total percorrida pela pessoa e o tempo total, calculados a partir dos dados fornecidos pelo GPS.

Importante: Você não precisa se preocupar com situações em que o usuário não digite os valores esperados. A correção do EP não levará em conta essas situações. Portanto, se o seu programa explodir caso o usuário passe por exemplo apenas 1 linha antes da linha 000 ou números negativos como entrada, não tem problema.

 

Exemplos de execução do programa

    Nos exemplos, tudo que aparece em vermelho e negrito foi digitado pelo usuário. O resto foi impresso na tela pelo programa.

Exemplo 1

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
40150
42151
45156
46151
48152
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica eh: 64
seu pelotao eh o AZUL
parabens! voce terah desconto na inscricao da prova! \o/\o/\o/

Exemplo 2

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
14180
18182
22185
27188
25189
40188
43188
45189
49190
50190
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica eh: 30
seu pelotao eh o QUENIA

Exemplo 3

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
20170
21170
24171
27172
30172
34175
38180
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica eh: 40
seu pelotao eh o AZUL
parabens! voce terah desconto na inscricao da prova! \o/\o/\o/

Exemplo 4

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
90118
91118
92119
93119
94122
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica eh: 98
seu pelotao eh o BRANCO

Exemplo 5

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
20096
21099
22101
23102
24105
24107
26108
27109
28110
29112
30114
31114
32114
33114
34114
35114
36113
37110
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica eh: 106
seu pelotao eh o BRANCO
parabens! voce terah desconto na inscricao da prova! \o/\o/\o/

Obs.: Caso a idade de aptidão física da pessoa seja menor do que 10, o seu programa deve imprimir, ao invés da idade, a informação de que ela não pode ser calculada, como no exemplo abaixo:

Exemplo 6

   

digite (ou copie e cole) os dados do seu gps linha por linha e termine com a linha 000:
14213
18213
22214
27215
25216
40215
43215
45216
49217
50217
000
##### seguem as suas estatisticas #####
sua idade de aptidao fisica nao pode ser calculada
seu pelotao eh o QUENIA

Atenção: imprima os textos informativos ao usuário exatamente da mesma forma que apresentado nos exemplos de execução acima. Não remova nenhuma palavra, nenhum espaço e nenhuma pontuação, não adicione acentos ou textos a mais e não mude letras maiúsculas para minúsculas ou vice-versa, pois qualquer uma dessas mudanças atrapalha o avaliador automático.

 

Entrega do EP

A entrega deverá ser feita pelo eDisciplinas através do VPL. Se você desenvolver o EP em um programa externo, como o IDLE, é só copiar e colar o texto no editor do VPL. Verifique se seu programa roda corretamente nesse ambiente! Você pode enviar o EP quantas vezes quiser; a última versão submetida é a que vai valer para a nota.

Lembre-se que a nota que o corretor automático atribui é apenas para orientar seu trabalho; a nota de fato vai ser dada por humanos (a monitora e o professor).

Não serão aceitos EPs atrasados. Para prevenir imprevistos como queda de energia, problemas com o sistema, problemas com a sua conexão com a internet etc., sugerimos que a entrega dos exercícios seja feita pelo menos um dia antes do prazo determinado.

Note que para resolver esse exercício você só poderá utilizar o conteúdo visto em sala de aula (ou seja, você não deve usar módulos adicionais do python, listas, laços for, classes etc.).

O seu código deve ser claro, enxuto, bem organizado e os nomes das variáveis devem revelar a sua intenção, i.e., o significado do valor que elas guardam.

O seu programa não precisa verificar se os dados de entrada correspondem ao esperado. Isso significa que se, por exemplo, o seu programa pede um número entre 0 e 5 e o usuário digita um número negativo, uma letra, um cifrão, uma arroba etc. o seu programa pode travar o computador ou gerar um erro em tempo de execução sem ficar envergonhado.

Sinta-se à vontade para postar dúvidas no fórum de discussão da disciplina mas, para evitar plágios, não envie trechos de código para o fórum. Mensagens desse tipo serão removidas e haverá penalidade para o autor.

Última atualização: domingo, 24 mar. 2024, 11:49