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

Código tipo "A"

#1

Boa noite pessoal, desculpem incomodar em uma linda noite dessa mas e que to precisando de ajuda pra fazer 3 códigos no netbeans, sou um programador novato e estou tendo muita dificuldade com esses códigos ja fiz e refis eles varias vezes , mas sempre acaba do mesmo jeito o código dando erro e eu apagando ele de raiva (kkk desculpem), bem deixa eu para de enrola os códigos são esses pra fazer

1 -Faça um algoritmo que leia dois números nas variáveis NumA e NumB, nessa ordem, e imprima em ordem inversa, isto é, se os dados lidos forem 5 e 9, por exemplo, devem ser impressos na ordem 9 e 5.

2- Faça um algoritmo que leia três números e mostre-os em ordem decrescente

3- Crie um algoritmo para uma calculadora utilizando a instrução escolha-caso para determinar a operação que deve ser executada, conforme o usuário escolher no menu de opções. Conforme a opção escolhida pelo usuário, uma operação diferente da calculadora deve ser executada. (estou tentando fazer esse agora ele fico assim

public static void main(String[] args) {
    int num1, num2;
    char resultado = 0;
    String operação;
    System.out.println("Digite o Primeiro Número: ");
    System.out.println("Digite o Segundo  Número: ");
    Scanner console = new Scanner( System.in );
    num1 = Integer.parseInt(console.nextLine());
    num2 = Integer.parseInt(console.nextLine());
    System.out.println("Escolha o tipo de ação desejada");
    System.out.println("+ => Adição");
    System.out.println("- => Subtração");
    System.out.println("* => Multiplicação");
    System.out.println("/ => Divisão");
    System.out.println("Escolha a operação: ");
    operação = console.nextLine(); 
    
switch (operação) {
 case "+":
resultado = (char) (num1 + num2);
 break;
 case "-":
resultado = (char) (num1 - num2);     
 break;
 case "*":
 resultado = (char) (num1 * num2);
 break;
 case "/":
 resultado = (char) (num1 * num2);
 break;
 default:
System.out.printf("Operação invalida!!");
resultado = 0;
 break;
}
System.out.printf("Resultado e: ",(operação)); --> essa parte não amostra o resultado, não faço a minima ideia do que esta errado 
    }
} )

bem ele fico assim só não quer mostra o resultado de nenhuma operação

4 Crie um algoritmo que peça o nome, a altura e o peso de duas pessoas e apresente o nome e peso da mais pesada e o nome e altura da mais alta.

5 Faça um algoritmo que leia uma matriz mat 2 x 3 e imprima na tela a soma de todos os elementos da matriz mat.

bem ja tentei fazer todos nem cheguei perto de conseguir, até apaguei os códigos de desaponto (e tristeza), sou muito ruim nisso se você puderem me ajudar desde já agradeço muito, gostaria que estive-se configurado em netbeas, não consigo entender em outra linguagem
falo de novo agradeço desde já muito obrigado

0 Likes

#2

Você está imprimindo a operação e não o resultado e mesmo assim, esqueceu de pôr um %s no ponto da String onde é para apresentar o parâmetro passado ao printf.

System.out.printf("Resultado: %s", operação);
0 Likes

#3

Certo, o código completo fico assim

public static void main(String[] args) {
    int num1, num2;
    boolean resultado;
    String operação;
    System.out.println("Digite o Primeiro Número: ");
    System.out.println("Digite o Segundo  Número: ");
    Scanner console = new Scanner( System.in );
    num1 = Integer.parseInt(console.nextLine());
    num2 = Integer.parseInt(console.nextLine());
    System.out.println("Escolha o tipo de ação desejada");
    System.out.println("+ => Adição");
    System.out.println("- => Subtração");
    System.out.println("* => Multiplicação");
    System.out.println("/ => Divisão");
    System.out.println("Escolha a operação: ");
    operação = console.nextLine(); 
     

    switch (operação) {
 case "Adião": resultado = num1 + num2;
 break;
 case "Subtração": resultado = num1 - num2; 
 break;
 case "Multiplicação": resultado = num1 * num2; 
 break;
 case "Divisão": resultado = num1 / num2; 
 break;
 default:
System.out.printf("Operação invalida!!");
resultado = 0;
 break;
}
System.out.printf("Resultado: %s", resultado);
    }
}

