Java Ejercicios Básicos Resueltos 3

Ejercicios básicos Java con estructura secuencial

Relación Nº 3: Ejercicios 8, 9 y 10

Ejercicio 8:
Programa que tome como dato de entrada un número que corresponde a la longitud del radio una esfera y nos calcula y escribe el volumen de la esfera que se corresponden con dicho radio.

La fórmula para calcular el volumen de la esfera es
v = (4/3)*PI*r^3

/* 
 * Programa que calcula el volumen de una esfera
 */
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double radio, volumen;
        System.out.print("Introduzca radio de la esfera: ");
        radio = sc.nextDouble();
        System.out.println("Volumen de la esfera de radio " + radio + " = "
                        + (4.0/3)* Math.PI * Math.pow(radio, 3));
    }
}

La operación para calcular el volumen es: (4.0/3)* Math.PI * Math.pow(radio, 3))

Debemos tener cuidado con la división entre números enteros. Si hacemos 4/3 nos da como resultado 1, por eso se debe escribir al menos uno de los dos números como double. En este caso se ha puesto el numerador como double simplemente escribiendo 4.0 y de esta forma el resultado de la división 4.0/3 será de tipo double.

Ejercicio 9:
Programa Java que calcule el área de un triángulo en función de las longitudes de sus lados (a, b, c), según la siguiente fórmula:  
Area = RaizCuadrada(p*(p-a)*(p-b)*(p-c))
donde p =  (a+b+c)/2
Para calcular la raíz cuadrada se utiliza el método Math.sqrt() 

/* 
 * Programa que calcule el área de un triángulo en función de las longitudes de sus lados (a, b, c)
 * según la siguiente fórmula: area=raiz2(p(p-a)(p-b)(p-c)) donde p = (a+b+c)/2
 */

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double a,b,c,p;
        System.out.print("Introduzca longitud del primer lado del triángulo: ");
        a = sc.nextDouble();
        System.out.print("Introduzca longitud del segundo lado del triángulo: ");
        b = sc.nextDouble();
        System.out.print("Introduzca longitud del tercer lado del triángulo: ");
        c = sc.nextDouble();
        p = (a+b+c)/2;
    System.out.println("Area -> " +  Math.sqrt(p*(p-a)*(p-b)*(p-c)));
    }
}


Ejercicio 10:
Programa Java que lea un número entero de 3 cifras y muestre por separado las cifras del número.

/*
 * Programa que lea un número de 3 cifras y muestre por pantalla las cifras del número
 */

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N;
        System.out.print("Introduzca valor de N: ");
        N = sc.nextInt(); //supondremos que el número introducido tiene 3 cifras
        System.out.println("Primera cifra de " + N + " -> " + (N/100));
        System.out.println("Cifra central de " + N + " -> " + (N/10)%10);
        System.out.println("Última cifra  de " + N + " -> " + (N%10));
        
    }  
}
 

Recuerda que la división entre enteros da como resultado la parte entera de la división (sin decimales). Si por ejemplo N = 123 la operación N/10 da como resultado 12 y no 12.3 
Recuerda que el operador % obtiene el resto de la división.


