La clase estándar Scanner La clase Scanner de Java provee métodos para leer valores de entrada de varios tipos y está localizada en el paquete java.util. Los valores de entrada pueden venir de varias fuentes, incluyendo valores que se entren por el teclado o datos almacenados en un archivo. Para utilizar esa clase tenemos que crear primero un objeto de ella para poder invocar sus métodos. La siguiente declaración crea un objeto de la clase Scanner que lee valores de entrada del teclado. Scanner teclado = new Scanner(System.in); El propósito de pasar a System.in como argumento es conectar o establecer una relación entre el objeto tipo Scanner, con nombre teclado en la declaración anterior, y el objeto System.in, que representa el sistema estándar de entrada de información en Java. Si no se indica lo contrario, el teclado es, por omisión, el sistema estándar de entrada de información en Java. Luego que se tenga un objeto de la clase Scanner asociado al sistema estándar de entrada System.in, llamamos, por ejemplo, su método nextInt para entrar un valor del tipo int. Para entrar otros valores de otros tipos de datos primitivos, se usan los métodos correspondientes como nextByte o nextDouble. Método nextByte() nextDouble() nextFloat() nextInt() nextLong() nextShort() next() nextLine() Ejemplo byte b = teclado.nextByte(); double d = teclado.nextDouble(); float f = teclado.nextFloat(); int i = teclado.nextInt(); long l = teclado.nextLong(); short s = teclado.nextShort(); String p = teclado.next(); String o = teclado.nextLine(); Ejemplo: Escriba una aplicación en Java que calcule y muestre el perímetro y el área de un rectángulo, dados la longitud y anchura de él. Algoritmo: ENTRADA: PROPOSITO: SALIDA: La longitud y anchura del rectángulo. Calcular el perímetro y área del rectángulo. El perímetro y área del rectángulo. Pasos: 1. Considerar la Longitud y Anchura del rectángulo. 1.1 Longitud ← longitud correspondiente del rectángulo 1.2 Anchura ← anchura correspondiente del rectángulo 2. Calcular el perímetro y área del rectángulo. 2.1 Perímetro ← 2 * Longitud + 2 * Anchura 2.2 Área ← Longitud x Anchura 3. Mostrar resultados 3.1 Perímetro 3.2 Área Copyright © 2008 CARIMOBITS 2 Código en Java: /* Programa Ejemplo de Java: Calcula y muestra el perímetro y área de un rectángulo, dados la longitud y anchura del rectángulo. */ Archivo: RectanguloPA.java import java.util.Scanner; //también se puede escribir import java.util.*; class RectanguloPA { // comienza clase RectanguloPA public static void main (String[] args) {// comienza método main Scanner teclado = new Scanner (System.in); System.out.println("Esta aplicacion solicita la longitud y anchura de un rectangulo."); System.out.println("Luego, calcula y muestra su perimetro y area."); System.out.println(); System.out.print("Entre la longitud del rectangulo: "); double longitud = teclado.nextDouble(); System.out.print("Entre la anchura del rectangulo: "); double anchura = teclado.nextDouble(); double perimetro = 2*longitud + 2*anchura; double area = longitud * anchura; System.out.println(); System.out.println("El perimetro del rectangulo es: " + perimetro + " unidades."); System.out.println("El area del rectangulo es: " + area + " unidades cuadradas."); }// termina método main }// termina clase RectanguloPA Copyright © 2008 CARIMOBITS 3 Leer cadenas de caracteres (objetos de la clase estándar Strings) como datos de entrada es un poco más complicado que leer datos numéricos. 1. Para entrar solamente una palabra usamos el método next como se ilustra en el ejemplo siguiente: ... Scanner teclado = new Scanner(System.in); System.out.print(“Entre sus primer nombre:”) String nombre = teclado.next(); ... 2. Para entrar una oración o frase que consista de varias palabras se usa el método nextLine(). Ejemplo: /* */ Programa Ejemplo de Java: Muestra una frase Archivo: Frase.java import java.util.*; class Frase {// comienza clase Frase public static void main (String[] args) {// comienza método main Scanner teclado = new Scanner(System.in); System.out.println(); System.out.print("Entre su frase preferida: "); String frase = teclado.nextLine(); System.out.println(); System.out.println("Usted entró :" + frase); }// termina método main }// termina clase Frase Copyright © 2008 CARIMOBITS 4 Ejercicios: Utilice la clase estándar Scanner de Java para entrar los valores de entrada en cada uno de los siguientes ejercicios. 1. Escriba un programa que solicite la longitud de cada cateto de un triángulo rectángulo, calcule y muestre la longitud de su hipotenusa. 2. Escriba una aplicacion que calcule y muestre las soluciones reales de una ecuacion de la forma ax + bx + c = 0, donde a, b y c son numeros reales, con a ≠ 0. Si la ecuacion no tiene soluciones reales, entonces la aplicacion debe indicarlo. Haga uso de la formula cuadratica. 2 Algoritmo: ENTRADA: PROPÓSITO: SALIDA: las Los valores de los coeficientes numéricos A, B y C. Calcular las soluciones reales de una ecuación cuadrática con coeficientes reales, si las tiene. Las soluciones reales de una ecuación cuadrática, si tiene; de lo contrario, indicar que no las tiene. Pasos: 1. Entrar los valores de A, B y C. 1.1 A ← coeficiente principal 1.2 B ← segundo coeficiente 1.3 C ← término constante 2. Calcular el valor de Discriminante. 2.1 Discriminante ← B2 - 4AC 3. Si Discriminante≥0 3.1 Solución1 ← 3.2 Solución2 ← entonces, − B+ Discriminante 2A − B− Discriminante 2A 3.3 Mostrar Solución1 3.4 Mostrar Solución2 De otra forma, 3.5 Indicar que no hay soluciones reales. Copyright © 2008 CARIMOBITS 5 3. Escriba una aplicacion que calcule y muestre el sueldo neto semanal de un empleado si se sabe: las horas trabajadas, el sueldo por hora, tasa de descuento del seguro social y tasa de descuento de contribucion sobre ingresos. La aplicacion debe solicitar el nombre del empleado, la cantidad de horas trabajadas en una semana, el sueldo por hora, la tasa de descuento del seguro social y la tasa de descuento de la contribucion sobre ingresos del empleado. Ademas, debe mostrar el nombre del empleado y su sueldo neto semanal. Copyright © 2008 CARIMOBITS 6