fundamentos de programación tipos de datos en java

52
Fundamentos de Programación Tipos de Datos en Java

Upload: guillermo-suarez-alvarado

Post on 23-Jan-2016

247 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Programación Tipos de Datos en Java

Fundamentos de ProgramaciónTipos de Datos en Java

Page 2: Fundamentos de Programación Tipos de Datos en Java

Concepto de Variable y constante. 1. Variable: Es un espacio de memoria reservado para almacenar

un valor, dicho valor va cambiando durante el flujo de un programa.

2. Constante: Es similar a una variable, sin embargo la constante no asignará un valor al inicio de un programa y este no cambiará durante el flujo de un programa.

Nota: El espacio de memoria reservado dependerá del tipo de variable, estos tipos y su peso (espacio que ocupan) depende del lenguaje en el que se declaren.

Page 3: Fundamentos de Programación Tipos de Datos en Java

Datos Primitivos. Son aquellos tipos de datos que pueden utilizarse directamente en un programa sin necesidad de utilizar POO. pueden ser divididos en dos grupos:

1. Boléanos.2. Numéricos.

Page 4: Fundamentos de Programación Tipos de Datos en Java

Datos No Primitivos (Objetos). Incluyen todos los tipos de datos que pueden ser instanciados a partir de las clases.

Los objetos, a diferencia de los tipos primitivos, representan un conjunto de datos como una única unidad que además posee estados y comportamientos.

Page 5: Fundamentos de Programación Tipos de Datos en Java

Declaración de una variable. Sintaxis:

Tipo_de_dato identificador = [valor][, identificador] [=valor]… ;

Ejemplos:

• int contador = 1;

• int contador = 1, suma = 0, promedio = 0;

Page 6: Fundamentos de Programación Tipos de Datos en Java

Datos numéricos primitivos. byte: Almacena datos de tipo entero de tamaño 8 bits. intervalo de valores entre el -128 y + 127.

Ej: byte a = 1+1*2;

short: Tiene una capacidad de 16 bits y permite almacenar un valor entero entre -32768 y +32767 (al igual que el entero en C).

Ej: short a = 0, b=0;

Page 7: Fundamentos de Programación Tipos de Datos en Java

Datos numéricos primitivos. int: El tipo de dato entero tiene una capacidad de 32 bits y permite almacenar un valor entero entre -2147483648 y +2147483647.

Ej: int a = 0; int b= 0;

long: Tiene una capacidad de 64 bits y permite almacenar un valor entero entre -9.223.372.036.854.775.808 y +9.223.372.036.854.775.809.

Ej: long a = 100;

Page 8: Fundamentos de Programación Tipos de Datos en Java

Datos numéricos primitivos. float:Tiene una capacidad de 32 bits y permite almacenar un valor real en coma flotante (decimales) entre -3,4*10-38 hasta 3,4*1038 . Los valores expresados en float deben ir acompañados de una letra f minúscula al final.

Ej: float a = 100f;

Page 9: Fundamentos de Programación Tipos de Datos en Java

Datos numéricos primitivos. double: Tiene una capacidad de 64 bits y permite almacenar un valor real entre -1,7*10-308 y +1,7*10308. Es el tipo de dato que asume Java al escribir un real, por ello no va acompañado de ningún carácter como en el caso del float.

Ej: double a = 100;

Page 10: Fundamentos de Programación Tipos de Datos en Java

Datos no numéricos primitivos. boolean: El tipo de dato booleano es utilizado para conocer el resultado de una evaluación booleana, los dos posibles valores son true (verdadero) y false (falso). Si su valor de inicio no es especificado, el valor por defecto es false.

Ej: boolean a = true;

Page 11: Fundamentos de Programación Tipos de Datos en Java

Datos no numéricos primitivos. char: Tipo de datos que permite almacenar un caracter, sin embargo el valor que en realidad almacena es un entero equivalente entre los valores del 0 al 127 de la tabla de caracteres ASCII. La forma de declarar un char es la siguiente:

Ej: char letra1 = ‘a’; char letra2=97;

Page 12: Fundamentos de Programación Tipos de Datos en Java

Datos no numéricos no primitivos. String: Es en realidad una clase, que almacena como atributo un arreglo de caracteres. No es un tipo de dato primitivo, su uso es muy habitual en los programas y adicionalmente se puede utilizar de la misma forma en la que se declaran los tipos primitivos.

Ej: String palabra1 = “iceberg”;

Page 13: Fundamentos de Programación Tipos de Datos en Java

