Académique Documents
Professionnel Documents
Culture Documents
Programacin
Orientada a Objetos
en Java
Tema 2. PROGRAMACIN
ESTRUCTURADA
Programacin Estructurada 0
NDICE
1. Comentarios
2. Palabras Reservadas
3. Tipos Primitivos
4. Literales de Valores Primitivos
5. Declaracin de Variables
6. Declaracin de Constantes
7. Operadores
8. Expresiones
9. Asignacin
10. Vectores de Tipos Primitivos
11. Matrices de Tipos Primitivos
12. SentenciasProgramacin
de Control Estructurada
del Flujo de Ejecucin1
1. COMENTARIOS
COMENTARIOS :
Una o varias lneas
No se permiten anidamientos
/* Comentario con
mltiples lneas */
Programacin Estructurada 2
2. PALABRAS RESERVADAS
Relacin de palabras reservada:
abstract default goto package this
assert do if private throw
boolean double implements protected throws
break else import public transient
byte enum instanceof return true
case extends int short try
catch false interface static void
char final long strictfp volatile
class finally native super while
const float new switch
continue for null synchronized
Java es un lenguaje case-sensitive (diferencia entre maysculas y minsculas => do Do)
Programacin Estructurada 3
3. TIPOS PRIMITIVOS
DEFINICIN: son conjuntos de valores atmicos.
Programacin Estructurada 5
4. LITERALES DE VALORES
PRIMITIVOS
DEFINICIN: son constantes annimas que cumplen el formato del
tipo primitivo al que pertenecen.
Enteros: se escriben en base decimal, octal o hexadecimal. Son
de tipo int
Ej.: -21 (decimal) 025 (octal)
0x15 (hexadecimal)
Ej.: '\n'
Programacin Estructurada 7
5. DECLARACIN DE VARIABLES
DEFINICIN: son reservas de memoria esttica que puede
almacenar en cada instante uno de los valores de un cierto tipo
primitivo.
<tipo> <variable> [ = <expresin1> ];
Programacin Estructurada 10
7. OPERADORES
Operadores Aritmticos: operan sobre valores numricos del mismo
tipo, y devuelven un valor del tipo de los operandos (menos byte,
short y char, que devuelven int) ;
Operador Uso Descripcin
+ <opI> + <opD> Devuelve la suma de <opI> y <opD>
- <opI> <opD> Devuelve la resta de <opD> de <opI>
* <opI> * <opD> Devuelve el producto de <opI> y <opD>
Devuelve el cociente de <opI> entre
/ <opI> / <opD>
<opD>
Devuelve el resto de <opI> entre
% <opI> % <opD>
<opD>
+ + <op> Devuelve valor de <op>
- <op> Devuelve el valor opuesto de <op>
Programacin Estructurada 11
7. OPERADORES
Operadores Relacionales: operan sobre dos valores del mismo tipo y
devuelven un valor de tipo lgico;
Programacin Estructurada 12
7. OPERADORES
Operadores Lgicos: operan sobre valores lgicos y devuelven un
valor del tipo lgico;
Programacin Estructurada 13
8. EXPRESIONES
DEFINICIN: es un valor o una combinaciones de operandos y
operadores cuya evaluacin devuelve un valor de un tipo primitivo.
Reglas de construccin:
los operandos sern los valores de variables, constantes,
literales o el valor devuelto por otro operador;
cada operador debe acompaarse en tipo, nmero y posicin
de operandos segn su clase, carcter binario o unario, prefijo o
sufijo;
Reglas de evaluacin:
no es recomendable hacer suposiciones sobre el orden de
evaluacin de los operandos, excepto en los operadores && y ||
que evalan primero la parte izquierda;
cuando un operando est situado entre dos operadores, ser
operando de aquel operador de mayor nivel de precedencia y,
en caso de igualdad, por la asociatividad establecida para ese
nivel;
Programacin Estructurada 14
8. EXPRESIONES
Tabla de Precedencia y Asociatividad:
Nivel Tipos de Operadores Asociatividad
Operadores
max Unarios +-! Derecha > Izquierda
Multiplicativos */% Izquierda > Derecha
Aditivos +- Izquierda > Derecha
Relacionales < > <= >= No asociativo
Igualdad == != Izquierda > Derecha
Y Lgico && Izquierda > Derecha
min O Lgico || Izquierda > Derecha
Los parntesis rompen las reglas de precedencia y asociatividad
Programacin Estructurada 15
8. EXPRESIONES
Ej.: int x = 5;
int y = 5;
int z = 5;
boolean expresion = x+5*(2+y)>-z/2==x<y&&x%2==0;
Programacin Estructurada 16
8. EXPRESIONES
Conversin de tipos: Origen Destino
Promocin: byte short, int, long, float, double
transforman un dato de short int, long, float, double
un tipo a otro con el char int1, long1, float1, double1
mismo o mayor espacio int long, float, double
en memoria para long double
almacenar informacin; float double
Contraccin: Origen Destino
transforman un dato de byte char
un tipo a otro con menor short byte, char1
espacio en memoria para char byte1, short1
almacenar informacin int byte, short, char1
con la consecuente long byte, short, char1, int
posible prdida de float byte, short, char1, int, long
informacin; double byte, short, char1, int, long, float
1Programacin Estructurada
cdigo UNICODE.
17
8. EXPRESIONES
Conversin de tipos:
Conversin implcita:
por promocin cuando se combinan dos operandos de distinto
tipo, se convierte el de menor precisin al de mayor precisin;
por promocin cuando se asigna un valor de un tipo de menor
precisin a una variable de mayor precisin;
Conversin explcita:
- por promocin o contraccin a travs del operador de
conversin de tipos (cast), cuyo nivel de precedencia es el de los
operadores unarios;
(<tipo>) <operando>
Ej.: float f = (float) 5.5;
int i = (int) f;
byte b = (byte) (f/2);
Programacin Estructurada 18
9. ASIGNACIN
DEFINICIN: permite almacenar un valor de un tipo sobre una
variable de su mismo tipo.
<variable> = <expresin>;
Ej.: int x = 5;
int y = 8;
int intercambio = x;
x = y;
y = intercambio;
Programacin Estructurada 19
9. ASIGNACIN
Operadores de Incremento/Decremento: operan sobre una variable
de tipo numrico y devuelven un valor del tipo de la variable y su nivel
de precedencia es el de los operadores unarios;
Op. Uso Descripcin
++ <op> ++ Incrementa en 1 el valor de <op>
Devuelve el valor de <op> antes de incrementar
++ ++ <op> Incrementa en 1 el valor de <op>
Devuelve el valor de <op> despus de incrementar
-- <op> -- Decrementa en 1 el valor de <op>
Devuelve el valor de <op> antes de decrementar
-- -- <op> Decrementa en 1 el valor de <op>
Devuelve el valor de <op> despus de decrementar
Programacin Estructurada 22
10. VECTORES DE TIPOS
PRIMITIVOS
Sintaxis b):
new <tipo> [ ] { <expresin1>, , <expresinn> }
Programacin Estructurada 23
10. VECTORES DE TIPOS
PRIMITIVOS
REFERENCIA a un vector de tipos primitivos: es una variable puntero
que alberga la direccin del vector.
Programacin Estructurada 24
10. VECTORES DE TIPOS
PRIMITIVOS
Operadores:
<referenciaV> = <direccinV>: asigna la direccin a la referencia
siendo del mismo tipo;
<direccinV>.length: devuelve la longitud del vector;
<direccinV-I> == <direccinV-D>: determina si dos direcciones a
vectores del mismo tipo son iguales;
<direccinV-I> != <direccinV-D>: determina si dos direcciones a
vectores del mismo tipo son distintas;
<direccinV>[<expresin>]: accede a la variable que ocupa la
posicin dada por la expresin entera, numeradas de 0 al anterior a la
longitud;
Programacin Estructurada 25
10. VECTORES DE TIPOS
PRIMITIVOS
Ej.: int[] enteros = new int[] {3, 2, 1};
int valor = enteros.length - 2;
enteros[0] = enteros[valor] * enteros[2];
// enteros[0] == 2
int[] enteros2 = enteros;
// Las dos variables comparten 3 enteros
enteros = null;
enteros2 = null;1
enteros = new int[33];
boolean prueba = ((enteros == null) ||
(enteros == enteros2));
char[] vocales = 2{'a','e','i','o','u'};
vocales = new char[] {'A','E','I','O','U'};
1 se libera la memoria automticamente cuando ninguna referencia apunta a un vector
2 en una declaracin se puede omitir el tipo del vector
Programacin Estructurada 26
11. MATRICES DE TIPOS
PRIMITIVOS
OPERADOR new:
Sintaxis c):
new <tipo> [ <expresinF> ] [ <expresinC> ]
Programacin Estructurada 27
11. MATRICES DE TIPOS
PRIMITIVOS
Sintaxis d):
new <tipo> [ <expresinF> ] [ ]
donde las expresin F debe devolver un valor de tipo entero que ser
el nmero de filas de la matriz;
null
Programacin Estructurada 28
11. MATRICES DE TIPOS
PRIMITIVOS
Sintaxis e):
new <tipo> [][] { { <expresin11>, , <expresin1c1> },
{ <expresinf1>, , <expresinfcf> }}
1 2 3 4 5
null
-1
Programacin Estructurada 29
11. MATRICES DE TIPOS
PRIMITIVOS
REFERENCIA a una matriz de tipos primitivos: es una variable puntero
que alberga la direccin de un vector de referencias a vectores de
tipos primitivos.
Programacin Estructurada 30
11. MATRICES DE TIPOS
PRIMITIVOS
Operadores:
<referenciaM> = <direccinM>: asigna la direccin a la referencia
siendo del mismo tipo;
<direccinM>.length: devuelve el nmero de filas de la matriz ;
<direccinM-I> == <direccinM-D>: determina si dos direcciones a
matrices del mismo tipo son iguales;
<direccinM-I> != <direccinM-D>: determina si dos direcciones a
matrices del mismo tipo son distintas;
<direccinM>[ <expresin>]: accede a la referencia del vector de tipo
primitivo que ocupa la posicin dada por la expresin entera,
numeradas de 0 al anterior a la longitud;
Programacin Estructurada 31
11. MATRICES DE TIPOS
PRIMITIVOS
Ej.: int[][] matriz = new int[4][5];
int[][] piramide = new int[3][];
piramide[0] = new int[7];
piramide[1] = new int[5];
piramide[2] = new int[3];
matriz[0][0] = piramide[2][2];
matriz = piramide;
// se pierden los 20 primeros enteros
matriz[0] = matriz[2];1
matriz[1] = matriz[2];1
/* piramide y matriz mantienen 3 referencias
a los mismos 3 enteros */
matriz = null;
piramide = null;1
Programacin Estructurada 34
12. SENTENCIAS DE CONTROL
DEL FLUJO DE EJECUCIN
Sentencia Condicional Mltiple:
switch (<expresin>) {
case <constante>:
<sentencia>
[ break; ]
[ default:
<sentencia>
[ break; ] ]
}
la evaluacin de la expresin debe devolver un valor de tipo entero o
carcter Programacin Estructurada 35
12. SENTENCIAS DE CONTROL
DEL FLUJO DE EJECUCIN
Ej.: switch (nota) {
case 0: case 7:
case 1: case 8:
case 2: letra = 'N';
case 3: break;
case 4: case 9:
letra = 'I'; case 10:
break; letra = 'S';
case 5: break;
case 6: default:
letra = 'A'; letra = ' ';
break; break;
}
Programacin Estructurada 36
12. SENTENCIAS DE CONTROL
DEL FLUJO DE EJECUCIN
Sentencia Iterativa Indeterminada 0..N:
while (<expresin>)
<sentencia>
Programacin Estructurada 37
12. SENTENCIAS DE CONTROL
DEL FLUJO DE EJECUCIN
Sentencia Iterativa Indeterminada 1..N:
do {
<sentencia>
} while (<expresin>);
la evaluacin de la expresin debe devolver un valor de tipo lgico;
Ej.: do {
numero -= 10;
} while (numero > 0);
Programacin Estructurada 38
12. SENTENCIAS DE CONTROL
DEL FLUJO DE EJECUCIN
Sentencia Iterativa Determinada:
for (<expresin1>; <expresin2>; <expresin3>)
<sentencia>
la expresin2 debe devolver un valor de tipo lgico;
la expresin1 admite la declaracin de variables locales que se
pueden referenciar dentro del cuerpo del bucle;
Ej.: boolean[] pares = new boolean[10];
for (int i = 0; i < pares.length; i++) {
pares[i] = i % 2 == 0;
}
Programacin Estructurada 39