• Nenhum resultado encontrado

AD2: Desconto Racional por Dentro

N/A
N/A
Protected

Academic year: 2021

Share "AD2: Desconto Racional por Dentro"

Copied!
10
0
0

Texto

(1)

Funda¸

ao CECIERJ - Vice Presidˆ

encia de Educa¸

ao Superior a Distˆ

ancia

Curso de Tecnologia em Sistemas de Computa¸

ao

Disciplina: Programa¸

ao com Interfaces Gr´

aficas

AD2 2

o

semestre de 2021.

Professores: Mario Benevides e Paulo Roma

AD2: Desconto Racional por Dentro

1

Objetivo

O objetivo da AD2 ´

e complementar as tarefas que ficaram faltando na AD1:

• O projeto proposto na AD1 ´e extremamente pr´

atico e atual. Ele versa sobre juros

compostos e diversos bancos oferecem algo similar, via uma interface gr´

afica acessada

com a utiliza¸c˜

ao de um navegador qualquer. Por exemplo, considere-se a calculadora do

cidad˜

ao do Banco Central do Brasil

1

. Embora ela tenha sido implementada pelo BC,

ela ´

e mal projetada, visualmente feia, e se algu´

em tentar preencher valores da tabela,

provavelmente obter´

a um erro dizendo algo como: ”• Informe 3 valores e pressione o

bot˜

ao ’Calcular’ para obter o 4

o

•”, conforme pode ser visto na Figura 1.

Nesse caso, restam trˆ

es op¸c˜

oes:

– tentar adivinhar como o programa funciona, ou

– procurar uma alternativa diferente de alguma outra institui¸c˜

ao financeira, ou

– implementar a sua pr´

opria calculadora.

Portanto, como nosso curso ´

e sobre interfaces gr´

aficas, vamos analisar trˆ

es maneiras

diferentes de implementar uma interface funcional para o problema em quest˜

ao.

1: Uma interface textual exibida diretamente numa janela do seu terminal.

2: Utilizando componentes de interface apropriados.

1

https://www3.bcb.gov.br/CALCIDADAO/publico/exibirFormFinanciamentoPrestacoesFixas.do?

(2)

Figura 1: Calculadora do Cidad˜

ao.

– Normalmente, usu´

arios n˜

ao est˜

ao acostumados a usar terminais que executam um

shell qualquer, como bash ou tcsh.

– Portanto, ´

e mais indicado criar a calculadora usando componentes de interface

adequados fornecidos pelo tkinter

2

. N˜

ao existe uma forma fixa. Tente ser criativo

e implemente a interface mais apropriada.

3: Atrav´

es de uma interface gr´

afica implementada com HTML/CSS e que roda em um

navegador qualquer

3 4

.

Nessa AD2, vocˆ

e dever´

a implementar as duas primeiras op¸c˜

oes, apenas. A terceira op¸c˜

ao

foi abordada de alguma forma na AD1, mas se vocˆ

e quiser tentar escrever uma interface

HTML/CSS diferente da nossa, sinta-se `

a vontade...

2

https://docs.python.org/3/library/tkinter.html

3

http://orion.lcg.ufrj.br/python/html/cdc.html

4

(3)

2

Diretivas Gerais

Para ajud´

a-lo a implementar uma interface textual, fornecemos o c´

odigo b´

asico para manter

a intera¸c˜

ao com o usu´

ario.

(4)

r a i s e V a l u e E r r o r ( str ( msg ))

# o p t s is an o p t i o n l i s t of p a i r s [( o p t i o n 1 , a r g u m e n t 1 ) , ( o p t i o n 2 , a r g u m e n t 2 )] # a r g s is t h e l i s t of p r o g r a m a r g u m e n t s l e f t a f t e r t h e o p t i o n l i s t w a s s t r i p p e d # f o r i n s t a n c e , " m o v e . py - h - - h e l p 1 2" , s e t s o p t s a n d a r g s to :

# [( ’ - h ’ , ’ ’) , ( ’ - - h e l p ’ , ’ ’)] [ ’1 ’ , ’2 ’]

(5)

pv -= pmt # p r e ¸c o `a v i s t a m e n o s a e n t r a d a p r i n t ( " V a l o r f i n a n c i a d o = %.2 f - %.2 f = %.2 f " % ( pv + pmt , pmt , pv )) p r i n t ( " C o e f i c i e n t e de F i n a n c i a m e n t o : % f " % cf ) p r i n t ( " P r e s t a ¸c ~a o : $ %.2 f " % pmt ) # T a b e l a P r i c e if d e b u g : p r i n t T a b l e ( p r i c e T a b l e ( np , pv , t , pmt )) if _ _ n a m e _ _ == " _ _ m a i n _ _ " : sys . e x i t ( m a i n ())

odigo 1: 02f rational.py

O c´

odigo 1 permite executar a calculadora no modo texto, sem o uso de qualquer tipo de

inter-face gr´

afica, como pode ser visto abaixo, no c´

odigo 2, em substitui¸c˜

ao a interface HTML/CSS

da Figura 2.

(6)
(7)

Desta forma, ´

e mais f´

acil criar testes espec´ıficos para cada m´

etodo. Abaixo, est´

a impressa

a sa´ıda da utiliza¸c˜

ao da interface textual, na simula¸c˜

ao real de um empr´

estimo do Banco do

Brasil contra´ıdo em 2019, com 96 parcelas mensais e taxa de 4.98% ao mˆ

es. Um claro exemplo

de agiotagem expl´ıcita: 383% em oito anos.

r o m a : $ _ 0 2 f _ r a t i o n a l . py - - p a r c e l a s =96 - - t a x a = 4 . 5 5 - - v a l o r V = 2 3 0 0 0 - - v a l o r P = 1 1 1 0 6 4 . 8 0 O pre ¸c o `a v i s t a ´e m e n o r ou i g u a l do que pre ¸c o t o t a l c o r r i g i d o . T a x a R e a l = 4 . 9 8 2 9 % , I t e r a ¸c ~o es = 3 , F a t o r = 0 . 2 2 5 7 Pre ¸c o `a v i s t a + j u r o s de 4 . 5 5 % ao m ^e s = $ 1 0 1 8 8 6 .36 Pre ¸c o a p r a z o - j u r o s de 4 . 5 5 % ao m ^e s = $ 2 5 0 7 1 .96 J u r o s E m b u t i d o s = ( $ 1 1 1 0 6 4 .80 - $ 2 3 0 0 0 . 0 0 ) / $ 2 3 0 0 0 .00 * 100 = 3 8 2 . 8 9 % D e s c o n t o = ( $ 1 1 1 0 6 4 .80 - $ 2 3 0 0 0 . 0 0 ) / $ 1 1 1 0 6 4 .80 * 100 = 7 9 . 2 9 % E x c e s s o = $ 2 5 0 7 1 .96 - $ 2 3 0 0 0 .00 = $ 2 0 7 1 .96 E x c e s s o = ( $ 1 1 1 0 6 4 .80 - $ 1 0 1 8 8 6 . 3 6 ) * 0 . 2 2 5 7 = $ 2 0 7 1 .96 P e r c e n t u a l p a g o a m a i s = 8 . 2 6 % C o e f i c i e n t e de F i n a n c i a m e n t o : 0 . 0 4 6 1 4 4 P r e s t a ¸c ~a o : $ 1 0 6 1 .32

Note - se que t a x a i n f o r m a d a foi m e n o r do que a t a x a r e a l .

Figura 4: Lavadora Brastemp.

Considere-se, agora, o exemplo da Figura 4:

