You are on page 1of 58

DEPARTAMENTO DE INFORMTICA Y

SISTEMAS
1
Lo que hemos visto, en Java
Fundamentos de Programacin
Departamento de Informtica y Sistemas
Universidad EAFIT

DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
2
Agenda

El lenguaje: Java
El IDE: BlueJ
Asignaciones
Operaciones de Entrada / Salida
Condiciones
Ciclos
Secuencias
Arreglos de 1 dimensin
Matrices
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
3
El lenguaje: Java
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
4
Lenguaje de programacin muy popular en la
industria y la academia.
Desarrollado por SUN Microsystems (James Gossling)
en 1991. Oracle adquisi a SUN en enero 27, de
2010.
Primera versin: 1.0, liberada en 1995.
Versin actual: 1.7.
Inicialmente diseado para controlar dispositivos
digitales con bajo poder de cmputo
El lenguaje: Java
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
5
El lenguaje: Java
Objetivos del Java:
Orientado a Objetos
Portabilidad: el mismo programa corre sobre
diferentes sistemas operativos
Tiene incorporadas instrucciones para redes
Puede ser ejecutado desde computadores
remotos de manera segura
Fcil de usar como lenguaje de programacin
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
6
El Lenguaje: Java
La portabilidad se logra con la Mquina
Virtual de Java (JVM)

Programa en Java
Pgma en Byte Code

Windows
Linux
JVM (Windows)
JVM (Linux)
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
7
El Lenguaje: Java
Diferentes componentes:
Plataformas:
Java EE (Enterprise Edition): desarrollar software para compaas
Java SE (Standard Edition): plataforma estndar (la que usaremos)
Java ME (Mobile Edition): para dispositivos mviles
Componentes:
JRE (Java Runtime Environment): para ejecutar programas escritos
en Java.
Java JDK (Java Development Kit): para crear programas en Java
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
8
El Lenguaje: Java
Para bajar el Java:
http://www.oracle.com/technetwork/java/index.html
Nos interesa el JDK SE (Java Development Kit, Standard
Edition):
http://www.oracle.com/technetwork/java/javase/downloads/
index.html
Buscar el botn que dice Download.
Tutoriales y cursos:
http://www.oracle.com/technetwork/java/index-jsp-
135888.html
De esta pgina se puede bajar el JDK, la
documentacin y (si se quiere), el NetBeans (IDE).
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
9
El IDE: BlueJ
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
10
El IDE: BlueJ
Diseado para el primer curso de
programacin
Facilita mucho el desarrollo de programas
Limitado para desarrollos profesionales
Se baja de:
http://www.bluej.org/download/download.html

DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
11
Instalacin
Instalar primero el Java JDK
Instalar luego el BlueJ
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
12
Para comenzar
Al abrir el BlueJ:
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
13
Para comenzar
Se crea un proyecto
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
14
Para comenzar
Se crea una clase nueva (Ejemplo)
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
15
Para comenzar
Doble click sobre la clase para abrir el editor:
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
16
Para comenzar
As se abre el editor.
Hay un cdigo sencillo que se puede usar
como punto de partida.
En el editor creamos el cdigo
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
17
Una clase?
Por el momento, pensemos que en una clase
es un agregado de datos (register) + un
conjunto de funciones (mtodos)
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
18
Cada reto en un mtodo
Antes de la ltima llave, entramos el cdigo de
nuestro primer mtodo:
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
19
Cada reto en un mtodo
void miPrimerMetodo(int x, int y)
void: el mtodo no retorna un valor
miPrimerMetodo: nombre del metodo
(int x, int y): parmetros, valores de
entrada. Cuando invocamos el mtodo, BlueJ nos
exige entrar un valor.
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
20
Declaraciones
int z
Declaramos que z es una nueva variable de tipo
entero.
z = x + y;
Calculamos un valor para z. Notar el punto y
coma al final.
System.out.println(z)
Imprimimos el valor de z.
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
21
Compilar:
Click en el botn compilar
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
22
Ejecutar
Crear una instancia de Ejemplo (click derecho
sobre la clase)
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
23
Ejecutar
Hacer click derecho en la instancia para
invocar nuestro mtodo y entrar los valores de
x e y (10 y 20).
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
24
Ejecutar
En la ventana de Salida aparece el resultado
(30)
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
25
Entrada/Salida
Por ahora, la entrada la haremos pasando
parmetros de cada mtodo.
Para mostrar un mensaje, en vez del comando
Imprimir, utilizaremos la funcin:
System.out.println(Resultado +
z);
El operador +, en este caso, acta para concatenar
diversos textos
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
26
Secuencias
En Java, simplemente ponemos una instruccin
luego de otra.
Ejemplo:
x = 10;
y = 20;
z = x + y;
System.out.println(el valor de z es
+ z);
Notar el punto y coma al final de cada
instruccin.
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
27
Se pueden agrupar varias instrucciones con
{ y }. El grupo se llama una instruccin
compuesta.
Indentacin!
Secuencias
Asignaciones
En lugar de la flecha, usamos el signo =
No cambia:
Precedencia de operadores
Operaciones con enteros retornan enteros
Asignaciones
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
29
Decisiones
Ejemplo:
Si Entonces
DOF
Fin Si
Llaves
Parte Entonces
Parte DOF
Notar dnde
NO va ;

DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
30
En la parte Entonces y la parte DOF puede
ir:
Una sola instruccin
O una instruccin compuesta
O nada
Decisiones
Decisiones
Qu cambia:
Preguntar por igual es ==
Operadores de comparacin son:
==
!=
<=
>=
>
<
Decisiones
Decisiones
Operadores para expresiones booleanas:
Y se reemplaza por &&
O se reemplaza por ||
No () se reemplaza por !
Qu sigue igual:
Precedencia entre operadores de expresiones
booleanas.
Decisiones
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
33
Ciclos
Ciclos:
Mientras
haga
Fin
Mientras
Notar dnde
NO va ;
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
34
Dentro del ciclo puede ir:
Una sola instruccin
O una instruccin compuesta
O nada
Ciclos
Ciclos
Ciclo Para haga:
Notar la declaracin
e inicializacin de la i
Arreglos
Diferentes combinaciones para declarar /
definir / inicializar arreglos:
Arreglos
Arreglos
Uso de los arreglos:
Diferencia MUY IMPORTANTE: En un arreglo
de n posiciones, los subndices van de 0 a n-1.
Arreglos
Arreglos
Uso de los arreglos:
Diferencia MUY IMPORTANTE: En un arreglo
de n posiciones, los subndices van de 0 a n-1.
Arreglos
Arreglos
Uso de los arreglos:
Diferencia MUY IMPORTANTE: En un arreglo
de n posiciones, los subndices van de 0 a n-1.
Arreglos
Matrices
Diferentes combinaciones para declarar /
definir / inicializar matrices:
Matrices
Matrices
Uso de Matrices
Recordar que los ndices arrancan en 0!!!
Matrices
Funciones y Procedimientos
En Java solamente hay funciones.
Si una funcin no retorna un valor, se usa
void
Funciones y procedimientos
Funciones y Procedimientos
En Java solamente hay paso de parmetros
por valor.
Se identifican dos formas de parmetros:
Formales: los que se encuentran en la definicin
de la funcin.
Reales: los que se encuentran en la invocacin de
la funcin.
Funciones y procedimientos
Funciones y Procedimientos
Paso de valores
Funciones y procedimientos
Funciones y Procedimientos
Todos los parmetros son por valor, pero
existe una forma especial cuando el valor
pasado es un objeto.
Se pueden cambiar los valores internos del
objeto.
Funciones y Procedimientos
Funciones y Procedimientos
Paso de referencias
Funciones y procedimientos
Funciones y Procedimientos
Tomado del taller de ciclos y arreglos

Un programa lee un arreglo de n posiciones con valores
booleanos (true significa 1 y false significa 0). El arreglo
representa un nmero en base 2. La primera posicin del
arreglo representa el dgito ms significativo del nmero
binario, la segunda posicin del arreglo representa el
siguiente dgito del nmero binario, y as sucesivamente.
La funcin debe retornar el valor decimal del nmero
binario almacenado en el arreglo. Esto es, si la funcin
recibe el arreglo {true, true, true, false}, la funcin debe
retornar 14.

Ejemplo
Funciones y Procedimientos
Pseudo-cdigo:
// Leer vector boolean (vector) y n
Num i valorDec = 0 potencia2 = 1
Para i = n; i > 0; i <- i 1 haga
Si vector[i] = Verdad Entonces
valorDec <- valorDec + potencia2
Fin Si
potencia2 <- potencia2 * 2
Fin Para
Imprimir valorDec
Ejemplo
Funciones y Procedimientos
Cdigo en Java:
public void valorDecimal(boolean vector[])
{
int valorDec = 0;
int potencia2 = 1;

for (int i = vector.length-1; i >= 0; i--) {
if (vector[i]) {
valorDec = valorDec + potencia2;
}
potencia2 = potencia2 * 2;
}
System.out.println(valorDec);
}
Ejemplo
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
50
En el cdigo se pone un breakpoint:
(Ver ejemplo)
Depurador
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
51
Depurador
Muestra la ejecucin del programa paso a
paso
Similar a una prueba de escritorio, pero
automatizado

DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
52
El ejecutar el programa, se abre la ventana de
debug, hacemos click en step:
Depurador
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
53
As podemos ver la ejecucin paso a paso
Depurador
http://codingbat.com/
Pgina para practicar programacin en Java y
Python
Creada por el prof. Nick Parlante, de la U. de
Stanford
Ejercicios con varios niveles de dificultad
CodingBat
http://codingbat.com/
Pgina para practicar programacin en Java y
Python
Creada por el prof. Nick Parlante, de la U. de
Stanford
Ejercicios con varios niveles de dificultad
CodingBat
Los ejercicios estn planteados en Ingls
CodingBat
En nuestros parciales tendremos una seccin
en CodingBat
CodingBat
DEPARTAMENTO DE INFORMTICA Y
SISTEMAS
58
Conclusiones
Con esta informacin se pueden
entrar en Java todos los ejemplos
que se han hecho en Pseudo-Cdigo.
El BlueJ es un IDE que facilita la labor
de comenzar a programar en Java