Olá a todos! Sou iniciante em programação e estou inventando alguns exercícios pra praticar.
Estou no momento bem básico da coisa, aprendendo a usar o HTML em conjunto com o PHP de forma dinânica.
Escolhi um tema para um exercício (Harry Potter) e fiz um site de teste que é uma mini loja de produtos relacionados ao HP.
Parte do motivo pra escolher HP foi que as moedas no mundo fictício do livro tem uma conversão de valores bem esdrúxula, o que tornou o exercício um pouco mais matematicamente interessante:
- A menor moeda é um "knut";
- 29 knuts formam um sickle;
- 17 sickles (ou 493 knuts) formam um galleon (maior moeda)
Se testarem o site, observarão que ele já funciona. Porém o código tem uma pequena imperfeição: para alguns valores, ele arredonda o número de knuts ou sickles de forma que o valor total final fica um pouco impreciso (diferença de 1 knut ou 1 sickle).
Se testarem, por exemplo, a quantidade "3" no item "Snowy Owl" (e 0 em todas as outras), o site retornará o preço total com imprecisão de 1 knut.
Acredito que essa imprecisão seja uma decorrêcia do uso da função matemática floor.
No meu programa, atribuo uma variável para o preço de cada produto, e jogo esse preço convertido totalmente em knuts (a menor moeda). Depois disso, crio uma variável cujo valor é igual à multiplicação de cada preço pela quantidade escolhida de cada produto, somando tudo e retornando o valor total. Por fim, essa variável de valor total é convertida para cada forma de moeda conforme o código abaixo:
Pergunta
lucasmpufu
Olá a todos! Sou iniciante em programação e estou inventando alguns exercícios pra praticar.
Estou no momento bem básico da coisa, aprendendo a usar o HTML em conjunto com o PHP de forma dinânica.
Escolhi um tema para um exercício (Harry Potter) e fiz um site de teste que é uma mini loja de produtos relacionados ao HP.
Parte do motivo pra escolher HP foi que as moedas no mundo fictício do livro tem uma conversão de valores bem esdrúxula, o que tornou o exercício um pouco mais matematicamente interessante:
- A menor moeda é um "knut";
- 29 knuts formam um sickle;
- 17 sickles (ou 493 knuts) formam um galleon (maior moeda)
O site está disponível em: http://celvonline.org/tests/home.html
Se testarem o site, observarão que ele já funciona. Porém o código tem uma pequena imperfeição: para alguns valores, ele arredonda o número de knuts ou sickles de forma que o valor total final fica um pouco impreciso (diferença de 1 knut ou 1 sickle).
Se testarem, por exemplo, a quantidade "3" no item "Snowy Owl" (e 0 em todas as outras), o site retornará o preço total com imprecisão de 1 knut.
Acredito que essa imprecisão seja uma decorrêcia do uso da função matemática floor.
No meu programa, atribuo uma variável para o preço de cada produto, e jogo esse preço convertido totalmente em knuts (a menor moeda). Depois disso, crio uma variável cujo valor é igual à multiplicação de cada preço pela quantidade escolhida de cada produto, somando tudo e retornando o valor total. Por fim, essa variável de valor total é convertida para cada forma de moeda conforme o código abaixo:
No final, uso "print" com "floor para exibir os resultados na tela:
Aceito sugestões para tentar corrigir essa imprecisão, ou qualquer outra sugestão de aperfeiçoamento do código de forma geral!
Editado por lucasmpufuLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.