Quem sabe programar c#?

7 respostas
Pain_P

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?

7 Respostas

wldomiciano

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 ^^

Pain_P

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
Pain_P

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;
wldomiciano

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.

Pain_P

tá funcionando !

valeu wldocmicano e _Appelt!!!

_

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.

Criado 8 de setembro de 2017
Ultima resposta 8 de set. de 2017
Respostas 7
Participantes 3