La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter 3 - 1 U3. Datos Numéricos. Objetivos Elegir el tipo apropiado.

Presentaciones similares


Presentación del tema: "©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter 3 - 1 U3. Datos Numéricos. Objetivos Elegir el tipo apropiado."— Transcripción de la presentación:

1 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter U3. Datos Numéricos. Objetivos Elegir el tipo apropiado para los datos numéricos Escribir expresiones aritméticas en Java Evaluar expresiones aritméticas usando las reglas de precedencia Describir como trabaja la reserva de memoria con datos primitivos Escribir expresiones matematicas usando la clase Math Usar el Calendario Gregoriano para fechas Usar la clase DecimalFormat para formatear datos numéricos Convertir string a numérico Realizar entrada y salida de información (I/O) con System.in System.out

2 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Manejo de Números En java sumar dos numéros : x + y Pero antes de poder hacer esta suma, debemos declarar los tipos de dato. Si x y son enteros int x, y; or int x; int y;

3 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Variables Cuando se hace la declaración, se asigna espacio de memoria para almacenar los valores de x e y x e y se llaman variables. Una variable tiene tiene 3 properties: –Un lugar en memoria para almacenar el valor –El tipo de datos almacenados en la direccion de memoria –El nombre usado para referirse a esa direccion de memoria Ej declaración de variables int x; int v, w, y;

4 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Tipo de Datos Numéricos Hay 6 tipos de datos numéricos : byte, short, int, long, float, and double. Declaración de variables int i, j, k; float numberOne, numberTwo; long bigInteger; doublebigNumber; Se puede declarar e inicializar en el mismo paso por ej. int count = 10, height = 34;

5 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Precisión Los 6 tipos de datos difieren en la precisión con que se almacenan en memoria. Ej byte 2, Int 4 bytes

6 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Sentencia de Asignación Se asigna un valor a una variable usando una sentencia de asignación = ; Ej sum = firstNumber + secondNumber; avg = (one + two + three) / 3.0;

7 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Operadores Aritméticos La tabla resume las operadores disponibles en Java En la división entera se trunca la parte fracionaria

8 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Expresion Aritmética Cómo se evalúa la expresión : x + 3 * y? Se suma x a 3*y Se determina el orden de evaluación siguiendo las reglas de precedencia Un orden de precedencia mayor es evaluado antes que uno menor Si dos operadores tienen la misma precedencia se evalúa de izquierda a derecha

9 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Reglas de Precedencia

10 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Conversión de Tipos Si x es float y y es un entero, que tipo de datos dará la sig expresion? x * y Resp: float. La expresión anterior se llama expresión mixta Se usan las reglas de promoción para convertir los tipos de datos de las expresiones mixtas. El tipo de dato de la expresión será el del operando que tenga mayor precisión.

11 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Conversión explícita de tipos En vez de aceptar las reglas de promoción, podemos hacer una conversión explícita de tipo anteponiendo al operando el tipo de dato ( ) Ej (float) x / 3 (int) (x / y * 3.0) Pasa x a float y lo divide por 3 Pasa el resultado de la expresión x / y * 3.0 a int.

12 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Conversión implícita de Tipos Consideremos la sig expresión: double x = 3 + 5; El resultado de is de tipo int. No obstante, ya que la variable x es double, el valor 8 (tipo int) es promovido a 8.0 (tipo double) antes de asignarlo a x. Note que esto es una promoción. No se permiten degradación daria error int x = 3.5; Un valor de más precisión no puede asignarse a una variable de menor precision

13 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Constantes Se puede cambiar el valor de una variable. Cuando desemos que mantenga el mismo valor se usan constantes. final double PI = ; final int MONTH_IN_YEAR = 12; final short FARADAY_CONSTANT = 23060; Estas son constantes, taa llamadas constantes nombradas Usamos la palabra reservada final para declarar una constante Estas se llamasn constantes literales

14 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Primitivos vs. Referencia Los datos numéricos se llaman tipo de datos primitivo. Los objetos se llaman tipo de dato de referencia, porque el contenido es una dirección que se refiere al lugar de memoria donde el objeto está realmente almacenado.

15 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Declaración y asignación de Datos Primitivos Code State of Memory int firstNumber, secondNumber; firstNumber = 234; secondNumber = 87; A A B B firstNumber secondNumber A. Se asigna la variable a memoria B. Se asignan los valores a las variables