Representación de sentencias de instrucciones. • Operación de entrada.• Operación de salida.• Operación de asignación.• Operadores aritméticos: son aquellos que permiten realizar

operaciones matemáticas y son:

Page 14: Fundamentos de Programación Tipos de Datos en Java

Jerarquías de los operadores. 1. Paréntesis, comenzando por el más interno.2. Potencias.3. Productos y divisiones.4. Sumas y restas.5. Concatenación.6. Relacionales.7. Lógicos.

Page 15: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

Indicar el valor de x en cada uno de los siguientes casos.

a) x = ( 2 + 3 ) * 6; b) x = ( 12 + 6 ) / 2 * 3; c) x = ( 2 + 3 ) / 4;d) x = ( 2 + 3 ) % 4 e) x = ( 2 + 3 ) / 4 f) x = ( 3 * 4 + 2 ) * ( 15 / 2) g) x = 2 ^ 2 + 3 – 2 * ( 5 % 2 ) h) x = 3 * 6 * 2 / 8 – 3 * ( 19 / 6)

Page 16: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

Realizar el siguiente cálculo respetando prioridades.

a) 4 + 2 * 5 b) 23 * 2 / 5 c) 46 / 5 d) 3 + 5 * (10 - (2 + 4)) e) 3 + 5 * (10 - 6)f) 3.5 + 5.09 - 140 / 40 g) 3.5 + 5.09 - 3.5 h) 2.1* (1.5 + 3.0 * 4.1)

Page 17: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

Reconozca el tipo de datos más apropiado para los siguientes casos:

1. La edad de una persona. 2. La distancia entre dos puntos. 3. El color de un vehículo. 4. La cantidad de kilos que pesa una bolsa de fruta. 5. El estado de un interruptor. 6. La raza de un animal 7. El nombre de una persona. 8. La cantidad de ruedas de un camión 9. El tipo de licencia que tiene un conductor. 10. El valor de pi

Page 18: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

Expresar en formato computacional utilizando los operadores aritméticos las siguientes expresiones.

Page 19: Fundamentos de Programación Tipos de Datos en Java

Conversión entre tipos.

En Java existen dos tipos de conversiones, la implícita y explicita.

La implícita es aquella que no necesita de alguna intervención por parte del programador para que se lleve a cabo, siendo Java el encargado de realizarla. El ejemplo más común es la operación aritmética de dos tipos de datos distintos, ¿en una variable de qué tipo debo almacenar el resultado entre la suma entre un float y un double?

Page 20: Fundamentos de Programación Tipos de Datos en Java

Conversión entre tipos.

Java siempre dará como resultado el tipo más grande, con ello se asegura de que no exista perdida de precisión en el resultado.

La conversión implícita es aplicada en la dirección de izquierda a derecha entre los datos presentados en el siguiente diagrama, lo que significa que un byte, puede almacenarse en una variable de tipo short o char o cualquiera de las 3 puede almacenarse en un int.

Page 21: Fundamentos de Programación Tipos de Datos en Java

Conversión entre tipos.

La conversión explícita o también conocida como cast consiste en forzar la conversión entre un tipo de dato a cualquier otro (excepto desde booleanos a enteros o reales), la sintaxis para realizar una conversión explicita es la siguiente:

(Tipo destino) expresión o variable A=(int)promedio;

Page 22: Fundamentos de Programación Tipos de Datos en Java

Conversión entre tipos.

En el siguiente ejemplo, se convierte una expresión que da como resultado un float (debido a que es más grande que un short y un long) en un entero, dando como resultado el valor de 3.

Page 23: Fundamentos de Programación Tipos de Datos en Java

Conversión entre tipos.

Muchas veces se piensa que el resultado es 4, debido a que la suma de las tres variables da en realidad 3.8f sin embargo convertir este resultado a un entero no implica una aproximación, sino que sólo tomar la parte entera del valor resultante (también conocido como truncar datos)

Page 24: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

Las variables cuando son declaradas, tienen lo que se conoce como un ámbito, el cual define las fronteras dentro de las cuales las variables pueden ser utilizadas.

Tradicionalmente la programación estructurada tiene dos niveles de visibilidad distintos: las variables locales y globales, sin embargo en la programación orientada a objetos el ámbito de una variable dentro de una clase es algo más complejo.

Las variables siempre deben ir dentro de una estructura que los contenga, para cada estructura existe un inicio y cierre de bloque que la delimita.

Page 25: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

Como ejemplo la siguiente imagen muestra una clase con su respectivo inicio y cierre de bloque.

