PDF de programación - Tema 3: Tipos y expresiones simples

<<>>
Imágen de pdf Tema 3: Tipos y expresiones simples

Tema 3: Tipos y expresiones simplesgráfica de visualizaciones

Publicado el 15 de Agosto del 2019
760 visualizaciones desde el 15 de Agosto del 2019
4,1 MB
50 paginas
Programación

Tema 3: Tipos y expresiones

simples

Programación DIT-UPM

1

Contenidos
! 1. Tipos primitivos: números enteros, números

reales, booleanos, caracteres

! 2. Expresiones simples
! 3. Arrays
! 4. Campos (atributos)

Programación DIT-UPM

2

Algoritmos y estructuras de datos

! Los lenguajes de programación permiten

representar datos
" representación de la información
" cómo los llamamos
" cómo son (estructura)
" qué se puede hacer con ellos

! Los lenguajes de programación permiten definir

los algoritmos
" qué le hacemos a los datos
" en qué orden (cuándo se lo hacemos)
" cuántas veces

Programación DIT-UPM

3

Tipos de datos primitivos
! Las clases nos permiten crear nuevos tipos de

datos

! Podemos crear nuevas clases a partir de otras

clases (composición-agregación)
" Reutilizamos la biblioteca

! Pero … ¿Cuáles son los datos simples a partir
de los que creamos las clases más sencillas?
" Los tipos primitivos de datos son tipos básicos con

operaciones asociadas

" Datos con tipo primitivo no son objetos

Programación DIT-UPM

4

Tipos y valores primitivos
! Cada tipo primitivo tiene asociado un rango de
valores: enteros, reales, {true, false}, caracteres
" Y un conjunto de operadores (+,-,&,|, …)

! Podemos representar valores mediante literales

(1, ‘a’, 2.0, true), variables o expresiones

! Las variables permiten almacenar información

" Tienen asociado un tipo (primitivo o de clase)
" Variables de campo (atributo), variables locales y

parámetros

" Podemos cambiar su valor tantas veces queramos
" Solo podemos acceder (modificar o consultar) a ellas

en su ámbito

Programación DIT-UPM

5

Tipos primitivos en Java

! Java incluye tipos primitivos para representar

" Caracteres
" Enteros (valores enteros con signo)
" Reales (racionales e irracionales con parte decimal)
" Lógicos (verdadero, falso)

! Hay varios tipos primitivos para representar
enteros y reales. Porqué varios tipos para el
mismo tipo de número?
" ocupan más o menos memoria
" permiten representar mayor o menor rango de

valores

Programación DIT-UPM

6

Enteros
!  Hay cuatro tipos primitivos para representar enteros:

int, long, short y byte

!  Los literales son los mismos para todos ellos:

… -3, -2, -1, 0, 1, 2, 3 …

Entero

int

Bits
32

short

long

byte

16

64

8

Mínimo

Integer.MIN_VALUE
-231 (- 2147483658)
Short.MIN_VALUE

-215 (-32768)

Long.MIN_VALUE

-263 (-9223372036854775808)

Byte.MIN_VALUE

-27 (-128)

Programación DIT-UPM

Máximo

Integer.MAX_VALUE
231-1 (2147483657)
Short.MAX_VALUE
215-1 (32767)
Long.MAX_VALUE
263-1 (9223372036854775807)
Byte.MAX_VALUE

27-1 (127)

7

Literales Enteros

! Literales de números enteros:

" decimales:

" hexadecimales:
" octales:

" Un literal terminado en L es un entero long: 7L (7 en

53, 2300, -7, 0
0x35
065

64 bits)

! no son enteros válidos:

" 12,34
" 45.67
" 13E5

Programación DIT-UPM

8

Operadores de Enteros

! Los operadores de los enteros son:

" Unarios aritméticos (preceden a la expresión):
" Binarios aritméticos (operan sobre sus operandos a

#  - invierte signo del entero

izquierda y derecha):
#  +, - Suma y resta
#  * Multiplicación
#  / división que devuelve enteros 6 / 7 == 0, 15 / 4 == 3
#  % módulo (el resto cuando los números son positivos)

x % y == x - (x / y) * y

" ++, -- pre/post incremento/decremento
" Binarios relacionales (comparan valores de las

expresiones a izquierda y derecha):
#  >, >=, <, <= Menor, menor o igual, mayor, mayor o igual
#  ==, != igual, distinto

Programación DIT-UPM

9

Reales

! Número reales en coma flotante (mantisa y
! Número limitado de cifras significativas y de

exponente): double, float

exponente

Real

Bits

Mínimo

float
double

32
64

Menor Constante

Representable
Float.MIN_VALUE
Double.MIN_VALUE

Máximo

Mayor Constante
Representable
Float.MAX_VALUE
Double.MAX_VALUE

Programación DIT-UPM

10

Literales de Reales

! Entero, coma y decimales:
" …-2.0, -1.0, 0.0, 1.0, 2.0, …

! Notación científica: mantisa y exponente:

! Terminando en D o F decimos explícitamente si

" 26.77e3

es float o double

Programación DIT-UPM

11

Operadores de Reales
! Los operadores son los mismos que los enteros

pero admiten/devuelven reales
" Unarios aritméticos: -
" Binarios aritméticos: +, -, *, /
" Binarios relacionales: >, >=, <, <=, ==, !=

#  0.0 == 0.0 es true, pero en general == y != nos puede dar

resultados no esperados

#  Por ejemplo, prueba en scapbook que da false!:
float x = 1.1F; double y = 1.1D;
double z = 0.0D; boolean cero;
cero = (x - y) == z; // cero pasa a valer false
cero = 0.0 == 0.0; // cero pasa a valer true

Programación DIT-UPM