16 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Asignando un Dato Numérico Código Estado de la Memoria number A. A. La variable es colocada en memoria B. 237 number B. Se asigna el valor 237 a number. 237 int number; number = 237; A A B B C C number = 35; C C. El valor 35 sobre escribe al valor previo

17 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Asignando Objetos Código Estado de la Memoria customer A. El nombre de l A. El nombre de la variable se asigna en memoria Customer customer; customer = new Customer( ); A A B B C C B. customer B. La referencia al nuevo objeto se asigna a customer. Customer C. La referencia a otro objeto sobre-escribe la referencia a customer. Customer

18 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Dos referencias al mismo Objeto Código Estado dela Memoria Customer clemens, twain, clemens = new Customer( ); twain = clemens; A A B B C C A. A. Las variables se asignan en memoria clemens twain B. clemens B. La referencia a un nuevo objeto se asigna a clemens. Customer C. clemens customer. C. La referencia a clemens se asigna a customer.

19 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Incompatibilidad de Tipos Suponga que deseamos ingresar una edad. Esto funcionaría? int age; age = JOptionPane.showInputDialog( null, Enter your age); No. Un string no puede asignarse directamente a una variable entera

20 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Conversión de Tipos Se usan clases envoltorio (Wrapper classes) para realizar las conversiones necesarias tales como convertir un objeto string a un valor numérico int age; String inputStr; inputStr = JOptionPane.showInputDialog( null, Enter your age); age = Integer.parseInt(inputStr);

21 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Otros métodos de Conversión

22 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej Fragmento de Código //codigo de ingreso de radio y salida de la //circunsferencia double radius, area, circumference; String radiusStr; radiusStr = JOptionPane.showInputDialog( null, "Enter radius: " ); radius = Double.parseDouble(radiusStr); //compute area and circumference area = PI * radius * radius; circumference = 2.0 * PI * radius; JOptionPane.showMessageDialog(null, "Given Radius: " + radius + "\n" + "Area: " + area + "\n" + "Circumference: " + circumference);

23 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Operatores Sobrecargados + El operador + puede significar dos operaciones diferentes, dependiendo del contexto + es la suma de dos numéros si ambos son numéros. Si uno de los dos es un string es una concatenación La evaluación se realiza de izquierda a derecha output = test ; output = test;

24 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter La clase DecimalFormat Se usa el objeto DecimalFormat para formatear la salida de valores numéricos double num = ; DecimalFormat df = new DecimalFormat(0.000); //tres lugares decimales System.out.print(num); System.out.print(df.format(num));

