PRIMER TALLER DE OBJETOS Profesor: Fecha: PROGRAMACIÓN ORIENTADA A OBJETOS Jaime Guzmán, Esmeide Leal Febrero 18 de 2005 1. Bosquejo de una clase en Java. import java.*; class HolaMundo { public static void main(String args[]) { System.out.println("Hola Mundo"); } } Para compilar desde la línea de comandos el anterior programa, debemos configurar la variable de ambiente del sistema operativo “path” de la siguiente manera. a. Ubicarse en el directorio de trabajo ej: CD MiDirectorio. b. Una vez en el directorio de trabajo, se escribe lo siguiente C:\ MiDirectorio> set path=%path%;C:\ j2sdk1.4.2_02\bin Lo que indica lo anterior es el directorio donde se encuentra el compilador de java “javac”, para este ejemplo, se encuentra en el disco C: c. Una vez configurado el path, lo que sigue es compilar el programa el cual debe tener el mismo nombre de la clase en este ejemplo sería así: C:\ MiDirectorio> javac HolaMundo.java. Una vez ejecutado el comando anterior, lo que se sigue es ejecutar el .class con el comando “java”, de la siguiente manera: C:\ MiDirectorio> java HolaMundo, una vez ejecutado el comando aparecera una ventana con la frase “Hola Mundo.” 2. Escribir y compilar el siguiente programa en java para poner en práctica las sentencias de control if else import java.*; import java.io.*; class Temperatura { private int temperatura = 6; public static void main(String args[]) { Temperatura temp = new Temperatura(); temp.control(); } void control() { float t; String sdato; z Universidad Nacional de Colombia - Medellín try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader flujoE = new BufferedReader(isr); // Leer. La entrada finaliza al pulsar la tecla Entrar System.out.println("Introduzca la temperatura del sistema\n"); sdato = flujoE.readLine(); t = Float.parseFloat(sdato); } catch(IOException e) { System.out.println("Ocurrio una excepcion " + e.getMessage() + "\n"); return; } if( t <= 0) { System.out.println("Error la temperatura es invalida\n"); return; } else if(t < 5) { System.out.println("la temperatura es baja, aumentando combustion\n"); System.out.println(aumentar_combustion(5)); } else if(t < 10) { System.out.println("la temperatura es adecuada\n"); System.out.println(this.temperatura); } else if(t < 20) { System.out.println("la temperatura es alta, disminuyendo combustion a: \n"); System.out.println(disminuir_combustion(5)); } else { System.out.println("la temperatura es demasiado alta!, apagando el sistema\n"); shutdown(); } } float aumentar_combustion(int temperatura) { this.temperatura += temperatura; return this.temperatura; } float disminuir_combustion(int temperatura) { this.temperatura -= temperatura; return this.temperatura; } z Universidad Nacional de Colombia - Medellín void shutdown() { this.temperatura = 0; } } 2. Escribir y compilar el siguiente programa en java para poner en práctica los conceptos de ciclo while y for import java.*; import java.io.*; class Primos { public static void main(String args[]) { Primos primos = new Primos(); String sdato; try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader flujoE = new BufferedReader(isr); System.out.println("ingrese el numero\n"); sdato = flujoE.readLine(); int numero = Integer.parseInt(sdato); primos.factores_primos(numero); } catch(IOException e) { System.out.println("Ocurrio una excepcion " + e.getMessage() + "\n"); return; } } void factores_primos(int n) { int a; int [] vect = new int [1000]; for(int k = 0; k < n; k++) vect[k] = 0; a=n; while(a>1) { for(int i = 2; i<= a; i++) { if( (a%i == 0) ) { vect[i - 1]++; a = a/i; break; z Universidad Nacional de Colombia - Medellín } } } for(int j = 1; j< n; j++) { if( vect[j] != 0) System.out.println("factor " + (j+1) + ": " + vect[j] + " veces\n"); } } } for(int j = 1; j< n; j++) { if( vect[j] != 0) System.out.println("factor " + (j+1) + ": " + vect[j] + " veces\n"); } } } 4. Escribir y compilar el siguiente programa en java para poner en práctica los conceptos de la estructura caso import java.*; import java.io.*; public class DiasMes { public static void main(String[] args) { int días = 0, mes = 0, año = 0; String sdato; try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader flujoE = new BufferedReader(isr); System.out.print("Mes (##): "); sdato = flujoE.readLine(); mes = Integer.parseInt(sdato); System.out.print(mes); System.out.print("Año (####): "); sdato = flujoE.readLine(); año = Integer.parseInt(sdato); } catch(IOException e) { System.out.println("Ocurrio una excepcion " + e.getMessage() + "\n"); return; } switch (mes) { case 1: // enero case 3: // marzo z Universidad Nacional de Colombia - Medellín case 5: // mayo case 7: // julio case 8: // agosto case 10: // octubre case 12: // diciembre días = 31; break; case 4: // abril case 6: // junio case 9: // septiembre case 11: // noviembre días = 30; break; case 2: // febrero // ¿Es el año bisiesto? if ((año % 4 == 0) && (año % 100 != 0) || (año % 400 == 0)) días = 29; else días = 28; break; default: System.out.println("\nEl mes no es válido"); break; } if (mes >= 1 && mes <= 12) System.out.println("\nEl mes " + mes + " del año " + año + " tiene " + días + " días"); } } 5. Escribir y compilar el siguiente programa en java para poner en práctica los conceptos de matrices. Ejercicios 1. Realice un programa en java que calcule la raiz cuadrada de un número n por el método de Newton. ri +1 n + ri ri = 2 Donde ri , es la raíz cuadrada aproximada de n, se repite hasta que la diferencia en valor absoluto de las dos últimas aproximaciones calculadas, sean tan pequeña como se quiera así abs ( ri − ri +1 ) ≤ ε 2. realiza un programa en java que calcule las raíces de la ecuación ax 2 + bx + c = 0 . 3. Realice un programa que lea cuatro cadenas de caracteres y la almacene en una matriz. A continuación, utilizando un método, deberá convertir los caracteres de minúsculas a mayúsculas y por último deberá imprimir los resultados. z Universidad Nacional de Colombia - Medellín