GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Que devo fazer esse exercico? devo colocar switch , ou witch?


#1
  1. Uma loja de ferragens está com uma promoção na venda de parafusos, dando descontos crescentes em

n° de Parafuso | Desconto
1 a 99 | 0%
100 a 199 | 10%
200 a 299 | 20%
Acima de 299 | 30%

função do número de parafusos vendidos, conforme a tabela abaixo:
Sabendo que o preço de cada parafuso é R$ 0,80, faça um programa que leia o número de parafusos
comprados por um cliente e imprima o preço que este cliente deverá pagar.


#2

Acredito que nesse vc vai ter que usar ifs.

if ( quantidade < 100 )
    /* ... */
else if ( quantidade < 200 )
    /* ... */
else if ( quantidade < 300 )
    /* ... */
else // pra qualquer coisa que não for menor que 300
    /* ... */

#3

Acredito ainda que precisa de verificação dupla nos else if, nestes moldes:

     if (quantidade < 100)
     else if (quantidade > 100 e quantidade < 200)
     else if (quantidade > 200 e quantidade < 300)
     else if (quantidade > 300)

Se não for desta forma você poderá estar aplicando 2 ou 3 descontos em sequencia para a mesma compra, gerando assim um calculo errado.


#4

que vcs acham ?

float desconto=0, venda=0, preço = 0,x =0.80f;

        Console.WriteLine("Digite numeros de parafusos vendidos:");
        venda = float.Parse(Console.ReadLine());

        desconto = ((preço * x) / 100); // <--- tem  q calucar nao?


        if (venda < 100)
        {
            Console.WriteLine("Desconto 0%");
            Console.ReadKey();
        }


        else if (venda > 100 && venda < 200)
        {
            Console.WriteLine("Desconto 10%");
            Console.ReadKey();
        }

        else if (venda > 200 && venda < 300)
        {
            Console.WriteLine("Desconto 20%");
            Console.ReadKey();
        }


        else if (venda > 300)
        {
            Console.WriteLine("Desconto de 30%; ");
            Console.ReadKey();
        }

#5

Esta faltando imprimir o preço da compra depois de ler a quantidade, a forma que você vai montar a conta é escolha sua e deve ser feita depois de ler a quantidade.

Como as porcentagens de desconto são fixas pessoalmente eu multiplicaria pelos decimais correspondentes, mas como eu disse, é pessoal e talvez a minha escolha nem seria a mais adequada.


#6

A resposta do @wldomiciano está correta e é mais clara. Pelo fato de você usar else if não há esse risco de executar dois blocos da mesma estrutura.


#7

faça os testes para os valores 100, 200 e 300 e veja o que acontece.