Nesta tarefa, utilizaremos o tipo float para resolver um problema tradicional dos cursos introdutórios de
Física. Duas estações de trem A e B estão separadas por um distância distAB medida ao longo da trajetória. Pela estação A passa um trem TremA no sentido de A para B e simultaneamente passa por B um trem TremB no sentido de B para A. Os trens TremA e TremB têm movimentos uniformes com velocidades vA e vB medidas em km/h e apresentando valores absolutos maiores do que zero. Você deverá determinar:
o instante do encontro dos trens, medido em minutos, considerando como origem dos tempos o instante em que, simultaneamente, o TremA passa pela estação A e o TremB passa pela estação B.
o espaço, medido em quilômetros, da parte dianteira dos trens no instante do encontro, adotando a estação A como origem dos espaços.
_-====-__-======-__-========-__
_( )_
OO( Oh, não!!! )
0 (_ Lá vem o TremA de novo!!! _)
o0 (_ )
o '=-___-===-___-========-__-=='
.o
______ . . ______ ______________
_________ ||__||_()_ _()_||__|| ________ | |
| | | ) ( | | | | |
"OO--OO"=""OO----OO-\ /-OO----OO""="OO--OO"="OO--------OO"
##########################################################################################
|----------distAB----------|
A B
floatOperações básicas Antes de escrever seu programa, vamos fazer alguns testes com a Python shell. Abra um terminal e o programa python3:
$ python3
Python 3.7.3
Type "help", "copyright", "credits" or "license" for more information.
>>>
Atribua números reais para algumas variáveis e escreva algumas operações. Veja os exemplos:
>>> velocidade_km_por_hora = 100.00
>>> velocidade_km_por_min = velocidade_km_por_hora / 60.00
>>> print(velocidade_km_por_min)
1.6666666666666667
Formatação Note que o valor foi exibido com 16 casas decimais. Podemos alterar o número de casas na saída utilizando o comando format():
>>> format(velocidade_km_por_min, '.2f')
>>> '1.67'
>>> print("v =", format(velocidade_km_por_min, '.2f'), 'km/min')
v = 1.67 km/min
Abaixo temos duas outras maneiras de se obter esta saída. Para entender melhor o funcionamento destes comandos leia a página Formatação em Python.
>>> "{:.2f}".format(velocidade_km_por_min)
'1.67'
>>> "%.2f" % velocidade_km_por_min # estilo antigo - pode não funcionar nas próximas versões de Python
'1.67'
Limitações A exibição de um maior número de casas pode revelar resultados surpreendentes. Observe os valores 0.1 e 0.5 com 30 casas decimais:
>> format(0.1, '.30f')
'0.100000000000000005551115123126'
>>> format(0.5, '.30f')
'0.500000000000000000000000000000'
Para entender a razão destes resultados, veja a seção 15. Floating Point Arithmetic: Issues and Limitations da documentação de Python 3.7.
A entrada do seu programa será composta por três linhas. A primeira conterá um float representando a distância distAB entre as duas estações, medida em quilômetros. A segunda e terceira linhas conterão, respectivamente, a velocidade em valor absoluto do TremA e a do TremB, em quilômetros por hora. Veja um exemplo:
75.00
50.00
25.00
Dica: você poderá ler estes valores com os comandos
dist_AB = float(input())
v_A = float(input())
v_B = float(input())
A saída deverá apresentar na sequência os seguintes valores em reais:
Para o exemplo acima, a saída será:
60.00 min
50.00 km
No SuSy, para cada tarefa, criamos um conjunto de testes com arquivos de entrada arq<i>.in e para cada um deles
temos uma saída esperada arq<i>.res. Para esta tarefa, os testes abertos serão os listados na tabela
abaixo. Haverá também um teste fechado.
| Entrada | Saída | ||
|---|---|---|---|
| arq1.in | 30.00 |
15.00 min |
arq1.res |
| arq2.in | 100.00 |
50.00 min |
arq2.res |
| arq3.in | 90.00 |
40.00 min |
arq3.res |
| arq4.in | 37.50 |
21.43 min |
arq4.res |
Leia instruções para fazer os testes em Testes com o SuSy.
Veja aqui a página de submissão da tarefa. O arquivo a ser submetido deve se chamar lab02.py. No link Arquivos auxiliares há um arquivo aux02.zip que contém todos os arquivos de testes abertos e seus respectivos resultados compactados.
Utilize o sistema SuSy com o mesmo login e senha que você utiliza para fazer acesso ao sistema da DAC. Se você não estiver inscrito corretamente, envie email para
.
O limite máximo será de 15 submissões. Serão considerados os resultados da última submissão.
O peso desta tarefa é 1.
O prazo final para submissão é 01/09/2019.