1. Taller Programación III
Java
Introducción al
Lenguaje de Programación
Java
Profesor: Marcelo Montecinos C.
1
2. Taller Programación III
Java
¿ Por qué JAVA (por qué tan famoso ) ?
Orientado al objeto (tendencia en boga)
Simple (similar a c, sin complejidades)
Multiplataforma (Windows, PowerMac, Unix)
Robusto (hace chequeos, elimina punteros)
Recolección de basura automática
Bibliotecas estándar
Realmente portable en un 100%
Facilidades para programación en redes
Profesor: Marcelo Montecinos C.
2
3. Taller Programación III
Java
Java - Características
Plataforma independiente (portable)
Dinámico (constantemente evolucionando)
Fortalece la seguridad y la portabilidad
Profesor: Marcelo Montecinos C.
3
4. Taller Programación III
Java
JAVA es un lenguaje interpretado
Salida
P1.class del
P1.java
Prog.
Compilador de java (específico x plataforma) javac P1.java
Intérprete de java (específico x plataforma) java P1 (class)
Profesor: Marcelo Montecinos C.
4
5. Taller Programación III
Java
Java - Características
Java -Máquina Virtual (JVM)
JVM
Interpretador
Java
Ambiente Runtime
Sistema Operativo
Hardware
Profesor: Marcelo Montecinos C.
5
6. Taller Programación III
Java
Java - Características
¿Cómo trabaja la tecnología Java?
(Editor de texto)
(Programa traducido
a bytes-code)
¿qué sucede en este paso?
Profesor: Marcelo Montecinos C.
6
7. Taller Programación III
Java
Java - Características
¿Cómo trabaja la tecnología Java?
Profesor: Marcelo Montecinos C.
7
8. Taller Programación III
Java
Estructura de un Programa en Java
// Este es el esqueleto de un programa en Java
class <nombre del Programa>
{ Se utiliza para
abrir un bloque de
instrucciones.
/* Definiciones globales*/
/* Metodo Principal*/
/* Otros Métodos*/
Se utiliza para
} cerrar un bloque
de instrucciones
Profesor: Marcelo Montecinos C.
8
9. Taller Programación III
Java
Estructura de un Programa en Java
Los comentarios en Java pueden hacerse de dos maneras:
Si sólo quiero comentario de una línea coloco // al inicio de es esta
// Este es el esqueleto de un programa en Java
class <nombre del Programa>
{
/* Definiciones globales*/ Si quiero comentario de mas de una línea
coloco /* al inicio del comentario y */ al final
/* Este es el
Método Principal*/
/* Otros Métodos*/
} Profesor: Marcelo Montecinos C.
9
10. Taller Programación III
Java
Estructura de un Programa en Java
// Este es el esqueleto de un programa en Java
Deben seguir las
class <nombre del Programa> convenciones utilizadas en
{ algoritmo.
/* Definiciones globales*/
Aquí se definen las variables que yo
deseo que se puedan utilizar en todo
mi programa.
/* Método Principal*/
Cada aplicación de Java debe tener
un método principal llamado
main, que define donde comienza el
/* Otros Métodos*/ flujo del programa.
} Profesor: Marcelo Montecinos C.
10
11. Taller Programación III
Java
// Este es el esqueleto de un programa en Java
class <nombre del Programa>
{
/* Definiciones globales*/
public static void main (String args[])
{
Todo el código de un
método estará entre la llave
/* Definiciones locales*/ de apertura
... ( { ) y la correspondiente
... llave de cierre ( } ).
/* cuerpo de instrucciones */
...
...
} Sintaxis del método Main
}
Profesor: Marcelo Montecinos C.
11
12. Taller Programación III
Java
La palabra public es un especificador de
acceso. En este caso el main debe ser
// Este es el esqueleto de un programa en Java
declarado public ya que es llamado por
class <nombre del Programa>
{
código que está fuera de su clase, cuando el
/* Definiciones globales*/ programa comienza.
public static void main (String args[])
{ La palabra static permite que main sea
llamado por el intérprete de Java antes de
/* Definiciones locales*/ que se cree cualquier objeto .
...
...
/* cuerpo de instrucciones */ La palabra void indica al compilador que
... main no devuelve ningún valor.
...
}
} String args[], declara una variable args
que es una especie de vector que puede
contener cadenas de caracteres.
Sintaxis del método Main
Profesor: Marcelo Montecinos C.
12
13. Taller Programación III
Java
// Este es el esqueleto de un programa en Java
class <nombre del Programa>
{
/* Definiciones globales*/
public static void main (String args[])
{
/* Definiciones locales*/ Aquí se definen las variables que
... solo voy a utilizar en el método
... principal.
/* cuerpo de instrucciones */
...
... Después de cada instrucción se coloca ;
}
}
Sintaxis del método Main
Profesor: Marcelo Montecinos C.
13
14. Taller Programación III
Java
Ejemplo
// Este programa escribe un texto
class EjemploTexto {
public static void main (String args[])
{
System.out.println(“El que pregunta algo que no
entiende se siente ignorante solo una vez, el que no pregunta
lo que no entiende se sentirá ignorante toda su vida”);
}
}
Profesor: Marcelo Montecinos C.
14
15. Taller Programación III
Java
Salida de datos
Para mostrar un texto por pantalla puedo
hacerlo de dos maneras:
System.out.println (texto);
System.out.print (texto);
Profesor: Marcelo Montecinos C.
15
16. Taller Programación III
Java
Salida por pantalla
import java.io.*;
System.out.println(elementos);
System.out.println();
System.out.print(elementos);
System.out.println(quot;holaquot;); // escribe quot;holaquot;
System.out.println(5); // escribe 5
int i = 5; System.out.println(i) ; // escribe 5;
double d=6.4; System.out.println(d); // escribe 6.4;
double d=6.4; System.out.println(quot;d=quot;+d); // escribe d=6.4;
Profesor: Marcelo Montecinos C.
16
17. Taller Programación III
Java
Un primer programa en JAVA
public class Hello {
public static void main(String args[ ]) {
System.out.println(“Hola Mundo“);
}
}
Todo programa es escrito como el método estático llamado main en una
clase cualquiera
Este método se empieza a ejecutar cuando se invoca el intérprete de java
para una clase dada
args es un arreglo de Strings que contiene los parámetros
con los que fué invocado el programa.
Profesor: Marcelo Montecinos C.
17
18. Taller Programación III
Java
Declaración de Variables
tipo nombre;
tipo nombre1, nombre2, nombre3;
tipo nombre = valor;
Declaración de Constantes:
static final tipo nombre = valor;
Profesor: Marcelo Montecinos C.
18
19. Taller Programación III
Java
Definición de variables
Los datos son almacenados en variables, que se encuentran en la
memoria, formados por dos componentes el nombre que las
identifica y la celda con el valor almacenado.
Memoria
monto 25600.00
carnet 9702634
sexo ‘F’
nombre ‘Pedro Perez’
contador 6
Profesor: Marcelo Montecinos C.
19
20. Taller Programación III
Java
Tipos de datos
4
Integer (enteros) 5
237
Numérico
Floating Point 13.45
(punto flotante)
Profesor: Marcelo Montecinos C.
20
21. Taller Programación III
Java
Tipos de datos
Byte : 8 bits -27 ..... 27 –1
Integer (enteros) Short : 16 bits
Int : 32 bits
Long : 64 bits
Profesor: Marcelo Montecinos C.
21
22. Taller Programación III
Java
Tipos de datos
Float : 32 bits
Floating Point
(punto flotante)
Double : 64 bits
Profesor: Marcelo Montecinos C.
22
23. Taller Programación III
Java
Tipos de datos
Caracteres char : ‘a’, ‘z’, ‘D’, ‘%’, ‘s’,’#’….
Cadenas de String: “Pedro Garcia”
caracteres “Juan Lopez”
”Rojo”
Lógicos boolean: true
false
Profesor: Marcelo Montecinos C.
23
24. Taller Programación III
Java
Tipos primitivos de datos en JAVA
enteros: int, long, short, byte
Const. 1, -1, 1024, 1L
reales: float, double
Const. 1.0, -3.14159, 1.5e4, 1.0f
caracter: char
Const. ‘a’, ‘X’, ‘@’
lógico: boolean
Const. true, false
Constantes de String: “Hola“,“12 de Abril“
Profesor: Marcelo Montecinos C.
24
25. Taller Programación III
Java
Declaración de variables
/* Este programa declara Algunas variables */
class declaraVar {
public static void main (String args[])
{
int x, y;
float z = 3.1416;
double w =3.1415;
boolean bandera = true;
char c;
String str;
String st1 =“María”;
str = “blanco”;
}
} Profesor: Marcelo Montecinos C.
25
26. Taller Programación III
Java
Asignación de valores a variables
Se puede dar valores a las variables en el momento de
su declaración o en una instrucción de asignación
independiente una vez que ha sido declarada.
Se utiliza el signo = en ambos casos.
Ejemplo:
int x =5;
boolean t;
t = true;
Profesor: Marcelo Montecinos C.
26
27. Taller Programación III
Java
Asignación de valores a variables
Las asignaciones también pueden ser expresiones en
notación INFIJA.
Ejemplo:
monto = pvp * cantidad ;
Donde pvp y cantidad deberán ser variables
anteriormente declaradas y con valor previo
asignado.
Profesor: Marcelo Montecinos C.
27
28. Taller Programación III
Java
Asignación de valores a variables
/* Este programa declara Algunas variables */
class declaraVar {
public static void main (String args[])
{
int x, y, z;
x = 2;
y = 4;
z = x * y;
System.out.println(“El valor de z es “ + z);
}
}
Profesor: Marcelo Montecinos C.
28
29. Taller Programación III
Java
Asignación de valores a variables
Algunas de las operaciones a utilizar en la asignación:
() indica prioridad de ejecución
* multiplicación
/ división decimal
+,- suma, resta
Ejemplo:
islv = ( (pvp * cantidad) * porcIslv) ) / 100;
Profesor: Marcelo Montecinos C.
29
30. Taller Programación III
Java
Operadores
Igualdad y desigualdad: == , !=
Comparación: <, <=, >, >=
Suma y resta unarios: +, -
Suma, multiplicación, división y módulo: +, -, *, /, %
Incremento y decremento prefijos y posfijos: ++, --
Desplazamiento con signo y sin signo: <<, >>, >>>
Negación lógica unaria de bits: ~
Lógica de bits: &, |, ^
Lógica booleana: &&, ||
Profesor: Marcelo Montecinos C.
30
31. Taller Programación III
Java
Asignación
Utilización de operadores:
var1 = var2 + var3; // asignar a var1 el valor de var2 + var3
var1 = var2 - ver3; // asignar a var1 el valor de var2 - var3
var1 = var2 * ver3; // asignar a var1 el valor de var2 * var3
var1 = var2 / ver3; // asignar a var1 el valor de var2 / var3
var1 = var2 % ver3; // asignar a var1 el valor de var2 % var3
Asignaciones de incremento
decremento:
variable++; // añadir uno a variable
variable--; // restar uno a varibale
variable += exp; // añadir exp a variable
variable -= exp; // restar exp a variable
Profesor: Marcelo Montecinos C.
31
32. Taller Programación III
Java
Asignación de valores a variables
/* Este programa declara Algunas variables */
class declaraVar {
public static void main (String args[])
{
int x, y, z;
x = 2;
y = 4;
z = (x + y)/ 2;
System.out.println(“El valor de z es “ + z);
}
}
Profesor: Marcelo Montecinos C.
32
33. Taller Programación III
Java
Expresiones
Grupos de Precedencia
Grupo 0: ( )
Grupo 1: ++, --, + (unario), - (unario)
Grupo 2: *, /, %
Grupo 3: +, -, + (concatenación)
Funciones especiales:
Seno x => Math.sin(x)
x2 => Math.pow(x,2)
Math.round(6.6) => 7
Profesor: Marcelo Montecinos C.
33
34. Taller Programación III
Java
Expresiones y asignación
Aritmeticas: suma + 20 * c / (mod % 3)
Relacionales: a > b, b >= c, c != 4, a == 0
De String: “hola “+ nombre + “ hoy es “+
dia + “de”+mes
Casts: (int) pi (pi = 3.1) (int) (Math.random()*100)+1)
Otros: a == 1 ? a+1 : a-1
Asignacion: a = 1;
Asignación como operador: a = b = c = d = 0;
boolean cero = ( b = c - 10) == 0;
Profesor: Marcelo Montecinos C.
34
35. Taller Programación III
Java
Conversiones entre tipos
Asignar una variable a otra cuyo tipo es mayor de
tamaño:
byte => short => int => long => float => double
Para pasar de un tipo a otro menor en tamaño,
tenemos que hacer una conversión explícita de
tipos:º
(tipo)expresion
Profesor: Marcelo Montecinos C.
35
36. Taller Programación III
Java
Conversiones de tipo
Java no reclama si un tipo de menor rango se convierte as uno
de mayor rango.
byte < short < int < long < float < double
Tipo Bits Rango
int 32 -2**31 .. 2**31-1
short 16 -2**15 .. 2**15-1
byte 8 -2**7 .. 2**7-1
long 64 -2**63 .. 2**63-1
float 32 -10**32 .. 10**32
double 64 -10**300 .. 10**300
Profesor: Marcelo Montecinos C.
36
37. Taller Programación III
Java
Ejemplos
int i = 1;
long l = i; //ok
l = 1000000000000;
float f = l; //ok
double d= 1.0e24; int i = d; // Error
float f = 1.0f; int i = f; // Error
short s = i; //Error
double d = 1.0; int i = (int)d; //ok
int i = 256;
byte b = (byte)i; //ok pero b ==0;
Profesor: Marcelo Montecinos C.
37
38. Taller Programación III
Java
Excepciones definidas por el usuario
public class nombre extends Exception {
public nombre() {}
public nombre(String s) { }
}
throw new nombre(“mensaje”);
Profesor: Marcelo Montecinos C.
38
39. Taller Programación III
Java
Ejemplo
public void leeArchivo(String nombre) throws IOException {
BufferedReader fin = new BufferedReader(new FileReader(nombre));
try {
while(true) {
cadena = fin.readLine();
System.out.println(cadena);
}
} catch (EOFException e) {
System.out.println(quot;Fin del archivoquot;);
}
}
Profesor: Marcelo Montecinos C.
39
40. Taller Programación III
Java
Entrada desde teclado
import java.io.*;
BufferedReader entrada = new
BufferedReader(new InputStreamReader(System.in));
String cadena = entrada.readLine();
Profesor: Marcelo Montecinos C.
40
41. Taller Programación III
Java
Lectura de números
int i=Integer.valueOf(in.readLine()).intValue();
double d=Double.valueOf(in.readLine()).doubleValue();
int i=Integer.valueOf(in.readLine().trim()).intValue();
double d=Double.valueOf(in.readLine().trim()).doubleValue();
Profesor: Marcelo Montecinos C.
41
42. Taller Programación III
Java
Lectura de datos
Este programa se encarga de pedir el ingreso de un número, para luego mostrarlo
en pantalla.
/* 1) */ import java.io.*;
/* 2) */ public class LectTecladoApp
/* 3) */ {
/* 4) */ public static void main(String Arg[ ]) throws IOException
/* 5) */ {
/* 6) */ BufferedReader entrada= new BufferedReader(new InputStreamReader(System.in));
/* 7) */ int num;
/* 8) */ System.out.print(quot;Ingrese numero : quot;);
/* 9) */ num = Integer.parseInt(entrada.readLine( ));
/* 10) */ System.out.println(quot;Ud ingreso el numero : quot; + num );
/* 11) */ }
/* 12) */ } Profesor: Marcelo Montecinos C.
42
43. Taller Programación III
Java
1) Se invoca a la librería de entrada y salida io
(Input,Output), para usar en nuestro programa todas sus
clases disponibles.
import : Indica que se tienen importar (incluir) cierta
librería.
java.io : Acceso a la librería io.
java.io.* : Selecciona todas las clases disponibles.
4) Declaración del programa principal con opción de control
de errores.
throws IOException : Indica que cualquier error de
entrada o salida de datos, será manejado en forma interna
(automática) por el programa.
6) Se crean las instancias necesarias para crear un objeto
que permita manejar la lectura de datos por teclado.
Profesor: Marcelo Montecinos C.
43
44. Taller Programación III
Java
BufferedReader : Clase perteneciente a la librería io que
crea un buffer de entrada donde se almacenarán los
carácteres ingresados por teclado.
in : Variable de tipo BufferedReader.
7) Se declara la variable num de tipo entero (int).
8) Se llama al método print para escribir un mensaje en
pantalla dejando el cursor inmediatamente a continuación
del mensaje.
Profesor: Marcelo Montecinos C.
44
45. Taller Programación III
Java
9) Se lee el número, asignando el valor a la variable num.
in.readline : Método que retorna el quot;stringquot; leído por
teclado.
Integer.parseInt : Método que convierte un string (cadena
de caracteres) en un dato numérico de tipo int.
Integer : Clase estándar que no necesita ser instanciada
(está disponible por defecto).
10) Se llama al método println para escribir un mensaje en
pantalla que consta de una parte estática y otra variable.
El método println y print soportan varios objetos
concatenados mediante el operador + , logrando imprimir
cadenas de carácteres y variables numéricas.
Profesor: Marcelo Montecinos C.
45
47. Taller Programación III
Java
Debemos recordar:
class CSumar
Todas las instrucciones terminan
{
con punto y coma “ ; ”
Static int v1, v2, suma;
Todo el código de un método
public static void main (String args[]) o bloque de instrucciones
estará entre la llave de apertura
{
( { ) y la correspondiente llave
System.out.println(quot;Introduzca v1quot;);
de cierre ( } ).
v1 = CTeclado.ReadInt();
System.out.println(quot;Introduzca v2quot;); Los espacios en blanco se
permiten entre los elementos
v2 = CTeclado.ReadInt(); del código fuente. Los espacios,
suma = v1 + v2; los tabuladores y nuevas líneas
deben usarse para dar
} legibilidad al código.
}
Profesor: Marcelo Montecinos C.
47
48. Taller Programación III
Java
class CSumar
Palabras Reservadas
Son palabras que tienen un
{
significado especial dentro
static int v1, v2, suma; del lenguaje , en nuestro
caso JAVA.
public static void main (String args[])
{
System.out.println(quot;Introduzca v1quot;);
v1 = CTeclado.ReadInt();
System.out.println(quot;Introduzca v2quot;);
v2 = CTeclado.ReadInt();
suma = v1 + v2;
}
}
Profesor: Marcelo Montecinos C.
48
49. Taller Programación III
Java
Identificadores
Son identificadores, los nombres que reciben las
variables, constantes, clases, métodos o instancias
de un programa.
Comienzan con una letra y pueden contener letras y
números.
Son sensitivos a las mayúsculas y minúsculas.
Pueden contener palabras claves del lenguaje siempre y
cuando no sean completamente iguales.
Pueden tener cualquier longitud
Profesor: Marcelo Montecinos C.
49
50. Taller Programación III
Java
Algunas convenciones en cuanto a identificadores.
Programas: deben ser nombres, escritos en modo mixto y con la primera
letra de cada palabra en mayúsculas.
Métodos: deben ser verbos, en modo mixto, con la primera letra en
minúscula. Las palabras se separarán usando letras mayúsculas.
Variables: deben ser nombres que permitan deducir lo que contienen,
siguen las mismas reglas que los subprogramas. Los identificadores de
una sola letra deben evitarse. (con sus excepciones)
Profesor: Marcelo Montecinos C.
50
51. Taller Programación III
Java
Inicialización de Variables.
En Java, cuando una variable es creada, Java le da
un valor inicial según la siguiente tabla.
byte,short, int 0
long 0L
float 0.0f
double 0.0d
char ‘u0000’
(null)
boolean false
variables referencia null
Profesor: Marcelo Montecinos C.
51
53. Taller Programación III
Java
Arreglos
Es un tipo especial de dato al que se hace
referencia por un nombre.
Está compuesto por una colección de
elementos del mismo tipo de datos que se
almacenan consecutivamente en memoria.
Pueden ser creados de cualquier tipo.
Profesor: Marcelo Montecinos C.
53
54. Taller Programación III
Java
Arreglos
Se pueden declarar como: int[] A; int
A[];
Esto es la declaración del puntero al arreglo, no se
especifica tamaño en la declaración;
Inicialización: A = new int[10];
int[] A = new int[10];
Empiezan desde 0: for(int i=0; i <
10; ++i) A[i] = 0;
Se puede averiguar el largo: int
largo = A.length;
length es un campo del objeto
arreglo y no un método. No es
necesario el método ya que el
Profesor: Marcelo Montecinos C.
54
tamaño, como el contenido de un
55. Taller Programación III
Java
Arreglos
Se utilizan para agrupar información
relacionada
Pueden tener ser de una o más dimensiones. Los
de una dimensión los denominaremos vectores
y de los de dos dimensiones matrices o tablas
Para accesar un elemento particular del
arreglo, se utilizan los índices
Profesor: Marcelo Montecinos C.
55
56. Taller Programación III
Java
Vectores
Ejemplo de un vector que contiene 7 números enteros
0 1 2 3 4 5 6 índices
3 6 8 1 0 4 2 Elementos del
vector
Elemento que ocupa la
posición 3 en el vector
Profesor: Marcelo Montecinos C.
56
57. Taller Programación III
Java
Vectores
Declaración en Java
tipoDato[ ] nombreVariable;
tipoDato nombreVariable[ ];
Para declarar un vector de número enteros, al cual se le
dá el nombre de miVector se puede hacer de la siguiente
manera:
int[ ] miVector;
// o también
int miVector[ ];
Profesor: Marcelo Montecinos C.
57
58. Taller Programación III
Java
Declaración Vectores
int[] miVector;
// o también
Creación int miVector[];
nombreVector = new tipoDato[tamaño];
Cuando se declara una variable vector, esta no tiene
ningún valor. Antes de asignar cualquier valor, se debe
reservar un espacio en memoria, utilizando el operador
new y asignarlo a la variable.
Continuando con el ejemplo anterior
miVector = new int[7];
Profesor: Marcelo Montecinos C.
58
59. Taller Programación III
Java
Vectores
Creación:
Creación:
miVector = new int[7];
Al reservar espacio para los elementos de un vector,
mediante new, se inicializa automáticamente en cero su
contenido.
Cuando se ejecuta esta sentencia de creación , la
varianble miVector, hará referencia a un vector de 7
elementos enteros.
New: operador especial que reserva espacio en memoria
Profesor: Marcelo Montecinos C.
59
60. Taller Programación III
Java
Vectores
Inicialización:
Dependiendo del tipo de datos que contenga un vector,
estos son inicializados por defecto con los siguientes valores:
Si son vectores numéricos, se inicializan en cero.
Si son vectores de caracteres, se inicializan en ‘/u000’.
Si son vectores booleanos, se inicializan en false.
Profesor: Marcelo Montecinos C.
60
61. Taller Programación III
Java
Vectores
Creación:
miVector = new int[7];
Inicialización
Un vector completo se puede inicializar de la siguiente
manera
miVector = {3, 6, 8, 1, 0, 4, 2};
Profesor: Marcelo Montecinos C.
61
62. Taller Programación III
Java
Creación: Vectores
miVector = new int[7];
Utilización
nombreVector [índice]
Para accesar un elemento de un vector, se coloca el
nombre del vector y entre corchetes el índice del elemento
que se desea.
Por ejemplo, si se desea obtener el número 8 del siguiente vector:
0 1 2 3 4 5 6
3 6 8 1 0 4 2
miVector [2]
Profesor: Marcelo Montecinos C.
62
63. Taller Programación III
Java
Vectores
Creación:
miVector = new int[7];
Utilización
Los índices en un vector, van desde 0 hasta el tamaño – 1.
El tamaño de un vector se obtiene con el método length,
con la siguiente sintaxis:
nombreVector.length
En nuestro ejemplo:
miVector.length
Profesor: Marcelo Montecinos C.
63
64. Taller Programación III
Java
Vectores
Ejemplo: crear un vector de 5 posiciones, rellenarlo y
luego mostrar su contenido.
class EjemploVec
{
static int miVector[ ];
public static void main (String arg[])
{
miVector = new int[5];
llenarVector();
mostrarVector();
System.out.print(quot;El tamano de mi vector es quot;);
System.out.println(miVector.length);
}
Profesor: Marcelo Montecinos C.
64
65. Taller Programación III
Java
Vectores
static void llenarVector()
{
for (int i=0; i <= 4; i++)
{
System.out.println(quot;Intro. numero de posicion quot; + i + quot; quot;);
miVector[i] = CTeclado.ReadInt();
}
}
static void mostrarVector()
{
for (int i=0; i <= 4; i++)
System.out.print(miVector[i] + quot; quot;);
}
}// fin de clase
Profesor: Marcelo Montecinos C.
65
67. Taller Programación III
Java
Matrices
Son arreglos de dos dimensiones
La información es dispuesta en filas y columnas
Para accesar un elemento se deben especificar
dos subíndices: fila y columna.
Pueden ser creadas de cualquier tipo
Pueden ser vistos como vectores de vectores
Profesor: Marcelo Montecinos C.
67
68. Taller Programación III
Java
Matrices
Declaración:
tipoDato nombreVariable[ ][ ];
Para declarar una matriz de números enteros, llamada
miMatriz, se debe hacer de la siguiente manera:
int miMatriz[ ][ ];
Profesor: Marcelo Montecinos C.
68
69. Taller Programación III
Java
Matrices
Creación:
nombreMatriz = new tipoDato[filas][columnas];
Para crear una matriz de 2 filas y 3 columnas de
números enteros, llamada miMatriz, se escribe
miMatriz = new int [2][3];
Profesor: Marcelo Montecinos C.
69
70. Taller Programación III
Java
Matrices
Creación: miMatriz = new int [2][3];
genera
miMatriz[0][0] miMatriz[0][1] miMatriz[0][2]
miMatriz[1][0] miMatriz[1][1] miMatriz[1][2]
Profesor: Marcelo Montecinos C.
70
71. Taller Programación III
Java
Matrices
Creación: miMatriz = new int [2][3];
Primero crea un vector de 2 elementos
Elemento 0
Elemento 1
Profesor: Marcelo Montecinos C.
71
72. Taller Programación III
Java
Matrices
Creación: miMatriz = new int [2][3];
Luego cada elemento lo transforma en un
vector de 3 elementos
miMatriz[0][0] miMatriz[0][1] miMatriz[0][2] Fila 0
miMatriz[1][0] miMatriz[1][1] miMatriz[1][2] Fila 1
Columna 0 Columna 2
Profesor: Marcelo Montecinos C.
72
73. Taller Programación III
Java
Matrices
Ejemplo: Crear una matriz de 2 filas y 3 columnas, llenarla y
luego mostrar su contenido.
class EjemploMat
{
public static void main (String arg[])
{
int miMatriz[][];
miMatriz = new int[2][3];
llenarMatriz(miMatriz);
mostrarMatriz(miMatriz);
}
Profesor: Marcelo Montecinos C.
73
74. Taller Programación III
Java
static void llenarMatriz(int m[][])
{
for (int i=0; i < 2; ++i)
{
for (int j=0; j< 3; ++j)
{
System.out.println(quot;Intro. Elem. quot; + i + quot; quot; + j);
m[i][j] = CTeclado.ReadInt();
}
}
}
static void mostrarMatriz(int m[][])
{
for (int i=0; i < 2; i++)
{
for (int j=0; j< 3; j++)
{
System.out.print(m[i][j] + quot; quot;);
}
System.out.println();
}
}
}
Profesor: Marcelo Montecinos C.
74
75. Taller Programación III
Java
Ejercicios
1. Se deben crear tres vectores vecA, vecB y
vecC de m elementos cada uno; se debe crear
otro arreglo vecNuev donde cada elemento sea
la suma de los elementos de cada arreglo.
2. Se deben crear dos vectores. En uno se
colocarán los carnet de los estudiantes que
aprobaron Cálculo 1, en otro los que
aprobaron Etica. Crear un tercer arreglo que
contenga los carnet de los estudiantes que
aprobaron ambas materias.
Profesor: Marcelo Montecinos C.
75
76. Taller Programación III
Java
Ejercicios
3. Se deben crear dos vectores uno de ellos de n
elementos, el otro de m elementos . Llenarlos con
números ,colocándo en cada uno los elementos
ordenados de menor a mayor.
Crear un tercer vector de tamaño n+m el cual
contendrá los elementos de los vectores
ordenados de menor a mayor.
Profesor: Marcelo Montecinos C.
76
77. Taller Programación III
Java
Operadores
Los operadores de un lenguaje se utilizan para
combinar o modificar los valores de de un programa.
Vamos a estudiar los
siguientes operadores:
Aritméticos : binarios y unitarios.
Operadores de Asignación.
Relacionales.
Lógicos.
Profesor: Marcelo Montecinos C.
77
78. Taller Programación III
Java
Operadores Aritméticos Binarios.
Binarios
Operador Significado
+ Suma
- Resta
* Multiplicación
/ División entera
(si los operandos son de tipo entero)
/ División real
(si los operandos son reales)
% Módulo, resto de división entera
(no es necesario que los operandos
sean reales)
Profesor: Marcelo Montecinos C.
78
79. Taller Programación III
Java
Operadores Aritméticos Binarios.
Veamos un ejemplo:
class CPrueba
{
public static void main(String arg[])
{
int i , j;
i=5;
j = i % 2;
System.out.println(quot;el valor de j es quot;+j); 1
j = i / 2;
System.out.println(quot;el valor de j es quot;+j); 2
j = i * 2;
System.out.println(quot;el valor de j es quot;+j); 10
}
}
Profesor: Marcelo Montecinos C.
79
80. Taller Programación III
Java
Operadores Aritméticos Unitarios.
Operador Significado
++ Incremento
-- Decremento
Estos operadores se pueden aplicar en dos formas,
prefija y postfija, que adquieren importancia
cuando los mismos se usan dentro de una expresión
mayor.
Profesor: Marcelo Montecinos C.
80
81. Taller Programación III
Java
Operadores Aritméticos Unitarios.
Unitarios
Veamos un ejemplo:
class CPrueba
{
public static void main(String arg[])
{
int i;
i=5;
//incrementando antes o después de a
System.out.println(quot;el valor de i++ es quot;+ i++); 5
System.out.println(quot;el valor de i++ es quot;+ ++i); 7
}
}
Profesor: Marcelo Montecinos C.
81
82. Taller Programación III
Java
Operadores Aritméticos Unitarios.
Unitarios
Veamos un ejemplo:
class CPrueba
{
public static void main(String arg[])
{
int i;
i=5;
//decrementando antes o después de a
System.out.println(quot;el valor de i-- es quot;+ i--); 5
System.out.println(quot;el valor de i-- es quot;+ --i); 3
}
}
Profesor: Marcelo Montecinos C.
82
83. Taller Programación III
Java
Operadores de Asignación.
Operador Significado
= asignación
+= asignación y suma
-= asignación y resta
*= asignación y mult.
/= asignación y div.
%= asignación y mod.
Profesor: Marcelo Montecinos C.
83
84. Taller Programación III
Java
Operadores de Asignación.
Veamos un ejemplo:
class CPrueba
{
public static void main(String arg[])
{
int i , j;
i=5;
i += 2; // equivale a i = i + 2;
System.out.println(quot;el valor de i es quot;+i); 7
i = 5;
i %= 2; // equivale a i = i % 2;
System.out.println(quot;el valor de i es quot;+i); 1
}
} Profesor: Marcelo Montecinos C.
84
85. Taller Programación III
Java
Operadores Relacionales.
Operador Nombre Ejemplo Respuesta
== igual 1 == 2 false
!= distinto 1 != 2 true
> mayor que 1 >2 false
< menor que 1 <2 true
>= mayor o igual 1 >= 2 false
<= menor o igual 1 <= 2 true
Profesor: Marcelo Montecinos C.
85
86. Taller Programación III
Java
Operadores Lógicos.
Operador Significado
&& and
|| or
Tablas de valores lógicos:
AND
T F OR
T F
T T F T T T
F F F F T F
Profesor: Marcelo Montecinos C.
86
87. Taller Programación III
Java
Operadores
Orden de precedencia en los operadores:
1. ++ --
2. * / %
3. + -
4. < > <= >=
5. == !=
6. &
7. |
8. = *= /= %= +=
-=
Profesor: Marcelo Montecinos C.
87
88. Taller Programación III
Java
Expresiones Lógicas
Las expresiones lógicas se definen como un
conjunto de operadores y operandos.
Son las que devuelven como resultado un valor booleano
(true o false).
Contienen operadores relacionales y/o operadores lógicos.
Ejemplo:
(X >= Y)
(X >= Y) && (X>= Z)
(A != 0) || (AMarcelo Montecinos C.
Profesor:
!= 5)
88
89. Taller Programación III
Los argumentos Java un programa
de
Si se invoca al programa P1 de ka siguiente
manera: java P1 estos son parametros
entonces en el programa se tendrá args[0] =
“estos”, args[1] = “son”, args[2] =
“parametros”.
Se reciben como un arreglo de strings en la
variable declarada como parámetro del programa
String args[]
public class Parametros {
public static void main(String args[]) {
for(int i=0; i < args.length; i++)
System.out.pritnln(args[i]);
}
}
Profesor: Marcelo Montecinos C.
89
90. Taller Programación III
Java
Exceptions
Una Exeption es un evento que rompe la ejecución normal de un
programa (debido a un error). Cuando ocurre un evento como este un
objeto de la clase Exception es generado o “lanzado” (throw).
Existen varios tipos de clases derivadas Exception dependiendo de
que fue lo que originó el evento: IOException,
IndexOutOfBoundsException, UnknownHostException, etc.
Cuando esto sucede, el intérprete de JAVA busca un exception handler
adecuado para esta exception, que ejecuta un pedazo de código
(programado por el usuario) que debería reaccionar en forma adecuada
a esta falla del programa. Esto se llama “atrapar una exception”
(catch).
Cuando no se ha escrito ningún ningún handler que atrape esta
exception, el programa se detiene (se cae). La razón para introducir
exceptions es que la programación para reaccionar ante fallas se hace
más fácil (no hay que preverlas todas).
Profesor: Marcelo Montecinos C.
90
91. Taller Programación III
Java
Cómo programar Exception Handlers ?
Forma general: en un bloque try-catch
try {
lista de instrucciones que pueden generar un error
}
catch (ExceptionTipo1 e) {
lista de instrucciones para enmendar el error de Tipo1
{
catch (ExceptionTipo2 e) {
lista de instrucciones para enmendar el error de Tipo1
}
catch (ExceptionTipo3 e) {
lista de instrucciones para enmendar el error de Tipo1
}
Si no se conoce o no importa el tipo de exception específico se puede
poner Exception y se atrapan todos (basta un solo bloque cach). Si
hay más de un bloque se ejecuta sólo un bloque catch según el tipo
de error.
Profesor: Marcelo Montecinos C.
91
92. Taller Programación III
Java
Ejemplo de Exception I/O
Muchas veces el compilador OBLIGA a programar el código de modo de atrapar
exceptions cuando estas pueden suceder con cierta probabilidad. Las más
frecuentes son las de IO.
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO{
public static void main(String args[]) {
BufferedReader in; PrintWriter out; String line;
try { in = new BufferedReader(new FileReader(“Origen.txt”))};
catch (IOException e) {
System.out.println(“error en apertura”); System.exit(1);}
try { out = new PrintWriter( new FileWriter(“Destino.txt”))};
catch (IOException e) {
System.out.println(“error en creacion”); System.exit(1);}
try {
while( (line = in.readLine()) != null)
out.println(line);
catch (IOException e) { System.out.println(“problemas”);}
}
}
Profesor: Marcelo Montecinos C.
92
93. Taller Programación III
Java
Ejemplo de Exception I/O (2)
Se puede omitir poner tantos try-catch si no importa donde
sucedió
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO2{
public static void main(String args[]) {
BufferedReader in; PrintWriter out; String line;
try {
in = new BufferedReader(
new InputStreamReader(System.in));
out = new PrintWriter( new FileWriter(“Destino.txt”));
System.out.println(“ingrese linea”);
while( (line = in.readLine()) != “”){
out.println(line);
System.out.println(“ingrese linea”);
}
catch (Exception e) { System.out.println(“problemas”);
}
} Profesor: Marcelo Montecinos C.
} 93
94. Taller Programación III
Java
Ejemplo de Exception I/O (3)
También se puede evitar tener que preocuparse de las exceptions siempre
y cuando el método que la pordría generar se declare como que “lanza”
una excepción:
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO3{
public static void main(String args[]) throws IOException{
BufferedReader in; PrintWriter out; String line;
in = new BufferedReader(new FileReader(“Origen.txt”));
out = new PrintWriter( new FileWriter(“Destino.txt”));
while( (line = in.readLine()) != null)
out.println(line);
}
}
Esto implica que el programa se caerá si hay una excepción durante la
generación del programa. En otros casos se puede declarar que uno o
más métodos lanzan una IOException y el programa o método principal se
preocupa de escribir el Exception handler.
Profesor: Marcelo Montecinos C.
94
96. Taller Programación III
Java
Estructuras de Decisión
if (expresión lógica)
{
<bloque de instrucciones >
}
else
{
<bloque de instrucciones>
}
Profesor: Marcelo Montecinos C.
96
97. Taller Programación III
Java
Estructuras de Decisión
Veamos un ejemplo:
class CPrueba
{
public static void main(String arg[])
{
int a , b;
a = 1; b = 3;
if (a < b)
{
System.out.println(a);
}
else
{
System.out.println(b);
}
}
}
Profesor: Marcelo Montecinos C.
97
98. Taller Programación III
Java
Estructuras de Decisión
Decisión Anidada
if (expresión lógica)
{
if (expresión lógica)
{
<bloque de instrucciones >
}
else
{
<bloque de instrucciones >
}
}
else
{
<bloque de instrucciones >
}
Profesor: Marcelo Montecinos C.
98
99. Taller Programación III
Java
Veamos un ejemplo de Decisión Anidada
class CPrueba
{
public static void main(String arg[])
{
int a , b, c;
a = 1; b = 3;
if (a < b)
{
if (b > c)
{
a++;
}
else
{
b++;
}
}
else
{
a = a + b;
}
}
} Profesor: Marcelo Montecinos C.
99
100. Taller Programación III
Java
Estructuras de Decisión
Veamos otro ejemplo de Decisión Anidada
if (X > 10)
{
if (X < 20)
{
System.out.println( X + ” esta entre 10 y 20”);
}
else
{
System.out.println( X + “es mayor a 20”);
}
}
else
{
if (X > 0)
{
System.out.println( X + “entre 1 y 10”); }
else
{
System.out.println( X + “igual o menor a cero”);
}
} Profesor: Marcelo Montecinos C.
100
101. Taller Programación III
Java
Estructuras de Decisión
Ejercicio
Deseamos hacer un programa que dado el sueldo de
una persona, le aumente un 50% si la persona gana
menos de 180000 Bs ó un 20% si gana más.
if (sueldo < 18000)
{
sueldo *= 1.5;
}
else
{
sueldo *= 1.2;
}
Profesor: Marcelo Montecinos C.
101
102. Taller Programación III
Java
Estructuras de Decisión
if – else - if
Llamada también : alternativas múltiples.
Realiza una verificación de las expresiones
lógicas, y cuando consigue una que se cumple,
ejecuta su bloque de instrucciones y no toma en
cuenta el resto de las expresiones.
Si no se cumple ninguna expresión, ejecuta el
else.
No necesariamente debe tener else.
Profesor: Marcelo Montecinos C.
102
103. Taller Programación III
Java
Estructuras de Decisión
if – else - if
Haremos un programa que me permita evaluar
una función, en base a un número d.
Si d > 0 (-4 + Math.sqrt (d))/2
Si d = 0 -4/2
Si d < 0 (-4 + Math.sqrt (Math.abs (d)) )/2
Profesor: Marcelo Montecinos C.
103
104. Taller Programación III
Java
Estructuras de Decisión
class CEvaluar
{
public static void main (String args[])
{
int d;
double x;
System.out.println (quot;Introduzca el valor de d quot;);
d = CTeclado.ReadInt();
if (d > 0)
{
x = (-4 + Math.sqrt (d))/2;
}
else if (d == 0)
{
x = -4/2;
}
else
{
x = (-4 + Math.sqrt (Math.abs (d)) )/2;
}
System.out.println (quot;El valor de x es quot; + x);
}
}
Profesor: Marcelo Montecinos C.
104
105. Taller Programación III
Java
Estructuras de Decisión
swicht
switch (expr1)
{
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
default:
instrucciones;
break;
} Profesor: Marcelo Montecinos C.
105
106. Taller Programación III
Java
Estructuras de Decisión
switch
expr1 debe ser compatible con valores
switch (expr1)
enteros o carácter.
{ Cuando la expresión coincide con algún
case valor1: literal de la sentencia case, se ejecutan las
instrucciones; instrucciones correspondientes a ese case
Si ninguna de las constantes coincide con
break;
la expresión, se ejecutal el default si existe.
case valor2: Si no existe el default, no se ejecuta nada.
instrucciones; La sentencia break se utiliza para
break; terminar una secuencia de instrucciones,
haciedo que la ejecución salte a la primera
default:
línea de código que sigue a la sentencia
instrucciones; swicht completa.
break; La sentencia break es opcional, de
} omitirse la ejecución continuará en el
siguiente case.
Profesor: Marcelo Montecinos C.
106
107. Taller Programación III
Java
Estructuras de Decisión
Veamos un ejemplo con switch en Java
switch (numEst)
{
case 20:
numEst += 3;
break;
case 50:
numEst++;
break;
default:
numEst--;
break;
}
Profesor: Marcelo Montecinos C.
107
108. Taller Programación III
Java
Estructuras de Decisión
Veamos un ejemplo con switch
Haremos un programa que reciba un
mes (número) y nos indique la
estación que hay en ese mes.
Profesor: Marcelo Montecinos C.
108
109. Taller Programación III
switch (mes) Java
{
case 12:
case 1:
case 2:
System.out.println (quot;Inviernoquot;);
break;
case 3:
case 4:
case 5:
System.out.println (quot;Primaveraquot;);
break;
case 6:
case 7:
case 8:
System.out.println (quot;Veranoquot;);
break;
case 9:
case 10:
case 11:
System.out.println (quot;Otonoquot;);
break;
default:
System.out.println (quot;Mes desconocidoquot;);
Profesor: Marcelo Montecinos C.
109
}
110. Taller Programación III
Java
switch (mes)
{
case 12:
case 1: System.out.println (“Estamos en quot;);
case 2: Si mes = 2
System.out.println (quot;Inviernoquot;);
break; La salida es:
case 3: Invierno
case 4:
case 5:
System.out.println (quot;Primaveraquot;);
break;
case 6:
case 7:
case 8:
System.out.println (quot;Veranoquot;);
break; Si mes = 12
case 9:
case 10: La salida es:
case 11: Estamos en
System.out.println (quot;Otonoquot;);
break; Invierno
default:
System.out.println (quot;Mes desconocidoquot;);
}
Profesor: Marcelo Montecinos C.
110
111. Taller Programación III
Java
Ejercicios
1. Desarrolle un programa en Java que le permita leer el nombre , la
edad , el sexo y el estado civil de cualquier persona e imprima el
nombre de la persona si es un hombre casado y mayor de 40 años
o una mujer soltera menor de 50 años.
2. Desarrolle un programa en Java para leer el nombre de un
empleado, el salario básico por hora y el número de horas
trabajadas durante una semana. Calcule el salario neto , teniendo
en cuenta que si el número de horas trabajadas durante la semana
es mayor de 48 horas, esas horas demás se consideran horas
extras y tienen un recargo del 35%. Imprima el nombre del
empleado y su salario neto.
Profesor: Marcelo Montecinos C.
111
112. Taller Programación III
Java
Ejercicios
En la tienda “Sigo de pie” los empleados reciben una cierta comisión
dependiendo del código del artículo que vendan.
Código del artículo Cálculo de la comisión
1 15% del precio de venta
2 40% de la diferencia del precio de venta
y el precio mínimo de venta
3 10% del precio mínimo de venta más el
50% de la diferencia del precio de venta
y el precio mínimo de venta
4 Bs. 100 por unidad más el 5% del precio
mínimo de venta
5 Bs. 500 por unidad
Hacer un programa que imprima el Nombre del vendedor, el código
Profesor: Marcelo Montecinos C.
112
del artículo que vendió y la comisión que se ganó.
113. Taller Programación III
Java
Resumen
En resumen, los conceptos vistos fueron :
if (expresión lógica)
{ bloque de instrucciones }
else
{ bloque de instrucciones }
if – else - if
switch (expr1)
{
Instrucciones
case valor1: instrucciones;
break;
case valor2: instrucciones;
break;
default: instrucciones;
break;
}
Profesor: Marcelo Montecinos C.
113
115. Taller Programación III
Java
Sentencias de Iteración
Las sentencias de iteración en Java son:
while, do-while y for.
Se utilizan para ejecutar varias veces un
conjunto de instrucciones.
Cada sentencia de repetición tiene una
utilidad adecuada dependiendo de la
situación.
Profesor: Marcelo Montecinos C.
115
116. Taller Programación III
while Java
Sentencias de Iteración
while (expresión lógica)
{
bloque de
instrucciones;
}
Ejemplo: Mostrar los números del 0 al 9
int i =0;
while (i < 10)
{
System.out.println(“el valor de i es : “ + i);
i++;
} Profesor: Marcelo Montecinos C.
116
117. Taller Programación III
while Java
Sentencias de Iteración
Evalúa su expresión condicional al inicio del
bucle.
Repite un bloque de instrucciones, mientras
su expresión sea verdadera.
Cuando la expresión es falsa, el control
pasa a la siguiente línea de código que hay
inmediatamente después del bucle.
Puede suceder que el bloque de intrucciones
nunca se ejecute.
Profesor: Marcelo Montecinos C.
117
118. Taller Programación III
Java
class CalFactura
{
public static void main(String args[ ])
{
char resp;
double monto,isv;
System.out.println(quot;Indique si desea calcular factura s/nquot;);
resp=CTeclado.ReadChar( );
while ((resp =='s') || (resp =='S'))
{
System.out.println(quot;Indique el monto de la facturaquot;);
monto=CTeclado.ReadDouble();
isv=(monto*14.5/100);
System.out.println(quot;El monto a pagar de ISV es :quot;+isv);
System.out.println(quot;Desea calcular para otra facturaquot;);
resp=CTeclado.ReadChar();
}
}
}
Profesor: Marcelo Montecinos C.
118
119. Taller Programación III
do-while Java
Sentencias de Iteración
do
{
bloque de instrucciones;
}
while (expresion lógica);
Ejemplo:
x=0;
Mostrar los números
do
divisibles por 3 {
menores a 20 x = x + 3;
System.out.println(“x = “ + x);
}
Profesor: Marcelo Montecinos C.
while (x < 20); 119
120. Taller Programación III
Java
do-while
Sentencias de Iteración
Evalúa su expresión condicional al final del
bucle.
Repite un bloque de instrucciones, mientras
su expresión sea verdadera.
Cuando la expresión es falsa, el control
pasa a la siguiente línea de código que hay
inmediatamente después del bucle.
El bloque de instrucciones de este ciclo se
ejecuta al Profesor: Marcelouna vez.
menos Montecinos C. 120
121. Taller Programación III
Java
class NotasEstudiantes
{
public static void main(String args[ ])
{
char resp;
int notaTeo,acumTeo;
do
{
System.out.println(quot;Indique la Nota de Teoria quot;);
notaTeo=CTeclado.ReadInt();
acumTeo=(NotaTeo*50/100);
System.out.println(quot;El acumulado teoria es :quot;+acumTeo);
System.out.println(quot;Desea calcular acumulado para otro estudiante quot;);
resp=CTeclado.ReadChar();
}
while ((resp == 's') || (resp =='S'));
}
}
Profesor: Marcelo Montecinos C.
121
122. Taller Programación III
for Java
Sentencias de Iteración
for (expr. inicial; expr. Lógica;modificacion)
{
bloque de instrucciones;
}
Ejemplo: Mostrar los números del 1 al 10
for (int i = 1; i < 10; i++)
{
System.out.println(“i = “ + i);
}
Profesor: Marcelo Montecinos C.
122
123. Taller Programación III
Java
for
Sentencias de Iteración
Se utiliza para ejecutar un bloque de instrucciones un
número determinado (fijo) de veces.
Repite un bloque de instrucciones, mientras su expresión
sea verdadera.
La primera vez que se va a ejecutar el ciclo, se realiza la
inicialización, es decir, se declara y asigna un valor
inicial a la variable que va a controlar el ciclo. Esto
sucede una sola vez.
Cuando la expresión es verdadera, se ejecuta la
modificación de la variable que controla el ciclo. Esto es
automático.
Profesor: Marcelo Montecinos C.
123
124. Taller Programación III
Java
class Serie
{
public static void main(String args[ ])
{
int valoralor,termino,sumSerie;
System.out.println(quot;Indique el valor a calcular la serie :quot;);
valor=CTeclado.ReadInt( );
System.out.println(quot;Indique la cantidad de términos :quot;);
termino=CTeclado.ReadInt( );
sumSerie=0;
for (int contador = 1 ; contador <= termino; contador++)
{
sumSerie = sumSerie + contador*valor; }
System.out.println(quot;El resultado de la serie es :quot;);
System.out.println(sumSerie);
}
}
} Profesor: Marcelo Montecinos C.
124
125. Taller Programación III
Java
Sentencias de Iteración
En resumen, los conceptos vistos fueron :
while (expresión lógica)
{
bloque de instrucciones;
}
do
{
Instrucciones bloque de instrucciones;
}
while (expresion lógica);
for (expr. inicial; expr. Lógica; paso)
{
bloque de instrucciones;
Profesor: Marcelo Montecinos C.
} 125
126. Taller Programación III
Java
Ejercicios
1. Se desea saber el promedio de notas que tiene un
estudiante. Hasta la fecha ha cursado 6 materias;
además se quiere el número de materias reprobadas y el
número de materias aprobadas.
Escribir el programa en Java dado el Algoritmo
Entrada. Salida:
nota: numérico promn, numa, numr: numérico
Profesor: Marcelo Montecinos C.
126
127. Taller Programación III
Java
1. Inicio Promedio.
2. numa, numr, prom, acumNotas,nota: numérico
3. numa 0
4. numr 0
5. acumNotas 0
6. Para cont=1 hasta 6 hacer (+1)
Comenzar
6.1 Leer nota
6.2 acumNotas acumNotas+nota
6.3 Si (nota < 10) entonces
6.3.1 numr numr + 1
Sino
6.3.2 numa numa + 1
Fin Para
7. prom acumNotas/6
8. Mostrar (“ El promedio del estudiantes es : “prom)
9. Mostrar (“El estudiante tiene “, numa , “materias aprobadas”)
10. Mostrar (“El estudiante tiene “ ,numr, “materias reprobadas”)
11. Terminar Promedio
Profesor: Marcelo Montecinos C.
127
128. Taller Programación III
Java
2. Se requiere que se obtenga la misma
información pero, para todos los estudiantes
de una escuela.
Entrada. Salida:
nota: numérico promn, numa, numr:
numérico
Profesor: Marcelo Montecinos C.
128
129. 1. Inicio Escuela. Programación III
Taller
2. promedioMax, numa, numr, prom,acumNotas,nota,carnet: numérico
3. Leer carnet Java
4. promedioMax 0
5. Mientras ( carnet != 0 ) hacer
Comenzar
3.1 numa 0
3.2 numr 0
3.3 acumNotas 0
3.4 Para cont=1 hasta 6 hacer +1
Comenzar
3.4.1 Leer nota
3.4.2 acumNotas acumNotas + nota
3.4.3 Si( nota < 10) entonces
3.4.3.1 numr numr + 1
sino
3.4.3.2 numa numa + 1
Fin para
3.5 prom acumNotas/6
3.6 Si (prom > promedioMax) entoces
3.6.1 promedioMax prom
3.7 Mostrar (“ El promedio del estudiantes es : “prom)
3.8 Mostrar (“El estudiante tiene “, numa ,“materias aprobadas”)
3.9 Mostrar (“El estudiante tiene “, numr, “materias reprobadas”)
3.10 Leer carnet
Fin Mientras
6. Mostrar promedioMax
7. Terminar Escuela
Profesor: Marcelo Montecinos C.
129
130. Strings en Java
Cadena de caracteres
Profesor: Marcelo Montecinos C. 130
131. Taller Programación III
Java
Strings
En Java un String no es un tipo de
dato primitivo como char o int.
Es una clase que maneja cadena
de caracteres.
Profesor: Marcelo Montecinos C.
131
132. Taller Programación III
Java
Se declara la variable de tipo de dato cadena.
Strings
String nombre,cadena;
Se crea una instancia de cadena, con el constructor por defecto.
nombre = new String();
nombre = new String(quot;carameloquot;);
Para asignarle una secuencia de caracteres.
nombre= quot; Maria Perezquot;;
Para hacer referencia a la misma instancia del String
cadena = nombre;
A partir de este momento cadena y nombre hacen referencia a la misma
instancia. (No se copia el valor , solo la referencia)
Profesor: Marcelo Montecinos C.
132
133. Taller Programación III
Java
Strings
Para obtener la longitud de la candena
nombre.length()
Si deseamos concatenar cadenas
nombre = quot;Juanquot;+quot; Garcia”;
Se puede utilizar el metodo concat para concatenar dos
cadenas,
nombre = quot; Carlos“;
cadena=nombre.concat(quot; Juan quot;);
el contenido de cadena, al final sería: quot;CarlosJuan quot;
Profesor: Marcelo Montecinos C.
133
134. Taller Programación III
Java
String
Para obtener el caracter que se encuentra en una posición
charAt(posición);
ejemplo,
cadena.charAt(0) devolveria el caracter “C”
donde posición se inicia en cero.
Para extraer una subcadena, hay dos formas
substring(int posiciónInicial); copia desde la posición inicial
hasta el final de la cadena
substring(int posiciónInicial, int posicionFinal);
copia desde la posición inicial
hasta la posición final-1
Profesor: Marcelo Montecinos C.
134
135. Taller Programación III
Java
String
Un ejemplo de substring,
nombre=“Maria Rosa”;
System.out.println(nombre.substring(2));
System.out.println(nombre.substring(2,4));
la salida sería,
ria Rosa
ri
Profesor: Marcelo Montecinos C.
135
136. Taller Programación III
Java
String
Para sustituir una letra por otra dentro de la cadena
replace(char original,char sustituto)
ejemplo,
cadena=“casa mia”;
System.out.println(cadena.replace('a','e'));
la salida sería,
cese mie
Profesor: Marcelo Montecinos C.
136
137. Taller Programación III
Java
String
Para convertir los caracteres de una cadena de
mayúsculas a minúsculas
toLowerCase()
ejemplo,
cadena=“CASA MIA”;
System.out.println(cadena.toLowerCase());
la salida sería,
casa mia
Profesor: Marcelo Montecinos C.
137
138. Taller Programación III
Java
String
Para convertir los caracteres de una cadena de minúsculas a
mayúsculas
toUpperCase()
ejemplo,
cadena=“casa mia”;
System.out.println(cadena.toUpperCase());
la salida sería,
CASA MIA
Profesor: Marcelo Montecinos C.
138
139. Taller Programación III
Java
String
Para comparar los caracteres dentro de dos cadenas
equals()
ejemplo,
if (s1.equals(s2))
{
System.out.println(quot;Son iguales los caracteresquot;);
}
else
{
System.out.println(quot;no son iguales los caracteresquot;);
}
Profesor: Marcelo Montecinos C.
139
140. Taller Programación III
Java
String
Para comparar los caracteres dentro de dos instancias, sin diferenciar
entre mayúsculas y minúsculas
equalsIgnoreCase()
ejemplo,
if (s1.equalsIgnoreCase(s2))
{
System.out.println(quot;Son iguales los caracteresquot;);
}
else
{
System.out.println(quot;no son iguales los caracteresquot;);
}
Profesor: Marcelo Montecinos C.
140
141. Taller Programación III
Java
String
Para comparar si dos objetos hacen referencia a la misma
instancia
==
ejemplo,
if (s1==s2)
{
System.out.println(“Son el mismo objeto“);
}
else
{
System.out.println(“No son el mismo objeto”);
} Profesor: Marcelo Montecinos C.
141
142. Taller Programación III
Java
String
Para saber si una cadena es menor, igual o mayor
lexicográficamente que otra.
compareTo()
ejemplo,
if (s1.compareTo(s2) < 0)
{System.out.println(“s1 es menor a s2quot;);}
else
{ if (s1.compareTo(s2) == 0)
{ System.out.println(“s1 es igual a s2quot;); }
else
{System.out.println(“s1 es mayor s2quot;);}
} Profesor: Marcelo Montecinos C. 142
143. Taller Programación III
Java
String
Para determinar si la cadena comienza con una cadena
especificada.
startsWith()
ejemplo,
if (s1.startsWith(quot;carquot;))
{
System.out.println(quot;SIquot;);
}
else
{
System.out.println(quot;NOquot;);
}
Profesor: Marcelo Montecinos C.
143
144. Taller Programación III
Java
String
Para determinar si una cadena se encuentra, a partir de una
posición, dentro de una cadena especificada,
startsWith(String cadena,int posición)
ejemplo,
if (s1.startsWith(quot;carquot;,3))
{
System.out.println(quot;SIquot;);
}
else
{
System.out.println(quot;NOquot;);
Profesor: Marcelo Montecinos C.
} 144
145. Taller Programación III
Java
String
Para determinar si la cadena termina con una cadena dada.
endsWith()
ejemplo,
if (s2.endsWith(quot;SAquot;))
{
System.out.println(quot;SIquot;);
}
else
{
System.out.println(quot;NOquot;);
}
Profesor: Marcelo Montecinos C.
145
146. Taller Programación III
Java
Paquetes
Paquetes Java más importantes:
- lang – para funciones del lenguaje;
- util – para utilidades adicionales;
- io – para entrada y salida;
- text – para formateo especializado;
- awt – para gráficos e interfaz gráfica de usuario
Para acceder a cualquiera de estos paquetes, excepto
lang que está siempre disponible, usamos el
siguiente modelo:
import java.nombrepaquete.*;
Profesor: Marcelo Montecinos C.
146
147. JDBC
Java Database
Connectivity
Profesor: Marcelo Montecinos C. 147
148. Taller Programación III
Java
Introducción
JDBC es una API, formada por conjunto de
clases e interfaces en el lenguaje de
programación Java, para ejecutar sentencias
SQL.
Ofrece un estándar de conexión a cualquier
base de datos disponible en el mercado.
Permite obtener los datos en forma fácil y
cómoda en ambientes cliente-servidor a
través de Internet/Intranet.
Profesor: Marcelo Montecinos C.
148
149. Taller Programación III
Java
¿Qué hace JDBC?
Establece una conexión a una base de
datos.
Envía sentencias SQL.
Procesa los resultados de estas
sentencias.
Profesor: Marcelo Montecinos C.
149
150. Taller Programación III
Java
Arquitectura JDBC
Arquitectura normal Puente JDBC-ODBC
Aplicaciones Java
Aplicaciones Java
JDBC API
JDBC API
Adm. de controladores JDBC
Adm. de controladores
JDBC Puente JDBC/ODBC
Controlador Controlador
JDBC JDBC Adm. de controladoresODBC
C. ODBC C. ODBC
DB DB
Profesor: Marcelo Montecinos C. DB DB
150
151. Taller Programación III
Java
Primer ejemplo básico
Connection con = DriverManager.getConnection (
quot;jdbc:odbc:nombrequot;, quot;loginquot;,
quot;passwordquot;);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(quot;SELECT a, b, c
FROM Table1quot;);
while (rs.next()) {
int x = rs.getInt(quot;aquot;);
String s = rs.getString(quot;bquot;);
float f = rs.getFloat(quot;cquot;);
}
JDBC usa una URL para especificar la base de
datos.
Profesor: Marcelo Montecinos C.
151
152. Taller Programación III
Java
...Primer ejemplo básico
Ejemplos de URL:
jdbc:mysql://myserver:4444/db1
jdbc:oracle://oraserver
jdbc:odbc:mydatabase
Profesor: Marcelo Montecinos C.
152
153. Taller Programación III
Java
JDBC vs. ODBC
Se puede usar ODBC desde Java, pero el
puente JDBC-ODBC ayuda bastante.
ODBC tiene una interfaz tipo C rompiendo el
esquema de seguridad, robustez e
implementación de Java.
ODBC mezcla funciones simple y complejas.
Los controladores de ODBC deben ser
instalados en cada cliente.
Profesor: Marcelo Montecinos C.
153
154. Taller Programación III
Java
...JDBC vs. ODBC
JDBC es una interfaz natural en Java.
Profesor: Marcelo Montecinos C.
154
155. Taller Programación III
Java
Modelos de acceso a BD
Aplicación De 2 capas
Java
Cliente La aplicación “habla” directamente
con la base de datos.
JDBC
Controlador JDBC se comunica con
Protocolo
el sistema específico que maneja la
base de datos.
BD
Servidor La base de datos puede estar en
DBMS BD otra máquina, con lo que el cliente
se comunica por red. Esta es la
configuración llamada
cliente/servidor.
Profesor: Marcelo Montecinos C.
155