24
Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

Embed Size (px)

Citation preview

Page 1: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

Conceptos Adicionales sobre Variables y Constantes y la clase Math

Algoritmos y Desarrollo de Programas I

Page 2: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

2

Objetivos

Cuando finalice esta lección, el estudiante: Sabrá como manejar varios aspectos de

variables y constantes tipo char o String.

Sabrá como utilizar la clase Math.

Page 3: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

3

Los caracteres y las secuencias de escape

Existen ciertos caracteres especiales que podemos utilizar con los métodos print y println llamados secuencias de escape.

Las secuencias de escape se forman con dos caracteres, el primero de éstos es un backslash (\).

A pesar de se ven como dos caracteres, el compilador trata la secuencia de escape como si fuera un solo carácter.

Page 4: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

4

Los caracteres y las secuencias de escape (cont.)

\n newlineAdvances cursor to next line for subsequent printing

\t tabCauses the cursor to skip over to the next tab stop

\b backspaceCauses the cursor to back up, or move left, one position

\rcarriage return

Causes the cursor to go to the beginning of the current line, not the next line

\\ backslash Causes a backslash to be printed

\’single quote

Causes a single quotation mark to be printed

\”double quote

Causes a double quotation mark to be printed

Page 5: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

5

Los caracteres y las secuencias de escape (cont.)

Consideremos el siguiente ejemplo:System.out.print("These are our top sellers:\n");

System.out.print("\tComputer games\n\tCoffee\n ");

System.out.println("\tAspirin");

Se muestra lo siguiente en pantalla:These are our top seller:

Computer games

Coffee

Aspirin

Page 6: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

6

Las cadenas de caracteres y la clase String

Una variable que almacenará una cadena de caracteres debe ser declarada de tipo String.

Una cadena de caracteres (string) puede ser un nombre, varias letras, una frase, una oración o cualquier combinación de caracteres entre comillas dobles.

Page 7: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

7

Las cadenas de caracteres y la clase String (cont.)

La letra S mayúscula de la palabra String indica que éste es el nombre de una clase.

En Java, las clases pueden ser usadas para: Representar programas como los que hemos

escrito en el curso. Representar bibliotecas de rutinas (por

ejemplo: System, JOptionPane, Math). Representar tipos de datos adicionales a los

tipos de datos primitivos (por ejemplo: String).

Page 8: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

8

Las cadenas de caracteres y la clase String (cont.)

Los tipos de datos primitivos representan valores atómicos, ésto es, que no se subdividen.

En Java los tipos de datos primitivos son: Enteros: short, byte, int, long Reales: float, double Caracteres: char Lógicos o Booleanos: boolean

Page 9: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

9

Las cadenas de caracteres y la clase String (cont.)

El tipo String se considera un tipos de datos compuesto ya que se construyen a base de datos primitivos (los caracteres).

Otro nombre para los tipos de datos compuestos en Java es tipos de referencia.

Page 10: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

10

Las cadenas de caracteres y la clase String (cont.)

Las variables cuyo tipo de datos es de referencia (como String) son particulares ya que no almacenan directamente el valor que se les asigna.

Por razones técnicas que veremos en el próximo curso, el valor se almacena en un lugar distinto a donde se almacena la variable.

Page 11: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

11

Las cadenas de caracteres y la clase String (cont.)

A este tipo de valor se le conoce como un objeto.

La variable de tipo String almacena la dirección donde se encuentra el objeto.

Se dice, por lo tanto, que una variable de tipo String contiene una referencia al valor asignado (el objeto).

Page 12: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

12

Las cadenas de caracteres y la clase String (cont.)

Por ejemplo:int number = 5;

char grade = ‘B’;

String cityName = “Bayamón”;

Esto es lo que se almacena en RAM:number 5

grade ‘B’

cityName address “Bayamón”

Page 13: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

13

Las cadenas de caracteres y la clase String (cont.)

Como String es una clase, este tipo de datos tiene asociado varios métodos muy útiles.

Algunos de éstos son: length: devuelve la cantidad de caracteres

que contiene el string. toLowerCase: devuelve el equivalente en

letras minúsculas del string. toUpperCase: devuelve el equivalente en

letras mayúsculas del string. charAt: devuelve el carácter que está ubicado

en la posición indicada

Page 14: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

14

Las cadenas de caracteres y la clase String (cont.)