----> todos os case agora estão amostrado erro sabe dizer por quer ? to ficando doido de novo kkkk

0 Likes

#4

Quando postar código no fórum, utiliza o botão de texto pré-formatado </>.
Senão fica péssimo pra ler e copiar/colar seu código.

O compilador sabe e inclusive ele te diz qual é o erro:
Type mismatch: cannot convert from int to boolean

Traduzindo:
Tipo incompatível: não é possível converter de int para boolean

Ou seja, você está tentando atribuir um valor do tipo int para uma variável do tipo boolean.

0 Likes

#5

espera no caso eu fiz isso aqui

 int num1, num2;
        float resultado;
        boolean operação;
        System.out.println("Digite o Primeiro Número: ");
        System.out.println("Digite o Segundo  Número: ");
        Scanner console = new Scanner( System.in );
        num1 =  Integer.parseInt(console.nextLine()); 
        num2 =  Integer.parseInt(console.nextLine()); 
        System.out.println("Escolha o tipo de ação desejada");
        System.out.println("+ => Adição");
        System.out.println("- => Subtração");
        System.out.println("* => Multiplicação");
        System.out.println("/ => Divisão");
        System.out.println("Escolha a operação: ");
        operação = Boolean.parseBoolean(console.nextLine());
        resultado = Float.parseFloat(console.nextLine()); 

        switch (operação) {
     case "Adião": resultado = num1 + num2;
     break;
     case "Subtração": resultado = num1 - num2; 
     break;
     case "Multiplicação": resultado = num1 * num2; 
     break;
     case "Divisão": resultado = num1 / num2; 
     break;
     default:
    System.out.printf("Operação invalida!!");
    resultado = ;
     break;
    }
    System.out.printf("Resultado: %s", resultado);
        }
    }

e agora só da erro na linha switch (operação) { e a linha resultado = ;

0 Likes

#6

Antes você havia declarado a variável resultado como boolean e estava tentando atribuir um valor int para ela.

Agora você declarou a variável operação como boolean e espera que o switch caia em um case com constante do tipo String?
Se você faz um switch de um boolean, você só pode fazer case true e case false.

0 Likes

#7

Onde eu poderia colocar o case true e o false??? não tenho a menor ideia de onde colocá-los

0 Likes

#8

Amiguinho, acho que você pulou (ou faltou) as aulas de estruturas de desvio condicional.
Veja, se você tem duas e apenas duas opções (no caso de uma variável booleana, ela só pode ser verdadeiro ou falso), você só precisa de um if. No máximo de um else.
Quando você tem mais possibilidades (e daí nunca que será sobre uma variável booleana), aí você utiliza um switch/case.

Em resumo, o switch é uma espécie de pergunta, mais ou menos assim

qual o valor de (variavel)

Onde você terá N opções (cases) diferentes e, provavelmente, um que vai cobrir tudo o que não foi definido (o famoso default).
Obviamente que o valor definido a cada case deve ser do mesmo tipo que o que foi definido para a tal variável.
Lembrando que, para switch/case do java, apenas tipos primitivos como int e char, String e enums são aceitos.

0 Likes

#9

kkkkk desculpe, como falei sou iniciante tava tentando me vira sozinho e não tenho professor desculpe mesmo. Bem ele fico assim

public static void main(String[] args) {
int num1, num2;
float resultado;
String  operação;
System.out.println("Digite o Primeiro Número: ");
System.out.println("Digite o Segundo  Número: ");
Scanner console = new Scanner( System.in );
num1 =  Integer.parseInt(console.nextLine()); 
num2 =  Integer.parseInt(console.nextLine()); 
System.out.println("Escolha o tipo de ação desejada");
System.out.println("+ => Adição");
System.out.println("- => Subtração");
System.out.println("* => Multiplicação");
System.out.println("/ => Divisão");
System.out.println("Escolha a operação: ");
operação =  console.nextLine(); 
resultado = Float.parseFloat(console.nextLine());
   

 
switch (operação) {
 
    case "Adião": resultado = num1 + num2;
 break;
 case "Subtração": resultado = num1 - num2; 
 break;
 case "Multiplicação": resultado = num1 * num2; 
 break;
 case "Divisão": resultado = num1 / num2; 
 break;
 default:
System.out.printf("Operação invalida!!");
resultado = 0;
 break;
}
System.out.printf("Resultado: %s", resultado);
}
}

