Ir ao conteúdo
  • Cadastre-se

C Alguém pode me explicar a lógica?


Livia Maria

Posts recomendados

Alguém pode me explicar a lógica deste programa para eu entender?

Agradeço.

Uma dona de casa precisa pagar a empregada doméstica e a babá e quer sair do banco apenas com a quantia

necessária para pagá-las. O problema é que as funcionárias não podem dar troco, então ela precisa saber quan-
tas notas de cada valor vai precisar para efetuar o pagamento.

Por exemplo, para pagar R$510,00 e R$490,00, não é suficiente ter 10 notas de R$100,00; são necessárias 9
notas de R$100,00, 1 nota de R$50,00, 2 notas de R$20,00 e 1 nota de R$10,00.
Faça um programa que leia o valor dos dois salários e calcule o número de notas necessárias para efetuar os

pagamentos. A dona de casa não quer andar com moedas nem notas de R$2,00 e os salários devem ser arre-
dondados para cima (um número múltiplo de 5).

PAGAMENTO SEM TROCO
1o valor: R$725
2o valor: R$443
Notas: 11xR$100;0xR$50;3xR$20;0xR$10;2xR$5.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

No caso o programa deve saber quais são os valores das notas disponíveis, por exemplo, informar que ele pode usar notas de R$5, R$10, R$20, R$50 e R$100. Você informaria o valor para o programa, e ele dividiria o valor total pelo maior valor de nota (no caso R$100). Por exemplo:

 

R$725 / 100 = 7.25

R$443 / 100 = 4.43

 

Agora você sabe que precisaria de 11 notas de R$100. Se for um número não múltiplo de R$100, vai ter sobra, no caso seria só você subtrair do valor total o valor em notas de R$100 que você já tem e trabalhar com o que sobrou. Por exemplo:

 

R$725 - (7x100) = R$25

R$443 - (4x100) = R$43

 

No caso sobrou respectivamente R$25 e R$43, você cria uma função que divide o restante pela próximo valor maior abaixo de R$100, que seria R$50, mas nos dois casos acima, não são valores divisíveis por R$50, o valor inteiro da divisão seria 0. Então o programa agora iria trabalhar com o próximo maior valor depois de R$50, que é R$20:

 

R$25 / 20 = 1.25

R$43 / 20 = 2.15

 

Você sabe que vai precisar de 3 notas de R$20 agora. O que sobrou é respectivamente R$5 e R$3. O programa agora tentaria dividir o valor restante por R$10, mas veria que não dá nenhum número inteiro, então ele partiria para a divisão por R$5:

 

R$5 / 5 = 1

R$3/ 5 = 0.6

 

No caso você viu que precisaria de apenas uma nota de R$5 por essa lógica, mas ainda está sobrando três reais que não foram pagos. No caso, como você precisa arredondar tudo pra cima de 5 em 5, o que você pode fazer é: divide o valor total por R$5 e se tiver sobras na divisão, adiciona mais uma nota de R$5. Por exemplo:

 

R$8 / 5 = 1.6

 

Você viu que ia precisar de uma nota de R$5, mas a sua divisão tem sobra, então por isso você adicionaria mais uma nota de R$5 para arredondar o valor pra R$10. Enfim, existem diversas maneiras de fazer esse arredondamento, essa é uma das formas.

  • Curtir 3
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

São apenas duas coisas que precisa fazer. 

E as duas em torno do mesmo conceito da divisão de números inteiros em C e do número 5 :D ok esse último é só uma coincidência 

 

Com as variáveis abaixo:

int a = 12;
int b = 9;
int c = 5;

int ab = a/b;
int ac = a/c;

ab vale 1 e ac vale 2; isso porque a divisão de inteiros simplesmente trunca o resultado.

 

  • arredondar o salario é trivial: você divide por 5 vai dar um certo número, que é o que você pagaria em notas de cinco.  Pode faltar alguma coisa, entre um centavo e 4,99 certo? Então você dá mais cinco reais e não se fala mais nisso. É o que se chama arredondar para cima. Aí vai ter o valor a ser pago para a funcionária. Salve isso.
  • definir as notas também é simples, uma vez que sabe que var pagar com um número mínimo de notas e usando notas de 5, 10, 20, 50 e 100. Use o mesmo conceito da divisão por inteiros e vá calculando quantas notas de cada valor vai usar e mostrando...

    Não é nada diferente do que faria pagando a partir da sua carteira...

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!