public class Persona{

}

Page 26: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

La clase Persona posee además un comportamiento llamado correr y descansar, los cuales también tienen limitado su bloque. Podemos decir entonces que la clase Persona contiene dentro un comportamiento llamado correr y descansar.

public class Persona{public void correr(){}

public void descansar(){}

}

Page 27: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

En este caso, la variable cansancio es una variable de instancia debido a que está definida dentro de la clase, pero fuera de sus comportamientos, por ende los métodos descansar y correr (que también son parte de la clase) tienen visibilidad sobre cansancio, aumentando en este caso su valor al correr y disminuyéndola al descansar.

Page 28: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

public class Persona{private int cansancio=0;

public void correr(){cansancio = cansancio + 1;

}

public void descansar(){cansancio = cansancio – 1;

}}

Page 29: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

El ámbito de una variable siempre dependerá de del lugar donde se produzca su declaración, por ejemplo, ya vimos que si declaramos la variable dentro de los bloques que limitan la clase persona, pero fuera de correr o descansar, la variable se denomina una variable de instancia y está disponible para todos los métodos que la clase contenga.

Page 30: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

En el siguiente ejemplo la variable cansancio es ahora una variable declarada dentro del comportamiento correr, esto se denomina variable local del método.

Para este caso la visibilidad de dicha variable son los límites donde fue declarada, vale decir el inicio y bloque de correr, el siguiente ejemplo causa un error debido a que descansar no tiene una visibilidad sobre la variable cansancio.

Page 31: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

public class Persona{

public void correr(){int cansancio=0;cansancio = cansancio + 1;

}

public void descansar(){

cansancio = cansancio – 1; => ERROR!!!}

}

Page 32: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

IMPORTANTE.

Las variables de instancia son capaces de mantener el valor durante toda la vida de un objeto, sin embargo las declaradas dentro de un comportamiento son creadas, utilizadas y eliminadas al finalizar la ejecución del comportamiento que la contiene.

Page 33: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

También es posible crear límites dentro de los comportamientos correr, si bien la técnica que se presenta en el siguiente no es muy común, es reconocida por el lenguaje Java.

public class Persona{public void correr(){

{int a;

}int a;

}}

Page 34: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

Esto tiene un error:

public class Persona{public void descansar(){

int a;{

int a;}

}}

Page 35: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

En el segmento de código anterior se muestran dos casos a considerar. En el interior del método correr existe una delimitación dentro que contiene la declaración de una variable entera cuyo identificador es “a”, sin embargo al terminar el límite donde fue declarada la variable ha vuelto a ser declarada, a primera vista da la idea de que correr tiene dos variables llamadas “a”, pero sabemos que eso es imposible. Recordemos que el identificador de una variable debe ser único en un mismo ámbito, lo que en realidad sucede es que la variable que se declara primero tiene una vida útil desde que se declara hasta el cierre de bloque en el que fue declarada, por ende al ser declarada la segunda variable llamada “a”, la primera ya ha sido eliminada.

Page 36: Fundamentos de Programación Tipos de Datos en Java

Vida y ámbito de una variable

En descansar en cambio, se produce un error debido a que se declara primero una variable entera dentro de los límites del comportamiento descansar, lo que provoca que también esté disponible para el ámbito que existe en el interior del método, por lo tanto, en el ámbito interior, no es posible declarar la variable entera con el identificador “a”, debido a que ya existe en él.

Page 37: Fundamentos de Programación Tipos de Datos en Java

Operadores Aritméticos.

Los operadores aritméticos son aquellos que permiten realizar operaciones matemáticas y son:

Page 38: Fundamentos de Programación Tipos de Datos en Java

Operadores Aritméticos.

El siguiente ejemplo muestra una operatoria aritmética que incluye una conversión explicita cuyo resultado es 4:

long resultado = ( long ) ( (8%3) * 2.1);

Page 39: Fundamentos de Programación Tipos de Datos en Java

Operadores unarios y de auto asignación

Este tipo de operadores son una forma reducida de utilizar los operadores aritméticos tradicionales.

Page 40: Fundamentos de Programación Tipos de Datos en Java

Operadores unarios y de auto asignación

Debes prestar especial atención cuando uses los operadores -- y ++ dentro de una expresión aritmética, debido a que el orden en el que se utilizan cambia el resultado de la operación. -- y ++ pueden ser utilizados como sufijos o como prefijos, lo que implica la jerarquía con la que se ejecuta, por ejemplo, en este caso ++ está antes de la variable “a” lo que implica que previo a cualquier operación que vaya ejecutarse sobre él la prioridad es incrementarlo en 1, siendo el resultado para este caso igual a 6 dado que a es 1 antes de ejecutar la suma.

