Java - Ayuda Eclipse Java

 
Vista:
sin imagen de perfil

Ayuda Eclipse Java

Publicado por Juan (12 intervenciones) el 12/07/2022 20:15:40
Saludos. Necesito sus comentarios para saber si mi código es correcto. Gracias

/*Ingresar dos números. Verificiar si el primero es positivo; si lo es, elevarlo al cubo; si es negativo o cero, sumarlo al contenido del segundo
* y luego elevarlo al cuadrado. En ambos casos el resultado debe quedar en la primera variable ingresada y se debe imprimir*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package Ejercicio;
 
public class Ejercicio {
 
	int nr1;
	int nr2;
 
	void verificación() {
	if (nr1 >0){
 
		nr1=(nr1^3);
	}
 
		else  {
			if (nr1 <=0) {
				nr1=(nr1+nr2)^2;
			}
		}
 
		System.out.println(nr1 +"Primera Variable ");
 
	}
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Eclipse Java

Publicado por Kabuto (1381 intervenciones) el 13/07/2022 12:29:35
No, no lo es.

- No hay método main(), el programa no se puede ejecutar sin él.
- No hay ningún ingreso de datos. Hay que pedir números al usuario, con un Scanner u otra clase que permita leer datos por teclado.
- El símbolo para elevar a potencias : ^2 NO existe en Java. Las potencias se hacen de otras formas.

Si estás haciendo estos ejercicios, es porque previamente alguien te ha explicado cómo se programa en Java, o tienes documentación con la que iniciarse, o similar...


Revisa esa documentación y luego reintenta el ejercicio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda Eclipse Java

Publicado por Juan (12 intervenciones) el 25/07/2022 21:04:13
Saludos. Vuelvo a escribir. Volvi a reescribir mi código. Por favor necesito sus comentarios.

/*Ingresar dos números. Verificiar si el primero es positivo; si lo es, elevarlo al cubo; si es negativo o cero, sumarlo al contenido del segundo
* y luego elevarlo al cuadrado. En ambos casos el resultado debe quedar en la primera variable ingresada y se debe imprimir*/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package Ejercicio;
import java.util.Scanner;
public class Ejercicio {
 
	public static void main(String[] args) {
		 Scanner  Teclado = new Scanner(System.in);
             int nro1;
             int nro2;
         System.out.print("Ingrese dos números");
          nro1 = Teclado.nextInt();
          nro2 = Teclado.nextInt();
 
          if (nro1 > 0) {
 
        	   nro1 =(int) (Math.pow(nro1, 3));
 
          }
 
        	   else
 
        		   if  (nro1<= 0) {
 
        			   nro1 =(int) (Math.pow(nro1, nro2));
 
        			   System.out.println("Número positivo:" + nro1);
        			   System.out.println("Número  negativo:" + nro1);
        			   System.out.println("Fin del Programa");
 
        			   Teclado.close();
        		   }
 
 
          }
 
	}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Eclipse Java

Publicado por Kabuto (1381 intervenciones) el 26/07/2022 00:02:39
Mejor, pero hay fallos de lógica.

En este ejercicio, el flujo del programa se enfrenta a una bifurcación. Es decir, si se cumple una determinada condición el programa irá por un camino, y si no se cumple, irá por otro.

Nos dicen que si el primer número es positivo, hay que elevarlo al cubo.
Esa parte la has hecho bien:
1
2
3
4
5
if (nro1 > 0) {
 
        	   nro1 =(int) (Math.pow(nro1, 3));
 
          }

Sin embargo, falta un detalle. Si el programa sigue este camino, el resultado no se imprime en pantalla. Porque en este bloque de código, solamente estás elevando al cubo, no hay una salida por pantalla.
Habría que añadírsela:
1
2
3
4
5
6
if (nro1 > 0) {
 
        	   nro1 =(int) (Math.pow(nro1, 3));
        	   System.out.println("Valor final de num1: " + nro1);
 
          }

