Ir ao conteúdo

Posts recomendados

Postado

Olá, tentei várias vezes realizar um programa em que o enunciado é o seguinte: 

Numa loja de eletrodomésticos, cada vendedor recebe o salário base mais uma comissão pelo número de aparelhos vendidos mensalmente, de acordo com a seguinte tabela:

 

nº aparelhos vendidos  ---- %da comissão

+ 20                              ----  12%

10 a 20                        -----  9%

 

Sendo dado o salário base e o número de aparelhos vendidos por mês, calcular qual o vencimento total de cada um dos n vendedor e o valor da comissão recebida por cada um.

 

O programa que realizei foi o seguinte:

No programa principal declarei apenas: produtos ()

No subprograma: 

void produtos ()
{
   int naparelhos;
   float vtotal, comissao, sbase;
    {
      printf ("Indique salario\n");
      scanf ("%d", &sbase);
      printf ("Qual o numero de aparelhos vendidos?\n");
      scanf ("%d", &naparelhos);
     
    if (naparelhos>20)
     {
       comissao= (sbase*0.12);
       vtotal = sbase + comissao;
     }
    else
      {
        if (naparelhos<=20 && naparelhos>10)
         {
           comissao = (sbase *0.09);
           vtotal = sbase + comissao;
         }
   if (naparelhos<10)
     {
       comissao=0; vtotal=sbase+comissao;
     }
  }
printf ("O valor do salario e %2.f e o valor da comissao e %2.f\n", vtotal,comissao);
}
}

 

 

Obrigada, e espero que me consigam ajudar!

  • Curtir 1
  • Confuso 1
  • Membro VIP
Postado

Olá @mariana_____silva.

 

Você precisa informa o que acontece. Está dando algum erro? é alguma parte que não está conseguindo implementar? Veja, você só informou que "tentou algumas vezes", postou um enunciado e um código. Mas iaí, qual a sua dúvida? :)

 

 

Vamos lá:

 

Apenas peguei o sei código e inserir o método main, para assim "rodar" ao executar.

#include <iostream>
void produtos ();
int main() //método main é aquele vai ser ser invocado ao executar o programa
{
    produtos(); //incova o método que você criou
}

void produtos ()
{
    int naparelhos;
    float vtotal, comissao, sbase;
    //{ <-- não tem vínculo com nada. É desnecessário
    printf ("Indique salario\n");
    scanf ("%d", &sbase);
    printf ("Qual o numero de aparelhos vendidos?\n");
    scanf ("%d", &naparelhos);
    if (naparelhos>20)
    {
        comissao= (sbase*0.12);
        vtotal = sbase + comissao;
    }
    else
    {
        if (naparelhos<=20 && naparelhos>10)
        {
            comissao = (sbase *0.09);
            vtotal = sbase + comissao;
        }
        if (naparelhos<10)
        {
            comissao=0; vtotal=sbase+comissao;
        }
    }
    printf ("O valor do salario e %2.f e o valor da comissao e %2.f\n", vtotal,comissao);
    //} referenete ao { que foi removido lá em cima
}

Não alterei nada! beleza?

Pronto! Vamos supor que esse é o seu código completo. Executei e fiz alguns testes... notei que todas os resultados deram 0 (zero) nas contas. Ou seja, uma "dúvida" sua poderia ser algo como: "todos os testes que fiz estão dando zero, não sei o que acontece".

 

Ai, analisando o código, veríamos um probleminha no scanf(). Para ler um float, NÃO se usa "%d".

 

RESUMINDO:

Dê uma pesquisada sobre como "ler arquivos float em C++" e ajuste o código.

 

A partir daí faça outros testes e veja se está se comportando como desejado.

 

 

 

No aguardo.

 

 

 

 

  • Curtir 1
  • Membro VIP
Postado

Só complementando.

 

@vangodp,

16 horas atrás, vangodp disse:

Seu enunciado ta algo confuso. você tem que informar o numero de vendedores? Precisa informar todos os salários e numero de aparelhos, e depois o programa faria os cálculos, porque se for assim você precisa de um ou dois vetores. Ou bastaria informar o numero de vendedores seria chamado n vezes essa função?
Existem varias formas de se fazer isso, precisaria de mais dados.

Para mim também não está bem claro...

 

Por exemplo, dá forma que foi feito por @mariana_____silva, o vendedor poderia cruzar os braços ao ter vendido o 21º produto... O salário seria o mesmo, rs. Mas aí é outro ponto! O que foi citado por mim e @Mauro Britivaldo foi sobre a sintaxe da linguagem. É necessário ver os outros aspectos do algoritmo também.

  • Curtir 1
Postado

@@Simon Viegas

O enunciado que dei, foi o que me foi dado. De qualquer maneira o problema era o facto de dar sempre 0, mas já consegui resolver o problema

adicionado 4 minutos depois

@vangodp Apenas era preciso mencionar o salário base e a partir daí o número de aparelhos vendidos. O enunciado que dei, foi o que me foi dado pra resolver o programa. De qualquer forma já consegui resolver o programa! 

adicionado 6 minutos depois

@Simon Viegas Sim, o problema era mesmo esse! O valor estava sempre a dar zero, eu depois consegui detetar isso pouco depois de publicar isto, mas deixei aqui de qualquer forma a dúvida. Foi mesmo falta de atenção

adicionado 8 minutos depois

@Mauro Britivaldo Foi falta de atenção mesmo! Estive a alterar algumas coisas do código e depois acabei por não reparar nesse erro, muito grave por sinal!

  • Curtir 1
  • Membro VIP
Postado

@mariana_____silva,

 

Por favor, poste seu código para analisarmos, e também poder servi de base para outros usuários.

 

Para adiantar... Em relação ao último código, tem outros pontos que precisam ser verificados, como:

- não está tratando a parte decimal do salário; (experimente salário de R$1000,30)

- o terceiro if precisaria de um else antes também; (são condições mutuamente excludentes, ou seja, se for um não pode ser o outro)

- tecnicamente o terceiro if nem precisa existir. (se não for as anteriores, necessariamente será a terceira..)

etc

 

No aguardo.

 

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!