Page 41: Fundamentos de Programación Tipos de Datos en Java

Operadores Lógicos

Relacionales Se usan para formar expresiones booleanas, es decir expresiones que al ser evaluadas producen un valor booleano: verdadero o falso. Se utilizan para establecer una relación entre dos.

Page 42: Fundamentos de Programación Tipos de Datos en Java

Operadores Lógicos

Relacionales (continuación) Cuando la comparación se hace con datos alfanuméricos, opera de acuerdo a las siguientes reglas: • Se compara uno a uno de izquierda a derecha. • Si son de diferente longitud pero exactamente iguales hasta el

último carácter del más corto, entonces el más corto es el menor.

• Sólo son iguales dos datos alfanuméricos si son iguales su contenido y su longitud.

• Las letras minúsculas tienen mayor valor que las mayúsculas. (tabla ascii)

Page 43: Fundamentos de Programación Tipos de Datos en Java

Operadores Lógicos

Booleanos: Combinan sus operandos de acuerdo al álgebra de Boole para producir un nuevo valor que se convierte en el valor de la expresión.

||OR u O: es un operador binario, afecta a dos operadores. La expresión que forma es verdadera cuando al menos uno de sus operandos es verdadero. Es un operador de disyunción (suma lógica). Ejemplo: estudiamos o vamos al estadio

Page 44: Fundamentos de Programación Tipos de Datos en Java

Operadores Lógicos

&&AND o Y. También es un operador binario. La expresión formada es cierta cuando ambos operadores son ciertos al mismo tiempo. Es el operador lógico de conjunción (producto lógico) Ejemplo: si es verano y hace calor vamos a la playa.

! NOT o NO. Es un operador unario, afecta a un solo operando. Cambia el estado lógico de la expresión (negación); si es verdadera la transforma en falsa y al revés. Ejemplo: no es verano.

El orden de prioridad de estos operadores es: !, && y ||.

Page 45: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 1. Indicar si son ciertas o falsas las expresiones a) “12” + “12” = “24”b) “12” + “12” = “1212”c) “hola” = “hola”d) “hola” = “hola ”e) 12 + 12 = 24f) verdadero and verdaderog) not falsoh) (verdadero and verdadero) or falsoi) (falso or falso) and falsoj) not (verdadero and falso)

Page 46: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 2. Resuelva las siguientes concatenaciones:

a) “12” + “12”b) “El resultado ” + “es”c) “Método”+”lógico”d) “123”+”.24-“+”A”

Page 47: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 3. Resuelva las siguientes concatenaciones:

a) “12” + “12”b) “El resultado ” + “es”c) “Método”+”lógico”d) “123”+”.24-“+”A”

Page 48: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 4. Si a = 10, b = 20, c = 30, entonces:

1. (a + b) > c 2. (a – b) < c 3. (a – b) = c 4. (a * b) != c

Page 49: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 5. Calcular el valor de las siguientes expresiones aritméticas: a) 21 % 7 b) 9/2+15 % 2 c) (3+6)/2+1.5 d) 32/3 - Math.pow(2,2) e) 2*3+5*6/2*3 f) Math.pow ( (25-7*3) ,3) / 4 * 5 g) 10+38/(14-(10-12/(2*3)))

Page 50: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 6. Calcular el resultado de las siguientes expresiones lógicas.

a) ! (5>6) && 7<=4 b) 7>4 && 5<=5 || 4=5 c) ! (7=7) && (7>=8 || 8=6) d) (5+2)<=5 && 3*2==5 or 7<=2*2 or 2*2<=(2+2) e) (! (14/2>8) || 5>5) && (5<=27/3 || 5+3<=3/2) f) (3+5*2)==12/3 && ((5+3)==18/9 || 10/2<=9) || !(9>=2)

Page 51: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 7. Expresar el resultado de las siguientes expresiones:

a) "PEDRO " + "GOMEZ " b) "GARCIA " + " - GONZALEZ " c) "CALLE- " + "-MAYOR " d) “12.465”+”.450”+”-k”

Page 52: Fundamentos de Programación Tipos de Datos en Java

Ejercicios.

PARTE 8. Escriba los siguientes intervalos numéricos en sus correspondientes intervalos lógicos:

a) [5,15]b) ]120,200]c) [0,50[d) ]15,30[e) ]-∞,15] and [30, ∞+[� �