Ir ao conteúdo
  • Cadastre-se

C++ Programa + subprograma - nº aparelhos vendidos


mariana_____silva

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

 

 

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.

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

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

@@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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@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.

 

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!