25 comentarios:

  1. Buenas, primero darte las gracias por publicar estos ejercicios. Me están siendo de gran ayuda.

    Ahora tengo una duda en el ejercicio número 9. Primero lo he hecho sin mirar el resultado y no me ha salido, al introducir las longitudes "a,b,c" con valor de "1,2,3" el resultado de área me da "0.0".

    He probado con otros valores y no me ha sacado el área en ninguna de ellas. Al copiar y pegar tu código ha pasado exactamente lo mismo. ¿Sabes por qué puede ser ésto?

    Muchas gracias de nuevo por todo el curro voluntario.

    ResponderEliminar
    Respuestas
    1. Hola, gracias a ti por seguir el blog. Me alegro de que te estén sirviendo los ejercicios. Poco a poco iré poniendo más y algo más avanzados.
      Respecto a la duda que planteas, si los valores son 1, 2, 3 entonces p = (1 + 2 + 3)/2 = 3
      y al calcular Math.sqrt(3*(3-1)*(3-2)*(3-3)) obtenenos como valor 0. (3-3)
      En general habrá que utilizar valores que correspondan a un triángulo real. Habrá valores como por ejemplo a = 10 b = 1 c = 2 para los que no obtendremos un área válida y que no pueden ser longitudes de lado de un triángulo real.

      Saludos

      Eliminar
    2. Eso lo resuelves de una manera muy simples, diciendo que se repita la pregunta de los lados hasta que la suma de los dos menores sea mayor al tercer lado del triángulo. Un saludo.

      Eliminar
    3. http://TrianCal.esy.es -- Abrir en Google Chrome.
      (Calculadora de triángulos online desarrollada por Jesús S.)
      YouTube: https://youtu.be/V2IV7lY52mA

      Os propongo esta calculadora de triángulos online gratuita y sin publicidad para ayudar a los alumnos con la geometría, no realiza los ejecicios pués no muestra las fórmulas utlizadas en los cálculos. Está pensada de manera didáctica para comprobar y visualizar los ejercicios realizados.

      TrianCal es una calculadora de triángulos online que trabaja con cualquier combinación de valores que incluyan lados, alturas, ángulos, el área o el perímetro de cualquier triángulo, calculándolo con la menor cantidad de valores posible (normalmente tres).

      Otras funciones:
      - Dibuja el triángulo(s) con GeoGebra.
      - Indica el rango de valores que se permite introducir en cada elemento.
      - El tipo de ángulo.
      - El tipo de triángulo según sus lados y ángulos.
      - Selección de idioma (inglés o español).
      - Seleccionar como se muestran los ángulos [Grados ( ° ), Radianes, Grados, minutos y segundos ( ° ' " ) o grados y minutos ( ° ' )].
      - Nº de decimales a mostrar en los resultados ( 0 - 15 ).
      - Permite utilizar los cursores y el tabulador para navegar por los valores.
      - Menú desplegable para seleccionar valores cómodamente.
      - Crear un enlace (URL) al triángulo actual.
      - Un icono de correo para comunicarse con el autor.

      NOTA: Hay que usar el navegador Google Chrome para visualizar correctamente TrianCal.

      Ejemplos de combinaciones posibles:
      - El área, el perímetro y otro dato (lado, altura o ángulo), si el triángulo fuera equilátero no haría falta el tercer dato.
      - 2 ángulos y otro dato (si no se pone el valor del otro dato el valor del lado “a” a la hora de dibujar el triángulo será de 10).
      - 1 lado, 1 altura y 1 ángulo.
      - 3 alturas.
      - 3 lados.
      - 2 alturas y el perímetro.
      - Cualquier otra combinación de valores.

      Eliminar
  2. Gracias por tu respuesta ENRIQUE saludos de mexico hgo

    ResponderEliminar
  3. por que sale 4/3 no entiendo???

    ResponderEliminar
  4. si un poco complicado de entenderlo pero en me a ayudado
    un poco

    ResponderEliminar
  5. les paso este mismo ejemplo pero aqui les dice que si no es de 3 cifras que vuelva a introducir un numero de 3 crifras
    //////////////////////////
    package practicando12;
    import java.util.Scanner;
    public class practicando12
    {
    public static void main(String[]args)
    {
    int opc=0;
    //int resp;
    while (opc==0)
    {
    Scanner num=new Scanner(System.in);
    System.out.println("Ingrese un numero entero de 3 cifras:");
    int n=num.nextInt();


    if (n>=100 && n<=999)
    {
    opc=1;
    int resultado=n/100;
    int resultado2=n%100;
    int resultado3=(resultado2/10);
    int resultado4=resultado2%10;
    //System.out.println("el numero no debe ser menor a 100 ni mayor a 999");
    System.out.println("la primer cifra es: "+resultado);
    System.out.println("la 2da cifra es: "+resultado3);
    System.out.println("la 3 cifra es: "+resultado4);
    }
    else

    {
    opc=0;

    }
    }
    }
    }

    ResponderEliminar
    Respuestas
    1. Hola disculpen nesesito hacer un programa en Java q lleve
      nombre,
      apellido,
      salario nominal,
      Ibas(4.85%)
      isr(5%)
      iva (12%)
      y salario total
      para 50 arreglos Con una pantalla de opciones q diga
      ingresar código,
      nombre,
      apellido
      salarios nominal
      en esa pantalla tiene q llevar botones de reporte, nuevo, sigue, anterior, guardar, salir

      Eliminar
  6. hola me podeis ayudar con este ejercicio por favor
    calcular la hora un segundo despues de una hora dada por teclado (resolucion mediante composicion condicional y tambien mediante composicion secuencial) muchas gracias

    ResponderEliminar
  7. Acá otra versión, solo acepta números de tres (3) cifras:

    import java.util.Scanner;


    public class Secuencial10 {

    public static void main(String[] args) {
    //Inicialización de variables
    int numero;
    Scanner sc = new Scanner (System.in);

    //Código
    do {
    System.out.print("Por favor ingrese el número: ");
    numero = sc.nextInt();
    } while (numero < 100 || numero > 999);
    sc.close();
    System.out.println("Centenas: " + numero/100);
    System.out.println("Decenas: " + (numero/10)%10);
    System.out.println("Unidades: " + (numero%100)%10);

    ResponderEliminar
  8. aca tengo otra forma sin utilizar while ni for
    import java.util.Scanner;

    public class P4 {
    public static void main(String[] args) {
    System.out.println("ingrese un numero de 3 cifras : ");
    Scanner numero = new Scanner(System.in);
    int n = numero.nextInt();
    int u,d,c;
    if(n>99 && n<1000){
    u = n%10;
    n = n/10;
    d = n%10;
    n = n/10;
    c = n;
    System.out.println("unidad = "+u + " decena = "+d + " centena = "+c);
    }
    else
    System.out.println("Error ");
    }

    }

    ResponderEliminar
  9. disculpen me puede ayudar con algún algoritmo que haga un programa que calcule área,perimetros y volúmenes de figuras de 2 y 3 planos o dimensiones xfa

    ResponderEliminar
  10. Bastante interesantes los ejercicios. Te felicito por la ayuda que proporcionas.
    Estuve corriendo el ejercicio 8 con Eclipse y me indica que la variable volumen no se utiliza por lo que la puedo retirar del programa.
    Eduardo Ponce
    Lima Peru

    ResponderEliminar
    Respuestas
    1. Es cierto Eduardo, la variable volumen se puede quitar ya que el volumen se calcula y se muestra directamente.

      Eliminar
  11. Estoy trabajando con Eclipse y me pide en todos los ejercicios que trabajan con System.out.print, cerrar la impresora, por lo que averiguando coloque la sentencia sc.close() al final.

    ResponderEliminar
    Respuestas
    1. No se exactamente a que te refieres con cerrar la impresora. la sentencia sc.close() cierra el Scanner aunque esto no es necesario hacerlo en el programa ya que la Máquina Virtual de Java cierra automáticamente el Scanner cuando acaba la ejecución.

      Eliminar
  12. Exelentes programas, me ayudaron muchisimo!!!
    Gracias Suerte

    ResponderEliminar
    Respuestas
    1. me alegro de que te hayan sido útiles mishel. Saludos xd

      Eliminar
  13. me podrían ayudar con este problema??
    Crear un ´programa que encargue por teclado el nombre de una persona edad dirección estado civil si es soltero le mostrara un saludo y si es casado le mostrara una despedida

    ResponderEliminar
  14. public void mostrarDiez(){
    //Programa Java que lea un número entero de 3 cifras y muestre por separado las cifras del número.

    int numero=506;


    for(int i=0;i<String.valueOf(numero).length();i++){

    System.out.print(String.valueOf(numero).charAt(i) + " ");
    }

    imprime 5 0 6 por consola

    ResponderEliminar
  15. Hola disculpen nesesito hacer un programa en Java q lleve
    nombre,
    apellido,
    salario nominal,
    Ibas(4.85%)
    isr(5%)
    iva (12%)
    y salario total
    para 50 arreglos Con una pantalla de opciones q diga
    ingresar código,
    nombre,
    apellido
    salarios nominal
    en esa pantalla tiene q llevar botones de reporte, nuevo, sigue, anterior, guardar, salir

    ResponderEliminar
  16. Buena tarde, una pregunta el ejercicio 8, yo lo hice de esta forma

    import java.util.*;
    public class Ejercicio8{
    public static void main(String[] args){
    double v, r;
    Scanner sc = new Scanner(System.in);
    System.out.println("Ingrese numero de radio: ");
    r = sc.nextDouble();
    v = (4.0/3)*Math.PI*Math.pow(r,3);
    System.out.println("El volumen de la esfera es: " + v);
    }
    }

    Estara bueno de esta manera tambien, pues a mi me da. Gracias me han servido mucho este blogs

    ResponderEliminar
    Respuestas
    1. Hola Javier, esta solución también es correcta. Guardas el resultado de calcular el volumen en una variable y después se muestra la variable. En el ejercicio 8 el resultado del cálculo no se guarda y se muestra directamente. Ambos son correctos. Saludos y gracias por el comentario.

      Eliminar