EP1: Quando as vendas são realmente efetuadas

EP1: Quando as vendas são realmente efetuadas

por Luciano Ramalho -
Número de respostas: 4
O Victor Harada já colocou esta questão em outro tópico, e o Rodrigo Flores já respondeu, mas acho que vale a pena aprofundar a análise. A resposta do Rodrigo foi: "Pelo enunciado, ela só efetua a venda se tiver troco. A venda então só é concretizada quando o usuário aperta o troco."

Agora, veja estas linhas da Figura 2 do enunciado:

[a] venda de Toblerini (preço: 320, saldo do usuario: 180)
[b] venda de Mineralba (preço: 120, saldo do usuario: 60)

A pegadinha é que as linhas [a] e [b] não podem ser exibidas imediatamente após as entradas correspondentes (-3 para Toblerini, -2 para Mineralba). No momento do pedido de Toblerini, a máquina não consegue garantir o troco (não há moedas de 10 ou 5 em quantidade suficiente para completar 180). Mas quando o usuário pede a Mineralba, o troco devido cai para 60, e então as vendas podem ser feitas. Ou seja, as linhas [a] e [b] só podem ser geradas depois que o usuário digita -5.

Se a verificação do troco disponível fosse realizada no momento da entrada do pedido, a venda de Toblerini não poderia ser feita pois naquele momento não seria possível dar 180 de troco.

Outro exemplo:

[c] venda de Xiritos (preço: 240) nao efetuada por falta de troco

Neste caso a máquina poderia até determinar imediatamente que não tem troco (o saldo é 10, mas não há mais moedas de 10 ou 5 no caixa, e nenhum produto com preço igual ou menor que 10). Porém, para que o comportamento seja consistente com o caso [a], a mensagem [c] não será exibida quando o usuário digitar -4 (Xiritos), mas somente quando ele entrar -5 (troco).

Resumindo, o usuário não recebe nenhum feedback sobre as vendas antes de pedir o troco.

Rodrigo, está correto este entendimento?

--
Luciano
Em resposta à Luciano Ramalho

Re: EP1: Quando as vendas são realmente efetuadas

por Rodrigo Luiz Marques Flores -
Está correto sim.
O programa deve receber tudo que o usuário quer, e aí quando o usuário pede o troco ele avalia se a venda pode ou não pode ser feita. Ele pode até imprimir o pedido do usuário e os saldos parciais, mas aí seria bom se imprimisse algo quando a venda não pudesse ser concretizada.
Em resposta à Luciano Ramalho

Re: EP1: Quando as vendas são realmente efetuadas

por Francisco Reverbel -
A "pegadinha" que o Luciano mencionou não foi proposital, foi erro no enunciado mesmo! A minha intenção era que houvesse troco suficiente para a venda de Toblerini (linha [a] da mensagem do Luciano) ser efetuada imediatamente, mas eu acabei me esquecendo de acertar as quantidades iniciais de moedas para que isso pudesse acontecer. Bastaria aumentar de 0 para 1 a quantidade inicial de moedas de 5 centavos. (Se a máquina possuísse uma moeda de 5 centavos então ela poderia completar os 180 centavos e garantir o troco para a venda do Toblerini.)

Vou fazer a correçao no enunciado. Desculpem a confusão.
 
Reverbel
Em resposta à Francisco Reverbel

Re: EP1: Quando as vendas são realmente efetuadas

por Luciano Ramalho -
Legal, professor Reverbel e Rodrigo.

Grato pela atenção.

--
Luciano