capitulo 4 tipos de datos

45
Programación I Ing. Verónica Mora Universidad de Cuenca 1

Upload: josue-moreno

Post on 17-Dec-2015

218 views

Category:

Documents


1 download

DESCRIPTION

tipos de datos que se usan en programacion I

TRANSCRIPT

  • 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