Upload
josue-moreno
View
219
Download
1
Embed Size (px)
DESCRIPTION
tipos de datos que se usan en programacion I
Citation preview
Programacin I Ing. Vernica Mora Universidad de Cuenca 1
CAPTULO 4 TIPOS DE DATOS
2
Objetivos de hoy: Reforzar los conceptos previos acerca de tipos de datos
Utilizar funciones predefinidas de conversin de datos
Introducir el concepto de funcin
Desarrollar ejercicios de mayor complejidad
Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
CAPTULO 4 NUMRICOS
3 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Tipos de datos numricos
En Java tendremos los siguientes tipos de datos numricos:
CAPTULO 4 NUMRICOS
4 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Operadores aritmticos en java
CAPTULO 4 NUMRICOS
5 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Operadores unarios:
Solamente necesitan un operando; realizan diferentes operaciones como: incrementar o decrementar un valor en una unidad negar una expresin invertir el valor de un booleano
Operador Nombre Descripcin
+ Operador unario ms indica un valor positivo (sin embargo los nmero son positivos sin el operador)
- Operador unario menos niega una expresin
++ Operador de incremento incrementa un valor en 1
-- Operador de decremento decrementa un valor en 1
! Operador de complemento lgico invierte el valor de un booleano
CAPTULO 4 NUMRICOS
6 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Ejemplo con operadores unarios:
class DemostracionUnario { public static void main(String[] args){ int result = +1; // result es ahora 1 System.out.println(result); result--; // result es ahora 0 System.out.println(result); result++; // result es ahora 1 System.out.println(result); result = -result; // result es ahora -1 System.out.println(result); boolean success = false; System.out.println(success); // falso/false System.out.println(!success); // verdadero/true }
CAPTULO 4 NUMRICOS
7 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Los operadores de incremento y decremento se pueden aplicar delante (prefix) o detrs (postfix) del operando.
Segn esto entonces:
result++ y ++result dan como resultado: result ser incrementado en uno
Diferencia:
versin prefix (++result) evala segn el valor incrementado mientras que:
versin postfix (result++) evala segn el valor original
La forma que elija puede influir significativamente en el resultado
CAPTULO 4 NUMRICOS
8 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Ejemplo:
class PrePostDemo { public static void main(String[] args){ int i = 3; i++; System.out.println(i); // "4" ++i; System.out.println(i); // "5" System.out.println(++i); // "6" System.out.println(i++); // "6" System.out.println(i); // "7" } }
CAPTULO 4 NUMRICOS
9 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Precedencia de operadores:
CAPTULO 4 NUMRICOS
10 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Ejemplos:
Qu resultado nos da? int j = 1 + 3 * 4; resultado j = 13
int j = 1 + 3 4; resultado j= 0
int h = (1 + 3) * 4; resultado h = 16
CAPTULO 4 NUMRICOS
11 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Ejemplos:
Qu resultado nos da? int x = -3 + 2 * 4 12 / 6 + 5 ; x = -3 + 8 2 + 5
resultado x=8
int y = -3 + 2 * (14 2) / 6 + 5 ; y = -3 + 2 * 12/6 +5 resultado = 6
CAPTULO 4 NUMRICOS
12 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
/
CAPTULO 4 NUMRICOS
13 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Qu resultado da evaluar las siguientes expresiones?. Hacer los clculos a mano, tomando en cuenta la precedencia de los operadores.
a) int i = 10; int n = i++%5; Resultado de i y de n es = b) X = 7 % 2
c) X = 8 % 3 d) int x=5, y=5, z; z=x++; // z vale ?, x vale ? e) z=++y; // z vale ? y vale ?
f) int i = 1; System.out.println(i); System.out.println (++i); System.out.println (i); g) int i = 1; System.out.println(i); System.out.println (i++); System.out.println (i);
CAPTULO 4 LGICOS
14 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
CAPTULO 4 LGICOS
15 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
CAPTULO 4 LGICOS
16 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Un dato lgico tambin puede asignarse a una variable, como ocurre con los datos numricos:
boolean boolVar; boolVar = true; System.out.println("boolVar = " + boolVar); boolVar = false; System.out.println("boolVar = " + boolVar);
Resultado: boolVar = true boolVar = false
CAPTULO 4 LGICOS
17 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Los datos lgicos tienen su principal razn de dar la posibilidad de evaluar datos.
Por ello van ligados a los operadores de comparacin, que devuelven un valor de tipo lgico:
boolean boolVar; boolVar = (2 < 3); System.out.println("2 < 3? Answer is " + boolVar); boolVar = (4 == 5); System.out.println("4 == 5? Answer is " + boolVar);
Resultado 2 < 3? Answer is true 4 == 5? Answer is false
CAPTULO 4 LGICOS
18 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
A continuacin se muestran los operadores de comparacin o relacionales de java:
CAPTULO 4 LGICOS
19 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Orden de precedencia de los operadores en java:
La asociatividad de los operadores indica cmo se evalan las expresiones. Ejemplo: not p se evala p y despus se aplica la
negacin de p p and q se evala p y despus se evala
p and q not p or q se evala (not p) or q ya que
el operador not tiene ms prioridad que el operador or
CAPTULO 4 LGICOS
20 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
EJERCICIOS Dadas las variables de tipo int con valores A = 5, B = 3, C = -12 indicar si la evaluacin de estas expresiones dara como resultado verdadero o falso: a) A > 3 b) A > C c) A < C d) B < C e) B != C f) A == 3 g) A * B == 15 h) A * B == -30 i) C / B < A j) C / B == -10 k) C / B == -4 l) A + B + C == 5 m) (A+B == 8) && (A-B == 2) n ) (A+B == 8) || (A-B == 6) o) A > 3 && B > 3 && C < 3 p ) A > 3 && B >= 3 && C < -3
a) verdadero b) verdadero c) Falso d) Falso e) Verdadero f) Falso g) Verdadero h) Falso i) Verdadero j) Falso k) Verdadero l) Falso m) Verdadero n) Verdadero o) Falso p) Verdadero
CAPTULO 4 LGICOS
21 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Todos los operadores vistos hasta ahora:
CAPTULO 4 CADENA
22 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
CAPTULO 4 CADENA
23 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Los operadores relacionales , =, ==, != son usados tambin para comparar caracteres, el resultado de cualquiera de ellos es un valor de tipo de dato lgico
Cdigo Resultado
System.out.println(a == a) True
System.out.println(a > c) False
System.out.println(5 < a) True
System.out.println(X > 5) True
System.out.println(5 == 5) False
System.out.println(a != a) False
El operador .equals() permite comparar los valores de las cadenas, mientras que el operador == compara a los objetos
String miCadena1 = new String (abc); String miCadena2 = new String (abc);
Cdigo Resultado
System.out.println(miCadena1 == miCadena2)
False
System.out.println(miCadena1.equals( miCadena2))
True
CAPTULO 4 STRING
24 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Una cadena es una secuencia de caracteres (letras, nmeros, espacios, marcas de puntuacin, etc.).
Java tiene una clase incorporada al paquete java.lang que encapsula las estructuras de datos de una cadena y se llama String (la cual se utiliza cuando se trabaja con cadenas que no pueden cambiar)
Existe otra clase gemela de String que se llama StringBuffer (la cual se utiliza para crear cadenas que pueden ser manipuladas despus de ser creadas)
Ejemplo: StringBuffer sb = new StringBuffer(El auto daado!"); sb.insert(8, rojo est "); System.out.println(sb.toString());
El ejemplo anterior imprimira: El auto rojo est daado!
Recomendacin:
Utilizar los Strings son ms econmicos (utilizan menos memoria) que los StringBuffers
CAPTULO 4 STRING
25 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
En java es importante distinguir dos trminos para definir cadenas
Cadena: Una instancia de la clase String. Este puede estar asignado a una variable una constante o no Cadena Annima: Son cadenas no asociadas a ningn objeto es decir se crean, se usan y al finalizar se descartan
la cadena Hola Mundo se crea y utiliza en el
System.out.println y luego se descarta
CAPTULO 4 STRING
26 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Es especialmente interesante sealar que el operador +, con el tipo de datos cadena, sirve para concatenacin:
Concatenacin de constantes
CAPTULO 4 STRING
27 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
Concatenacin cadenas annimas
Concatenacin de variables finales
CAPTULO 4 COMENTARIOS
28 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
En el lenguaje Java existen tres formas de poner comentarios:
1 Cuando la lnea de comentario ocupa una sola lnea de cdigo
Deber anteponer dos barras inclinadas (//) antes del texto.
2
Poner un comentario a ms de una lnea
Empezar por una barra inclinada y un asterisco (/*) y finalizar a la inversa, asterisco y barra inclinada (*/)
3
Los comentarios para la herramienta de documentacin JavaDoc
Antes del comentario pondremos una barra inclinada y dos asteriscos (/**) y finaliza con un asterisco y una barra inclinada (*/)
CAPTULO 4 COMENTARIOS
29 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
CAPTULO 4 Mtodos predefinidos
30 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Funciones
predefinidas
El mtodo valueOf() permite convertir el dato establecido en String.
La funcin float permite convertir a entero de punto flotante un carcter o un nmero entero
CAPTULO 4 Mtodos predefinidos
31 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
En Java cada una de sus libreras contienen diferentes mtodos que nos permiten realizar operaciones para facilitar la programacin .
Por ejemplo dentro de la clase String existen algunos mtodos que son comnmente utilizados y que a continuacin revisaremos:
Mtodo Length: retorna un valor entero que indica la longitud (cantidad de caracteres) de la cadena
CAPTULO 4 Mtodos predefinidos
32 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
El mtodo charAt(indice): Devuelve el carcter de la posicin que se especifique. En un String cada carcter tiene una posicin, iniciando desde la posicin 0
El mtodo toLowerCase(): Convierte a minsculas los caracteres de una cadena
CAPTULO 4 Mtodos predefinidos
33 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
El mtodo toUpperCase(): Convierte a maysculas los caracteres de una cadena
El mtodo trim(): Elimina los espacios a los extremos de la cadena
CAPTULO 4 Mtodos predefinidos
34 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
El mtodo contains(): Retorna falso (false) o verdadero (true) indicando si una cadena se encuentra o no dentro de la otra
El mtodo equals(): Retorna falso (false) o verdadero (true) indicando si una cadena es o no igual a la otra, diferencia maysculas de minsculas, por lo tanto a es diferente de A
CAPTULO 4 Mtodos predefinidos
35 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
El mtodo equalsIngnoreCase(): Retorna falso (false) o verdadero (true) indicando si una cadena es o no igual a la otra, por lo tanto a es igual a A
El mtodo substring(): Retorna una parte de una cadena, de acuerdo a las posiciones que se especifiquen. Si solo se especifica una sola posicin se obtendr la subcadena desde esa posicin hasta el final. Al especificar 2 posiciones se obtendr la subcadena que se encuentra en esas dos posiciones.
CAPTULO 4 Mtodos predefinidos
36 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
El mtodo indexOf(): Retorna la posicin de la primera ocurrencia de bsqueda encontrada de izquierda a derecha en la cadena
El mtodo lastindexOf(): Retorna la posicin de la primera ocurrencia de bsqueda encontrada de derecha a izquierda en la cadena
CAPTULO 4 Mtodos predefinidos
37 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
En la web existen varias fuentes acerca de Java, entre ellas para revisar las clases que tiene disponible java y sus mtodos pueden acceder al siguiente link:
http://docs.oracle.com/javase/7/docs/api/
CAPTULO 4 Secuencias de escape
38 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Secuencias de escape: Las secuencias de escape son pequeas constantes que nos brindan una gran utilidad al momento de presentar los datos en consola
Java reconoce algunas secuencias de escape como son:
CAPTULO 4 Imprimir en pantalla
39 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Para imprimir por pantalla se hace uso del objeto System.out, que representa la salida estndar
Tpicamente este objeto se corresponde con la pantalla u otra salida especificada en las variables de entorno del sistema en el que se ejecuta.
Se utiliza el objeto System.out es del tipo java.io.PrintStream que
dispone de algunos mtodos para escribir en pantalla: print println: imprime un salto de lnea al final printf: imprime ajustndose a un determinado formato
CAPTULO 4 Recorrido de una cadena
40 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Para recorrer una cadena se puede utilizar el mtodo length() (el cual devuelve el tamao de la cadena) en conjunto con el mtodo charAt(index)
CAPTULO 4 Mtodos predefinidos
41 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Clase Math
Contiene mtodos que permiten realizar operaciones numricas tales como: Valor absoluto Redondeo Nmeros aleatorios Raz cuadrada Funciones trigonomtricas entre otras
Entre las ms utilizadas tenemos:
CAPTULO 4 Mtodos predefinidos
42 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Mtodo abs(): Retorna el valor absoluto de un nmero especificado
Mtodo ceil(): Retorna el valor redondeado al siguiente entero del nmero doble especificado
CAPTULO 4 Mtodos predefinidos
43 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Mtodo floor(): Retorna el valor redondeado al anterior entero del nmero doble especificado
Mtodo round(): Retorna el valor redondeado del nmero especificado, si el decimal es menor a .5 redondear al anterior entero, si es mayor o igual a .5 redondear al siguiente entero
CAPTULO 4 Mtodos predefinidos
44 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Mtodo random(): Retorna el valor aleatorio entre 0,0 y 1,1
Mtodo max(): Retorna el valor mayor entre dos nmeros
Mtodo min(): Retorna el valor menor entre dos nmeros
CAPTULO 4 Mtodos predefinidos
45 Agenda 1.-
Numricos 2.- Lgicos
3.- Carcter y String
4.- Comentarios
5.- Mtodos predefinidos
Mtodo pow (base, exponente): Retorna el valor de la potencia de un valor base a un valor de exponente.
Mtodo sqrt(): Retorna el valor de la raz cuadrada de un nmero
Mtodo pi: Retorna el valor de pi