pre¸co `

a vista = R$ 1889.10, e a

prazo = R$ 2099.00, quando parcelado em 12 vezes sem juros. Nesse caso, o juros real ´

e

de 1.66% ao mˆ

es (contra 0.12% da poupan¸ca), e n˜

ao zero, como sugerido. Por outro lado, o

(8)

U s a g e ./ _ 0 2 f _ r a t i o n a l . py - n [ n o ¯ p a r c e l a s ] - t [ t a x a ] - x [ v a l o r a p r a z o ] - y [ v a l o r `a v i s t a ] - e [ e n t r a d a ] - v [ m o d o v e r b o s o ] r o m a : $ _ 0 2 f _ r a t i o n a l . py - n12 - t0 - x 2 0 9 9 - y 1 8 8 9 .10 - v T a x a = 1 . 6 5 9 4 % - 7 i t e r a ¸c ~o es O pre ¸c o `a v i s t a ´e i g u a l ao pre ¸c o t o t a l c o r r i g i d o . T a x a R e a l = 1 . 6 5 9 4 % , I t e r a ¸c ~o es = 7 , F a t o r = 0 . 9 0 0 0 Pre ¸c o `a v i s t a + j u r o s de 1 . 6 6 % ao m ^e s = $ 2 0 9 9 .00 Pre ¸c o a p r a z o - j u r o s de 1 . 6 6 % ao m ^e s = $ 1 8 8 9 .10 J u r o s E m b u t i d o s = ( $ 2 0 9 9 .00 - $ 1 8 8 9 . 1 0 ) / $ 1 8 8 9 .10 * 100 = 1 1 . 1 1 % D e s c o n t o = ( $ 2 0 9 9 .00 - $ 1 8 8 9 . 1 0 ) / $ 2 0 9 9 .00 * 100 = 1 0 . 0 0 % E x c e s s o = $ 1 8 8 9 .10 - $ 1 8 8 9 .10 = $ - 0 . 0 0 E x c e s s o = ( $ 2 0 9 9 .00 - $ 2 0 9 9 . 0 0 ) * 0 . 9 0 0 0 = $ - 0 . 0 0 P e r c e n t u a l p a g o a m a i s = -0.00% C o e f i c i e n t e de F i n a n c i a m e n t o : 0 . 0 9 2 5 9 3 P r e s t a ¸c ~a o : $ 1 7 4 .92 T a b e l a P r i c e _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | M ^e s | P r e s t a ¸c ~a o | J u r o s | A m o r t i z a ¸c ~a o | S a l d o D e v e d o r | | _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | | 1 | 1 7 4 . 9 2 | 3 1 . 3 5 | 1 4 3 . 5 7 | 1 7 4 5 . 5 3 | | 2 | 1 7 4 . 9 2 | 2 8 . 9 6 | 1 4 5 . 9 5 | 1 5 9 9 . 5 8 | | 3 | 1 7 4 . 9 2 | 2 6 . 5 4 | 1 4 8 . 3 7 | 1 4 5 1 . 2 0 | | 4 | 1 7 4 . 9 2 | 2 4 . 0 8 | 1 5 0 . 8 4 | 1 3 0 0 . 3 7 | | 5 | 1 7 4 . 9 2 | 2 1 . 5 8 | 1 5 3 . 3 4 | 1 1 4 7 . 0 3 | | 6 | 1 7 4 . 9 2 | 1 9 . 0 3 | 1 5 5 . 8 8 | 9 9 1 . 1 5 | | 7 | 1 7 4 . 9 2 | 1 6 . 4 5 | 1 5 8 . 4 7 | 8 3 2 . 6 8 | | 8 | 1 7 4 . 9 2 | 1 3 . 8 2 | 1 6 1 . 1 0 | 6 7 1 . 5 8 | | 9 | 1 7 4 . 9 2 | 1 1 . 1 4 | 1 6 3 . 7 7 | 5 0 7 . 8 0 | | 10 | 1 7 4 . 9 2 | 8 . 4 3 | 1 6 6 . 4 9 | 3 4 1 . 3 1 | | 11 | 1 7 4 . 9 2 | 5 . 6 6 | 1 6 9 . 2 5 | 1 7 2 . 0 6 | | 12 | 1 7 4 . 9 2 | 2 . 8 6 | 1 7 2 . 0 6 | 0 . 0 0 | | _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | | T o t a l | 2 0 9 9 . 0 0 | 2 0 9 . 9 0 | 1 8 8 9 . 1 0 | 0 | | _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ _ _ _ _ _ |

odigo 2: Calculadora - sa´ıda modo texto.

Se vocˆ

e utilizou a API sugerida na AD1, o c´

odigo 1 rodar´

a sem modifica¸c˜

ao alguma. Caso,

contr´

ario, ser´

a necess´

ario adaptar as chamadas dos m´

etodos utilizados. De qualquer forma,

todo o seu c´

odigo dever´

a estar documentado de acordo com o Doxygen

5

e seguir as diretivas

do PEP8

6 7

.

5

https://www.doxygen.nl/index.html

6

https://realpython.com/python-pep8/

(9)

3

Tarefas complementares

1. ´

E comum que empresas de desenvolvimento de software obriguem que testes sejam

escritos, antes da implementa¸c˜

ao de cada m´

etodo. Nesta tarefa, usaremos o unittest

8

,

para escrever testes unit´

arios, que basicamente comparam os resultados dos c´

alculos,

ap´

os a execu¸c˜

ao de um m´

etodo.

2. Crie um arquivo calcTest.py (c´

odigo 3) com uma classe que utiliza o unittest

9

para

testar cada m´

etodo/fun¸c˜

ao da sua calculadora.

(10)

Referências

Documentos relacionados

resgatada com um prazo (n) de antecedência, haverá um abatimento no valor do juro, chamado desconto (D).. Após 7 meses de aplicação a taxa de juros foi elevada para 8% a.m.,

Assim, como sugerem os autores Machado e Mól (2008), os professores devem estar sempre articulados e planejados com suas atividades experimentais, levando em suas aulas o uso de

Assim como para o modelo de tanques em série, o ajustamento dos dados experimentais da DTR, em presença de chama de combustão, pelo modelo de dispersão axial apresentou

Embalagem individual com dados de identificação do produto, procedência, marca do fabricante, data de fabricação e Registro do Ministério da

Para determinar o valor total médio de exposições duma planificação de um media são necessárias duas coisas: o valor cumulativo da audiência para cada veículo de media

A educação ambiental, nas suas diversas possibilidades, abre um estimulante espaço para um repensar de práticas sociais e do papel dos professores como mediadores e como

De acordo com os resultados das análises procedidas para a validação do modelo computacional, foi possível concluir que o mesmo pode ser aplicado para simular

De uns anos para cá, tem-se percebido um novo elemento no marketing (estratégia empresarial de otimização de lucros por meio da adequação da produção e