Bien, si no se cumpliese esta condición, entonces el programa tomará este otro camino:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else
 
        		   if  (nro1<= 0) {
 
        			   nro1 =(int) (Math.pow(nro1, nro2));
 
        			   System.out.println("Número positivo:" + nro1);
        			   System.out.println("Número  negativo:" + nro1);
        			   System.out.println("Fin del Programa");
 
        			   Teclado.close();
        		   }
 
 
          }
Aquí hay varios fallos.
Para empezar, no es necesario preguntar si nro1 es menor o igual que 0.
Previamente ya hemos preguntado si nro1 era MAYOR QUE 0. Si no lo es, entonces no hay duda de que nr01 es MENOR O IGUAL QUE 0.
Así que después de la sentencia ELSE no es necesario hacer dicha pregunta, si el flujo del programa ha seguido este camino, sin duda nr01 es menor o igual que 0.
Preguntarlo es redundante, así que la podemos eliminar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else
 
        		  {
 
        			   nro1 =(int) (Math.pow(nro1, nro2));
 
        			   System.out.println("Número positivo:" + nro1);
        			   System.out.println("Número  negativo:" + nro1);
        			   System.out.println("Fin del Programa");
 
        			   Teclado.close();
        		   }
 
 
          }

Vale, ¿y que tarea se ha de cumplir en este caso:
1
sumarlo al contenido del segundo y luego elevarlo al cuadrado
Pues tu no estás haciendo eso.
Estás elevando el primer número al valor del segundo
1
nro1 =(int) (Math.pow(nro1, nro2));

Y luego estás haciendo dos salidas en pantalla, con distinto texto (positivo y negativo), pero mostrando el mismo valor (nro1)
1
2
System.out.println("Número positivo:" + nro1);
System.out.println("Número  negativo:" + nro1);
Esto no es lógico, el mismo número no puede ser positivo y negativo al mismo tiempo.
Pero es que además el enunciado no dice nada mostrar valores positivos y negativos.
Nos dice que el resultado de las operaciones han de quedar almacenadas en la primera variable y mostrarse esta por pantalla, sea el caso que sea.

Estas serían las operaciones correctas para este segundo caso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else
 
        		  {
 
        			   nro1 = nro1 + nro2;
        			   nro1  = (int) Math.pow(nro1, 2);
 
        			   System.out.println("Valor final de num1: " + nro1);
        			   System.out.println("Fin del Programa");
 
        			   Teclado.close();
        		   }
 
 
          }
Por último, las instrucciones de mostrar mensaje "fin de programa" y el cierre del Scanner para leer por teclado, solo ocurren si el flujo va por el segundo camino. No ocurren si fuera por el primero.
Podríamos ponerlas también al primero, pero sería unas repeticiones innecesarias.

Esas dos instrucciones, así como la de imprimir el valor de nro1, han de ocurrir SIEMPRE. Así que en lugar de repetirlas para las dos posibles bifurcaciones que genera la instrucción IF, lo que haremos será ponerlas después de que el IF haya terminado sus bloques de código.
Así nos aseguramos de que SIEMPRE van a ocurrir, sin que dependan de los condicionales del IF ELSE...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Aquí el flujo del programa tiene dos posibles caminos
          if (nro1 > 0) {
        	   nro1 =(int) (Math.pow(nro1, 3)); //Esto ocurre si nro1 es POSITIVO
          }
          else {
         	   nro1 = nro1 + nro2; //Esto ocurre si nro1 es CERO o NEGATIVO
        	   nro1  = (int) Math.pow(nro1, 2);
           }
 
          //Esto ocurre SIEMPRE, no depende del IF ELSE
          System.out.println("Valor final de num1: " + nro1);
          System.out.println("Fin del Programa");
 
          Teclado.close();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda Eclipse Java

Publicado por Juan (12 intervenciones) el 26/07/2022 01:42:13
Muchas Gracias !!! Hare las correciones y seguire subiendo ejercicios con mis practicas. SALUD!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar