Diapositivas_Lectura3_Ejercicios_Soluciones [Autoguardado].pptx

TrabajosyEnsayos2017 14 views 18 slides Sep 15, 2025
Slide 1
Slide 1 of 18
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18

About This Presentation

dispositiva juava


Slide Content

Estructura de un Programa Java + Ejercicios Resueltos Lectura fundamental 3 + Pensamiento Algorítmico • NetBeans 8.2

Mapa de la sesión 1) Estructura básica de un programa Java 2) Hola Mundo y uso de variables 3) Métodos: sintaxis, invocación y retorno 4) 5 ejercicios aplicados (con solución)

Estructura básica de un programa Java public class Nombre { ... } Método public static void main(String[] args) Instrucciones dentro de main Métodos adicionales (estáticos)

Ejemplo: Hola Mundo public class HolaMundo { public static void main(String[] args) { System.out.println("Hola Mundo!"); } } Primera aproximación: clase pública, método main y salida por consola.

Uso de variables y Scanner Declaración, asignación, operaciones aritméticas Lectura desde teclado con java.util.Scanner Salida con System.out.println / printf

Ejemplo: Calculadora básica (enteros) import java.util.Scanner; public class Calculadora { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.println("Ingrese dos números enteros:"); int a = entrada.nextInt(); int b = entrada.nextInt(); System.out.println("Suma: " + (a + b)); System.out.println("Diferencia: " + (a - b)); System.out.println("Producto: " + (a * b)); System.out.println("Cociente: " + (a / b)); System.out.println("Residuo: " + (a % b)); entrada.close(); } } Ejemplo clásico para practicar entrada/salida y operadores.

Métodos: dividir y vencer Sintaxis: static <tipo> nombre(<params>) { ... return ...; } Ventaja: claridad, reutilización, pruebas unitarias Invocación coordinada desde main

Ejercicio 1 – Determinar siglo (Enunciado) Dado un año positivo n, indicar a qué siglo pertenece y cuál es el primer año de ese siglo. Usar dos métodos: siglo(int n) y primerAnho(int c).

Solución: Ejercicio 1 – Determinar siglo import java.util.Scanner ; public class EjN1_Siglo { public static int siglo (int anho ) { return ( anho - 1) / 100 + 1; } public static int primerAnho (int siglo ) { return ( siglo - 1) * 100 + 1; } public static void main(String[] args ) { Scanner sc = new Scanner(System.in); System.out.print (" Ingrese un año positivo : "); int anho = sc.nextInt (); if ( anho <= 0) { System.out.println ("El año debe ser positivo ."); } else { int c = siglo ( anho ); int p = primerAnho (c); System.out.println ("El año " + anho + " pertenece al siglo " + c + "."); System.out.println ("El primer año del siglo " + c + " es: " + p + "."); } sc.close (); } } Idea clave: ceil(anho/100) ≡ (anho-1)/100 + 1.

Ejercicio 2 – Año bisiesto (Enunciado) Lea un año positivo n; determine si es bisiesto y calcule el siguiente año bisiesto ≥ n. Usar métodos esBisiesto(int) y siguienteBisiesto(int).

Solución: Ejercicio 2 – Año bisiesto import java.util.Scanner ; public class EjN2_Bisiesto { public static boolean esBisiesto (int anho ) { return ( anho % 400 == 0) || ( anho % 4 == 0 && anho % 100 != 0); } public static int siguienteBisiesto (int anho ) { int a = anho ; while (! esBisiesto (a)) a++; return a; } public static void main(String[] args ) { Scanner sc = new Scanner(System.in); System.out.print (" Ingrese un año positivo : "); int anho = sc.nextInt (); if ( anho <= 0) { System.out.println ("El año debe ser positivo ."); } else { System.out.println ("¿Es bisiesto ? " + esBisiesto ( anho )); System.out.println (" Siguiente año bisiesto : " + siguienteBisiesto ( anho )); } sc.close (); } } Regla gregoriana: divisible por 400, o por 4 pero no por 100.

Ejercicio 3 – Conversor °C ↔ °F (Enunciado) Según opción del usuario: convertir de °C a °F o de °F a °C. Usar cToF(double) y fToC(double).

Solución: Ejercicio 3 – Conversor de temperatura import java.util.Scanner ; public class EjN3_Temperatura { public static double cToF (double c) { return (c * 9.0 / 5.0) + 32.0; } public static double fToC (double f) { return (f - 32.0) * 5.0 / 9.0; } public static void main(String[] args ) { Scanner sc = new Scanner(System.in); System.out.println ("1) C -> F | 2) F -> C"); System.out.print (" Opción : "); int op = sc.nextInt (); if (op == 1) { System.out.print (" Ingrese °C: "); double c = sc.nextDouble (); System.out.printf ("%.2f °C = %.2f ° F%n ", c, cToF (c)); } else if (op == 2) { System.out.print (" Ingrese °F: "); double f = sc.nextDouble (); System.out.printf ("%.2f °F = %.2f ° C%n ", f, fToC (f)); } else { System.out.println (" Opción inválida ."); } sc.close (); } } Buena práctica: separar la lógica de conversión en métodos reutilizables.

Ejercicio 4 – Estadísticas (Enunciado) Leer 5 enteros y calcular mínimo , máximo y promedio . Usar métodos minimo (int[]), maximo (int[]), promedio (int[]).

Solución: Ejercicio 4 – Estadísticas simples import java.util.Scanner ; public class EjN4_Estadisticas { public static int minimo (int[] a) { int m = a[0]; for (int x : a) if (x < m) m = x; return m; } public static int maximo (int[] a) { int m = a[0]; for (int x : a) if (x > m) m = x; return m; } public static double promedio (int[] a) { int s = 0; for (int x : a) s += x; return s / 5.0; } public static void main(String[] args ) { Scanner sc = new Scanner(System.in); int[] datos = new int[5]; for (int i =0; i <5; i ++) { System.out.print (" Ingrese entero #"+(i+1)+": "); datos [ i ] = sc.nextInt (); } System.out.println ("Min: " + minimo ( datos )); System.out.println ("Max: " + maximo ( datos )); System.out.printf (" Promedio : %.2f%n", promedio ( datos )); sc.close (); } } Separa cada cálculo en su propio método para claridad y reutilización.

Ejercicio 5 – IMC (Enunciado) Leer peso (kg) y estatura (m). Calcular IMC y mostrar categoría. Usar imc(double,double) y categoria(double).

Solución: Ejercicio 5 – IMC y categoría import java.util.Scanner ; public class EjN5_IMC { public static double imc (double peso, double estatura ) { return peso / ( estatura * estatura ); } public static String categoria (double imc ) { if ( imc < 18.5) return "Bajo peso"; else if ( imc < 25) return "Normal"; else if ( imc < 30) return " Sobrepeso "; else return " Obesidad "; } public static void main(String[] args ) { Scanner sc = new Scanner(System.in); System.out.print ("Peso (kg): "); double peso = sc.nextDouble (); System.out.print (" Estatura (m): "); double est = sc.nextDouble (); if (peso <= 0 || est <= 0) { System.out.println ("Valores inválidos ."); } else { double v = imc (peso, est ); System.out.printf ("IMC = %.2f | Categoría : % s%n ", v, categoria (v)); } sc.close (); } } Ejemplo con retorno double y clasificación por rangos.

Cierre y conexiones con la lectura Clase principal + main + métodos adicionales Entrada con Scanner y salida en consola Dividir y vencer: métodos claros y probables de reutilizar Listo para NetBeans 8.2 (JDK 1.8)