Estos son ejemplos de llamadas a estos métodos:

String name = "Jose M. Diaz";String bigname = name.toUpperCase(); // "JOSE M. DIAZ"String littlename = name.toLowerCase(); // "jose m. diaz"char initial = name.charAt(5); // 'M'int size = name.length(); // 12

Note que charAt asume que las posiciones comienzan desde cero.

Note también que length comienza a contar desde 1.

Page 15: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

15

Las cadenas de caracteres y la clase String (cont.)

public class StringExample {

public static void main(String[] args) { String name = "Jose M. Diaz"; String bigname = name.toUpperCase(); String littlename = name.toLowerCase(); char initial = name.charAt(5); int size = name.length();

System.out.println("name: " + name); System.out.println("bigname: " + bigname); System.out.println("littlename: " + littlename); System.out.println("initial: " + initial); System.out.println("size: " + size); }}

Page 16: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

16

Las cadenas de caracteres y la clase String (cont.)

El operador más importante para manejar strings es la concatenación (+).

Este operador simplemente une dos valores alfanuméricos.

Ejemplos: “Ja” + “va” “Java” “Puerto ” + “Rico” “Puerto Rico”

Page 17: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

17

Las cadenas de caracteres y la clase String (cont.)

En Java si se utiliza + y uno de los operandos es del tipo String, se convierten los demás operandos al string correspondiente y se concatenenan.

Por ejemplo: ‘P’ + “uerto Rico” “Puerto Rico” “Your age is ” + 18 “Your age is 18” “The result is ” + (5 + 3) “The result is 8”

Este comportamiento es usado para mostrar valores de distintos tipos en la pantalla.

Page 18: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

18

La clase Math

El API de Java provee una clase llamada Math que contiene varias definiciones y métodos útiles para llevar a cabo cómputos matemáticos complejos.

Por ejemplo, dentro de esta clase está declarada la constante PI (con valor de 3.14159265358979323846).

Esto permite escribir el siguiente enunciado de asignación para calcular la circunferencia de un círculo:circumference = 2 * Math.PI * radius;

Page 19: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

19

La clase Math (cont.)

El método pow es parte también de la clase Math.

El eleva el primer argumento a la potencia del segundo argumento y produce un resultado de tipo double.

Por ejemplo, y = xz se traduciría en Java ay = Math.pow(x, z);

Esto permite calcular el área de un círculo:area = Math.PI * Math.pow(radius, 2);

Page 20: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

20

La clase Math (cont.)

La siguiente aplicación utiliza la clase Math para calcular el área y la circunferencia de un círculo de radio = 5:

public class CircleApp {

public static void main(String[] args) {

double radius, area, circumference;

radius = 5; area = Math.PI * Math.pow(radius, 2); circumference = 2 * Math.PI * radius;

System.out.println("The area is " + area); System.out.println("The circumference is " + circumference); }}

Page 21: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

21

La clase Math (cont.)

Otro método que forma parte de la clase Math es sqrt, que devuelve la raíz cuadrada del argumento como un resultado de tipo double.

Por ejemplo, para asignar la raíz cuadrada de 196 a result se usaría:

int result;result = (int) Math.sqrt(196);

Nota: Se uso type casting porque se desea almacenar el resultado (14.0) en una variable de tipo int.

Page 22: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

22

La clase Math (cont.)

Además de pow y sqrt, la clase Math provee el método round que devuelve el valor del argumento redondeado al entero más cercano.

Si el argumento de tipo double, el resultado será de tipo long. Pero, si el argumento es de tipo float, el resultado será de tipo int.

Page 23: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

23

La clase Math (cont.)

A continuación se presenta una variación de un ejemplo anterior en el que se deseaba calcular el promedio de los exámenes de un estudiante.

Ahora se desea calcular el promedio redondeado al entero más cercano.

Page 24: Conceptos Adicionales sobre Variables y Constantes y la clase Math Algoritmos y Desarrollo de Programas I

24

La clase Math (cont.)

public class StudentAverageApp2 {

public static void main(String[] args) { int exam1 = 97, exam2 = 88, exam3 = 93; double average; int roundedAverage;

average = (double) (exam1 + exam2 + exam3) / 3; roundedAverage = (int) Math.round(average); System.out.println("The average is " + average); System.out.println("The rounded average is " + roundedAverage); }}