25 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Salida Estándar El propósito del método showMessageDialog es mostrar mensajes cortos de una línea (se pueden mostrar varias colocando + "\n como en el ej anterior) Se usa System.out, para mostrar varias líneas en la salida estándar (ventana)

26 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ventana de Salida Estándar Ejemplo de ventana para mostrar varias líneas de salida El estilo de esta ventana depende de la herramienta de Java que esté usando

27 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter El Metodo print Usamos el método print para mostrar datos por la ventana de salidad estándar El método print continua imprimiendo a partir del último caracter de salida Ej System.out.print( Hello, Dr. Caffeine. );

28 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter El Método println Usamos println en vez de print para saltar a la próxima línea int x = 123, y = x + x; System.out.println( "Hello, Dr. Caffeine. ); System.out.print( " x = ); System.out.println( x ); System.out.print( " x + x = ); System.out.println( y ); System.out.println( " THE END );

29 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Entrada Estándar La técnica de usar System.in para ingreso de datos se llama entrada estándar Sólo podemos poner un byte usando System.in directamente Para ingresar valores de datos se puede usar la clase Scanner (desde Java 5.0). Scanner scanner; scanner = Scanner.create(System.in); int num = scanner.nextInt();

30 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Método Ejemplo nextByte( )byte b = scanner.nextByte( ); nextDouble( )double d = scanner.nextDouble( ); nextFloat( )float f = scanner.nextFloat( ); nextInt( )int i = scanner.nextInt( ); nextLong( )long l = scanner.nextLong( ); nextShort( )short s = scanner.nextShort( ); next() String str = scanner.next(); Métodos de Scanner más usados

31 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Clase Math La clase Math del paquete java.lang contiene métodos de clase para las funciones matemáticas más usadas. No es necesario crear un objeto para llamar a los métodos de la clase. Ej. sqrt, min, etc double num, x, y; x = …; y = …; num = Math.sqrt(Math.max(x, y) );

32 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Algunos métodos de la clase Math The sine of a. (Note: all trigonometric functions are computed in radians) sin(a) The square root of a. sqrt(a) The larger of a and b. max(a,b) Natural logarithm (base e) of a. log(a) The number a raised to the power of b. pow(a,b) Natural number e raised to the power of a. exp(a) The largest whole number less than or equal to a. floor(a) DescriptionMethod

33 Calcular una altura alphaRad = Math.toRadians(alpha); betaRad = Math.toRadians(beta); height = ( distance * Math.sin(alphaRad) * Math.sin(betaRad) ) / Math.sqrt( Math.sin(alphaRad + betaRad) * Math.sin(alphaRad - betaRad) );

34 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter La clase GregorianCalendar El objeto GregorianCalendar permite manipular información de fechas. Es una clase de la version 5, reemplaza a las clases Date GregorianCalendar today, independenceDay; today = new GregorianCalendar(); independenceDay = new GregorianCalendar(1776, 6, 4); //month 6 means July; 0 means January

35 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Obteniendo Información Calendar Se muestra las constantes de clase para obtener diferentes partes de la información de calendario de un Date.

36 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Ej de obtención de información con Calendar GregorianCalendar cal = new GregorianCalendar(); //Assume today is Nov 9, 2003 System.out.print(Today is + (cal.get(Calendar.MONTH)+1) + / + cal.get(Calendar.DATE) + / + cal.get(Calendar.YEAR)); Today is 11/9/2003 Output

37 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Enunciado de Problema Enunciado Escribir un programa de préstamos, que calcule los pagos mensuales y totales para una cantidad, tasa de interés anual y período de préstamo (cantidad de cuotas) ingresado por el usuario

38 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Plan general Tareas: –Obtener tres valores de ingreso: monto del préstamo, tasa de interes y periodo del prestamo (loanAmount, interestRate y loanPeriod). –Calcular los pagos mensuales y el pago total –Mostrar los resultados

39 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Clases Necesarias

40 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Desarrollo Pasos Se desarrollará la solución en 4 pasos 1. Comenzar con el ingreso de los tres valores requeridos 1.Agregar cógido para mostrar los resultados 2.Agregar el código que calcule los pagos mensuales y total 3.Revisar si quedó algo pendiente, documentar

41 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 1 Diseño Llamar al método showInputDialog para aceptar los tres valores de ingres: –loan amount, –annual interest rate, –loan period. Elegir los tipos de dato a emplear intin yearsloan period doublein percent (e.g.,12.5) annual interest rate doubledollars and centsloan amount Data TypeFormatInput

42 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 1 Cógido Directorio: Chapter3/Step1 Arch. Fuente: Ch3LoanCalculator.java Directorio: Chapter3/Step1 Arch. Fuente: Ch3LoanCalculator.java

43 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 1 Prueba En la etapa de prueba, se corre el programa varias veces para verificar que: –Podemos entrar los tres valores –we see the entered values echo-printed correctly on the standard output window –Confirmar que se asignan correctamente los valores ingresados mostrandolos por la salida estandard

44 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Diseño Eleccion del formato de salida de los datos Vemos dos posibilidades:

45 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Código Directory: Chapter3/Step2 Source File: Ch3LoanCalculator.java Directory: Chapter3/Step2 Source File: Ch3LoanCalculator.java

46 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 2 Prueba Correr el programa varias veces con diferentes valores de ingreso y verificar el formato mostrado Ajustar el formato para que sea apropiado

47 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 3 Diseño Podemos usar la fórmula de progresión geométrica para calcular los pagos mensuales Esta requiere el período del préstamo en meses y la tasa de interés mensual Se debe convertir la tasa anual (valor de ingreso) a tasa mensual y el período del préstamo a la cantidad de meses correspondientes

48 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 3 Código Directory: Chapter3/Step3 Source File: Ch3LoanCalculator.java Directory: Chapter3/Step3 Source File: Ch3LoanCalculator.java

49 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 3 Prueba Correr el programa varias veces con diferentes datos de ingreso y verificar los resultados

50 ©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Paso 4: Finalizar Agregar una descripción del programa Formatear la salida de los pagos mensuales y total para que muestre dos decimales usando DecimalFormat. Directory: Chapter3/Step4 Source File: Ch3LoanCalculator.java


Descargar ppt "©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter 3 - 1 U3. Datos Numéricos. Objetivos Elegir el tipo apropiado."

Presentaciones similares


Anuncios Google