Quem sabe programar c#?

acho que precisar colocar switch? ou for?

  1. Faça um algoritmo que leia um código e três valores: N1, N2 e N3. Os códigos válidos são 1, 2, 3, 4 e 5.
    Se o código for diferente destes, apresentar a mensagem“CÓDIGO INVÁLIDO” e termina o programa.
    Caso
    contrário, efetue o que se pede:
    código = 1: multiplicar os três valores;
    código = 2: somar os três valores;
    código = 3: subtrair os três valores;
    código = 4: somar o quadrado dos 3 valores;
    código = 5: subtrair o quadrado dos 3 valores

acho que precisar colocar switch?

Tente colocar sua dúvida direto no titulo da questão. Algo como “O que devo usar para implementar meu algoritmo, switch ou for?” seria bastante bom.

Pense assim: o for é uma estrutura de repetição, vc a utiliza quando quer que um determinado trecho de código seja repetido um certo número de vezes. Logo, não é o que vc precisa.

O switch, por outro lado, permite que vc de uma entrada, no caso, o código númerico, e teste pra saber se ela combina com um certo padrão e execute um trecho de código baseado no resultado. Logo, ela é a estrutura que vc precisa.

Enfim… Também acho que vc precisa do switch ^^

1 curtida

Opa valeu por dica!

vc entende esse pergunta?
eu nao, travei …
vou tenter fazer

Nao sei calucar a
float n1, n2, n3, op;

        Console.WriteLine("Digite 3 valores:");
        n1 = float.Parse(Console.ReadLine());
        n2 = float.Parse(Console.ReadLine());
        n3 = float.Parse(Console.ReadLine());



        Console.Write("Digite Opereação:");
        op = char.Parse(Console.ReadLine());
        switch (op)
        {
            case 1: 
                Console.WriteLine("Numero multiplica ");  <--------- nao consegui colocar "MessageBox()" porque?

                break;


            case 2:


                break;



            case 3:


                break;


            case 4:


                break;



            case 5:


                break;

Vai precisar algo do tipo:

Caso 1
 leia valor1, valor, valor3 
escreva resultado de valor1  *valor2  * valor3 
Caso 2
leia valor1, valor, valor3 
escreva resultado de valor1 + valor2 + valor3 
 Caso 3  
leia valor1, valor, valor3 
escreva resultado de valor1  - valor2  - valor3 
Caso 4
leia valor1, valor, valor3 
escreva resultado de valor1 * valor1 + valor2 * valor2 + valor3 * valor 
Caso 5
leia valor1, valor, valor3 
escreva resultado de valor1 * valor1 - valor2 * valor2 - valor3 * valor
Caso contrario
escreva: codigo invalido
1 curtida

parece que n ta certo

float n1, n2, n3, op;

        Console.WriteLine("Digite 3 valores:");
        n1 = float.Parse(Console.ReadLine());
        n2 = float.Parse(Console.ReadLine());
        n3 = float.Parse(Console.ReadLine());



        Console.Write("Digite Opereação:");
        op = char.Parse(Console.ReadLine());
        switch (op)
        {
            case 1:
                Console.WriteLine("Voce digitou 3 valores : " + n1,n2,n3);
                op =(n1 * n2) * n3;
               
               

                break;


            case 2:
               
                Console.WriteLine("Voce digitou 3 valores: "+n1,n2,n3);
                op = (n1 + n2) + n3;
                break;
          
            case 3:
                
                Console.WriteLine("Voce digitou 3 valores: "+n1,n2,n3);
                op = (n1 - n2) - n3;

                break;


            case 4:
                Console.WriteLine("Voce digitou 3 valores : "+n1,n2,n3);
                op = (n1 * n1 + n2 * n2 + n3 * n3);

                break;



            case 5:

                Console.WriteLine("Voce digitou 3 valores: " + n1, n2, n3);
                op = (n1 * n1 - n2 * n2 - n3 * n3);

                break;

            default:

                Console.WriteLine("“CÓDIGO	 INVÁLIDO");
                Console.ReadKey();
                break;

Qual é o problema que está dando neste seu trecho?

Olhando aqui, pensei numa coisa. Vc usou:

char.Parse(Console.ReadLine());

E nos cases do switch vc usou inteiros, será que não tinha que mudar pra caracteres assim:

switch(op) {
case '1': /* ... */
case '2': /* ... */
case '3': /* ... */
}

São apenas sugestões, não consegui testar nada.

1 curtida

tá funcionando !

valeu wldocmicano e _Appelt!!!

1 curtida

Voce esta atribuindo os valores lidos para as contas a variavel que esta usando para os case, não tem necessidade e está atribuindo operações com float em uma variavel char.
você consegue resolver tudo com apenas uma linha de código nos case fazendo algo como:

case 1:
            Console.WriteLine("Voce digitou 3 valores : " + n1,n2,n3);
            Console.WriteLine("Resultado da multiplicação : " + n1 * n2 * n3);

O mesmo vale para o restante dos case, também atente ao comentário acima a respeito do tipo de leitura que você fez.

1 curtida