12

Lógicos

! Tipo primitivo para valores lógicos: boolean
! Los literales: true, false
! Operadores sobre booleanos (son el resultado

de operadores relacionales):
" Unarios: ! negación
" Binarios:

#  x && y: para que sea true, x e y deben ser true

•  Si x es false y no se evalúa

#  x || y: será true si cualquiera de las dos (x o y) es true

•  Si x es true y no se evalúa

Programación DIT-UPM

13

Caracteres

! Tipo primitivo para valores carácter: char

" Un único carácter en estándar Unicode 2.0 (16 bits)
" ASCII
! Literales:

" ‘a’ ‘j’ ‘\n’ ‘\t’ ‘\r’ ‘\\’
" 0u0020

! Operadores:

" Binarios relacionales: >, >=, <, <=, ==, !=

#  Los caracteres están ordenados según Unicode:

• 

‘0’, ‘1’, …, ‘9’, … ‘a’, ‘b’ … ‘z’, ‘A’, ‘B’, … ‘Z’

" Muchas operaciones en clase (java.lang) Character

Programación DIT-UPM

14

Caracteres
! String es una clase para representar cadenas

de caracteres. Es una clase, no un primitivo
" Pero tiene excepciones respecto otras clases

! Literales (una excepción; las clases no tienen

literales)
" "a", "Hola que tal“
" Un literal puede ser tratado como una instancia de la
clase String. (por ejemplo "sss".compareTo("sss"))

! Caracteres de escape
! Operadores: métodos de la clase String y +

Programación DIT-UPM

15

Literales de Caracteres y Cadenas
! Caracteres:
" á´ ´Ñ´ ´?´

! Cadenas de caracteres (strings):

" ”Hola a todos”

" ”esto es una cadena”
" ”dijo Ádios´ y se fué” -> dijo ’Adios’ y se fué
" ”qué \”raro\” es esto”

-> Hola a todos
-> esto es una cadena

-> qué ”raro” es esto

String miCadena = "hola";

Programación DIT-UPM

16

Enumerados

!  Algunas veces queremos un tipo de datos con un
conjunto de valores limitado, concreto y del que
describimos los literales

!  Un enumerado (se declaran con “enum”), es un
conjunto de literales que representan los posibles
valores del tipo
enum Estaciones {INVIERNO,PRIMAVERA,VERANO,OTONO}

!  Cuando queramos usar algunos de los literales de

enumerado lo haremos:
Estaciones.INVIERNO
con class

!  enum define nuevos tipos de datos como lo hacemos

Programación DIT-UPM

Tipos simples vs. Tipos compuestos
!  int,short,long,byte,double,float, char,boolean son

tipos primitivos
"  Las variables de esos tipo sólo almacenan un valor simple
"  Se representan con 8..64 bits
"  Se encuentran siempre contenidos dentro de un objeto, o están entre

los parámetros y variables locales de un método activo

!  String y Enumerados son objetos (compuestos) pero el lenguaje

soporta algunos extras (p.e. literales, +)

!  El resto de los tipos (compuestos) son clases:

"  Las variables de tipo compuesto referencian objetos

#  Para inicializarlas hay que usar new, o copiar otra referencia

"  Un objeto es una estructura compleja. Incluye bastante información
(además de los datos): referencia a la clase, identificador de objeto,
monitor …

Programación DIT-UPM

18

Contenidos
! 1. Tipos primitivos: números enteros, números

reales, booleanos, caracteres

! 2. Expresiones simples
! 3. Arrays
! 4. Campos (atributos)

Programación DIT-UPM

19

Expresiones y precedencia operadores

! Una expresión permite realizar múltiples

operaciones simples o complejas
" (9.0/5.0) * g + 32.0

! Un operando puede ser:

" Literal
" Variable (campo, parámetro, variable local)
" Resultado de una llamada a método que devuelve un
resultado compatible con los operandos del operador

" El resultado de una expresión

! Operadores de los tipos primitivos y de String

Programación DIT-UPM

20

Expresiones y precedencia operadores

! Una expresión con varios operadores se ejecuta

con el siguiente orden de precedencia:
" Operadores unarios y llamadas a método, de

izquierda a derecha

" Operadores multiplicación y división de izquierda a

derecha

" Operadores de suma y resta de izquierda a derecha
" Operadores de relación
" Operadores de asignación

! Para fijar nuestro orden deseado (o para hacer
expresiones más claras) usaremos paréntesis
-1 + 2 * (2 - 4 + 3) / 2

Programación DIT-UPM

21

Conversiones

! Todos los operandos y parámetros tienen un

tipo que debemos respetar

! Algunas veces queremos usar un valor que no
es del tipo correcto (por ejemplo sumar enteros
y reales)

! Conversión de tipos:

" Implícita (definida en el lenguaje)
" Explícita (casting o promoción), forzada por el

programador

Programación DIT-UPM

22

Conversiones implícitas

! 5.0 / 4 -> 1.25
! El 4 se convierte “automáticamente” en 4.0 para

poder dividir

! La promoción tiene mayor prioridad

" (float) 5 / 4 -> 1.25 (formato float)
" El 5 se convierte por la promoción forzada a 5.0, el 4

se convierte “automáticamente”

Programación DIT-UPM

23

Conversiones implícitas II
!  Si se mezclan cantidades numéricas de diferentes tipos,
se convierten automáticamente al tipo en el que seguro
que se puede representar

!  ¡Se puede perder información!
!  Sólo se aplica a tipos primitivos

double

float

long

int

short

byte

Programación DIT-UPM

24

Conversiones implícitas III
  • Links de descarga
http://lwp-l.com/pdf16462

Comentarios de: Tema 3: Tipos y expresiones simples (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad