0 | ||||
7 | 8 | 9 | + | |
4 | 5 | 6 | ||
int | 1 | 2 | 3 | = |
float | 0 | . |
Nesta tarefa, vamos estudar comandos básicos de entrada e
saída, comandos condicionais simples e
manipulação de objetos do tipo int
e float
.
int
Objetos do tipo int
armazenam valores
inteiros. Observe os comandos abaixo, que podem ser testados na Python
Shell.
$ python3
>>> i0 = -9
>>> type(i0)
<class 'int'>
>>> i1 = 3
>>> type(i1)
<class 'int'>
>>> print(i0 + i1)
-6
>>> type(i0 + i1)
<class 'int'>
>>>
float
Objetos tipo float
armazenam valores reais. Veja estes
outros exemplos:
$ python3
>>> f0 = -9.54
>>> type(f0)
<class 'float'>
>>> f1 = 3.0
>>> type(f1)
<class 'float'>
>>> type (f0 + f1)
<class 'float'>
>>> print(f0 + f1)
-6.539999999999999
O resultado f0 + f1
pode parecer surpreendente. Se
você quiser saber mais sobre armazenamento e aritmética
de ponto flutuante, veja a
seção 15. Floating
Point Arithmetic: Issues and Limitations da
documentação sobre Python 3, mas você não
precisa entender as limitações do armazenamento de
números reais para realizar esta tarefa.
Podemos controlar a exibição do número de
casas decimais utilizando a função de
formatação
format
. No exemplo abaixo, a string ".2f"
indica que o resultado de -9.54 + 3.0
será
exibido com duas casas decimais.
$ python3
>>> print(format(-9.54 + 3.0, ".2f"))
-6.54
>>>
int
e float
Podemos fazer operações combinando os dois tipos. Veja os exemplos:
$ python3
>>> type(3 + 4.0)
<class 'float'>
>>> type(3.0 + 4)
<class 'float'>
>>>
A tabela a seguir resume as combinações possíveis.
Operando 1 | Operador | Operando 2 | Resultado |
---|---|---|---|
int |
+ |
int |
int |
int |
+ |
float |
float |
float |
+ |
int |
float |
float |
+ |
float |
float |
Você deverá implementar um programa em Python que soma
dois números. Cada número virá precedido de uma
letra i
ou f
indicando se este é
um int
ou float
, como esquematizado a
seguir:
<tipo_operando_1>
<valor_operando_1>
<tipo_operando_2>
<valor_operando_2>
Conforme o tipos dos operandos, o resultado será
um float
formatado com exatamente duas casas
decimais ou um int
.
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 serão os seguintes:
Entrada | Resultado | ||
---|---|---|---|
arq1.in |
i |
8 |
arq1.res |
arq2.in |
i |
6.57 |
arq2.res |
arq3.in |
f |
9.58 |
arq3.res |
arq4.in |
f |
8.68 |
arq4.res |
Dado um dos arquivos arq<i>.in
, você pode
utilizá-lo como entrada na linha de comando da seguinte
forma:
$ python3 main.py < arq1.in
8
Você pode redirecionar a saída para um
arquivo arq<i>.out
da seguinte maneira:
$ python3 main.py < arq1.in > arq1.out
O SuSy, por padrão, compara a saída do seu programa
com o arquivo arq<i>.res
utilizando o
comando diff
:
Uma saída vazia indicará que o programa executou
corretamente no seu computador. Caso contrário, observe as
diferenças apontadas e depure seu programa.
$ diff arq1.out arq1.res
tipo = input()
obj_int = int(input())
obj_float = float(input())
float
com duas casas
decimais utilize:
print(format(obj_float,".2f"))
Veja aqui
a página de submissão da tarefa. Lembre-se que o
arquivo a ser submetido deve se chamar main.py. No
link Arquivos
auxiliares há um arquivo arqs.zip
que
contém todos os arquivos testes e resultados compactados.
Todos os alunos matriculados até 9 de março estão inscritos. Se você entrou depois e/ou não estiver cadastrado corretamente, envie email para .
Observe o limite máximo de 10 submissões e que cada teste correto vale 25% da nota desta tarefa.
O peso desta tarefa é 2.
O prazo final para submissão é 25/03/2018.