mas se você tentar compilar ele da erro no final…
sera que eu esqueci esse tal de case true e case false?

0 Likes

#10

Esquece essa p0rr@ de case true, case false. Isso não existe.
Além disso, qual o erro???/

0 Likes

#11


esse aqui

0 Likes

#12

Ler a mensagem é fundamental. Entendê-la, mais ainda.
O erro diz que vocẽ está tentando converter um número que está apresentando um + no meio. Simples.

0 Likes

#13


deu o mesmo erro com esse + mas não faço ideia onde posso colocá-lo
o código não tem nada incorreto, onde pode ser ;?

0 Likes

#14

Prezado, acho que estás com dificuldade de interpretação de texto.
Não é pra por o + em lugar nenhum.
O erro significa que você está tentando converter um + para um número.
Se olhar o Stack Trace, vai ver que o erro ocorre na linha número 33 do arquivo Exercicio_83.java

O que tem nessa linha?

0 Likes

#15


Certo o que eu preciso mudar para esse bendito código funcionar

0 Likes

#16
   public static void main(String[] args) {
        int num1, num2;
        int resultado = 0;
        String operação;
        Scanner console = new Scanner(System.in);
        System.out.println("Digite o Primeiro Número: ");
        num1 = Integer.parseInt(console.nextLine());
        System.out.println("Digite o Segundo  Número: ");
        num2 = Integer.parseInt(console.nextLine());
        System.out.println("Escolha o tipo de ação desejada");
        System.out.println("+ => Adição");
        System.out.println("- => Subtração");
        System.out.println("* => Multiplicação");
        System.out.println("/ => Divisão");
        System.out.println("Escolha a operação: ");
        operação = console.nextLine();

        switch (operação) {
            case "+":
                resultado = num1 + num2;
                break;
            case "-":
                resultado = num1 - num2;
                break;
            case "*":
                resultado = num1 * num2;
                break;
            case "/":
                resultado = num1 / num2;
                break;
            default:
                System.out.printf("Operação invalida!!");
                resultado = 0;
                break;
        }
        System.out.printf("Resultado e: " + resultado);

    }
0 Likes

#17

Não poste imagens, poste o código e formate com o botão </>

  1. Realizar as operações na ordem correta.
  2. Prestar atenção no que você pede para o usuário fazer e ver se o seu código processa a entrada do usuário de acordo.
    Por exemplo, o seu programa você pede para digitar uma operação (+, -, * ou /) só que você faz um parseInt dessa operação, isso faz sentido pra você?
    Em seguida faz um parseFloat do que o usuário digitou e atribui ao resultado, isso faz sentido pra você?

Veja o exemplo que o colega @xAcer postou e compare com o seu.

0 Likes

#18

bem eu tinha feito oparseInt , que pra mim era uma forma de dizer que a variável operação` estava ativam, pra mim acho que era uma forma também de ele ser visto no código mas no caso do xAcer ele só uso

console.nextLine();

e deu certo, mas como ? minha logica tava errada sim, mas ainda não entendi muito bem o que poderia me explicar por favor?

e no caso do parseFloat também era uma forma pra mim, de mostra que a variável estava la, por quer como a variável resultado era um tipo real, usei o parseFloat para ler a variável, que o mesmo caso do parseInt era para ler a variável operação

poderia me dizer o que na minha logica estava errado, ainda não consegui entender, percebi que o xAcer ele troco o meu parseInt por console.nextLine(); e percebi que o resultado foi tirado.

desculpe por essa duvida, concerteza pra vocês deve ser duvidas bestas mas gostaria que me explica-se. e muito Obrigado pela a ajuda de todos vocês…

0 Likes

#19

parseInt é um método cuja finalidade é pegar uma String e tentar converter para um valor inteiro. Caso haja alguma coisa que não pode ser convertida para inteiro, ocorre essa exceção.
O caractere + não é um caractere aceito para um valor inteiro, logo, é isso que causa a exceção.

0 Likes

#20

Este método, nextLine, lê tudo o que foi inserido no Stream de entrada padrão do sistema (System.in), desde a primeira tecla pressionada até a quebra da linha (o famoso \n), indicado pelo pressionamento da tecla enter.

0 Likes