Estructuras de control
Las estructuras de control pueden dividirse en dos: Estructuras de control Condi
cional y Estructuras de control Repetitivo.
Las estructuras de control condicional son las que incluyen alternativas de sele
ccin en base al resultado de una operacin booleana(El resultado de una operacin boo
leana es siempre verdadero o falso), como por ejemplo, una comparacin (A=B). Segn
la expresin sea cierta o falsa, se ejecutar un trozo de cdigo u otro. Es el caso de
la sentencia IF(Si) THEN(Entonces) ELSE(Sino) de Pascal o Basic:
IF A=0 THEN
PRINT "A vale 0"
ELSE
PRINT "A no vale 0"
Otra sentencia de control son las de tipo SWITCH CASE. En este tipo de sentencia
s se especifica la variable a comparar y una lista de valores con lo que compara
r. Aquel que sea el verdadero, se ejecutar:
Quizs suene ms complicado de lo que es. Un ejemplo: Queremos sumar dos nmeros. Nues
tro programa tendr que tener tres cajones: Uno para cada nmero y otro para el resu
ltado. Cada cajn tiene un nombre en vez de una posicin de memoria, de manera que sl
o hay que nombrarlo:
Necesito cajones A, B y Resultado
Lee un nmero y gurdalo en A
Lee un nmero y gurdalo en B
Suma A y B y gurdalo en Resultado
Imprime el contenido de Resultado
He aqu nuestro programa. Como cabe pensar, un procesador no tiene la instruccin "I
mprime por pantalla"; esto es una llamada a otra porcin de cdigo que, gracias a la
abstraccin, nosotros no hemos escrito, o hemos escrito una sola vez; a partir de
lo cual podemos imprimir todo el texto que queramos en la pantalla.
Las posiciones de memoria A y B son Variables. Si queremos leerlas o escribirlas
, podemos hacerlo. Tpicamente, existirn datos que no pensamos modificar; no querre
mos que el usuario tenga que introducirlos cada vez, pues son de naturaleza ms co
nstante que otros (como puede ser el valor Pi para calcular el permetro o rea de u
n crculo). Para evitar modificarlos por error, podemos pedir al sistema variables
especiales, que no puedan ser reescritas. Son las Constantes. Un ejemplo:
VIERNES, 2 DE DICIEMBRE DE 2011
Tcnicas Bsicas de Programacin
La programacin estructurada sigue tres reglas: la secuencia, la iteracin y la deci
sin. La primera de ellas indica que las instrucciones del cdigo se leern de princip
io a fin; la segunda indica que, segn cierta condicin, un nmero de instrucciones po
dran repetirse un numero determinado de veces, y la tercera indica que segn unas c
iertas condiciones se ejecutarn o no un conjunto de instrucciones. En el siguient
e algoritmo para limpiar platos se aprecian estas tres caractersticas. La indenta
cin de las instrucciones indican cules son englobadas y cules no por sus predecesor
as.
mientras haya platos
coger plato
mientras haya suciedad
echar jabon
pasar el estropajo por el plato
si plato es azul
ponerlo con los azules
En cdigo no estructurado, quedara algo ms extrao, pero igualmente valido.
1
2
3
4
5
6
7
coger plato
echar jabn
pasar el estropajo por el plato
si hay suciedad ir a la instruccin 2
si el plato no es azul ir a la instruccin 7
ponerlo con los azules
si hay ms platos ir a la instruccin 1
JDialog.
Por qu es esto?
Un JFrame en una ventana que en Windows crea, en la barra de herramientas, donde
est el men de "inicio" y las aplicaciones que tenemos abiertas, un nuevo botn de a
plicacin abierta. En una aplcacin lo normal es que slo haya un botn ah. Si creamos va
rios JFrame en nuestra aplicacin, apareceran varios botones, uno por cada JFrame.
El JDialog no muestra este botn. Por ello, el resto de las ventanas de nuestra ap
licacin deberas ser JDialog.
Hay otro motivo ms. Un JFrame no admite a ninguna otra ventana como padre. El JDi
alog s admite como padres un JFrame u otros JDialog. Esto es importante porque un
a ventana hija siempre quedar por encima de su ventana padre. Si al crear los JDi
alog les pasamos el JFrame como padre, los JDialog siempre estarn visibles por en
cima del JFrame. No se podrn ir "detrs" de l.
Si adems, en el constructor del JDialog ponemos a true el flag que indica que es
modal, adems de pasarle una ventana padre, entonces el JDialog impedir el acceso a
las otras ventanas hasta que se cierre. Esta seria una forma de crear el JFrame
y el JPanel pueden tambin descargarse el cdigo fuente el link lo deje mas abajo.
String path="";//creamos una variable global para guardar el path
private void open() throws IOException {
//empezamos implementando la clase JFileChooser para abrir archivos
JFileChooser JFC = new JFileChooser();
//filtro que muestra solo los archivos con extension *.edu
JFC.setFileFilter(new FileNameExtensionFilter("todos los archivos *.EDU"
, "edu","EDU"));
//se comprueba si se ha dado al boton aceptar
int abrir = JFC.showDialog(null, "Abrir");
if (abrir == JFileChooser.APPROVE_OPTION) {
FileReader FR = null;
BufferedReader BR = null;
try {
//abro el fichero y creo un BufferedReader para hacer
//una lectura comoda (tener el metodo readLine();)
File archivo = JFC.getSelectedFile();//abre un archivo .lengf
//evitar abrir archivo con otra extension que no sea *.LFP
String PATH = JFC.getSelectedFile().getAbsolutePath();
if(PATH.endsWith(".edu")||PATH.endsWith(".EDU")){
FR = new FileReader(archivo);
BR = new BufferedReader(FR);
//leyendo el archivo
String linea;//variable para leer linea por linea el archivo
de entrada
if(path.compareTo(archivo.getAbsolutePath())==0){
JOptionPane.showMessageDialog(this, "Archivo Abierto","O
ops! Error", JOptionPane.ERROR_MESSAGE);
}else{
path = archivo.getAbsolutePath();
jTextArea.setText(null);//limpiamos el textArea antes de
sobreescribir
while((linea=BR.readLine())!=null){ //cuando termina el
texto del archivo?
}
JOptionPane.showMessageDialog(null,"Guardado exitoso!", "Gua
rdado exitoso!", JOptionPane.INFORMATION_MESSAGE);
}
}catch (Exception e){//por alguna excepcion salta un mensaje de erro
r
JOptionPane.showMessageDialog(null,"Error al guardar el archivo!
", "Oops! Error", JOptionPane.ERROR_MESSAGE);
}
}
}
JFileChooser para abrir y/o guardar archivos
JFileChooser es una clase java que nos permite mostrar fcilmente una ventana para
la seleccin de un fichero. En esta oportunidad les dejare un ejemplo de una de l
as muchas formas de como Abrir y Guardar un archivo aplicando filtros tambin que
al momento de guardar genere automticamente la extensin y que evite abrir un archi
vo que ya se encuentra abierto.
La relacin empleada para organizar los casos de uso es la de un extend, ya que se
intenta identificar que cualquiera de estas funcionalidades se pueden o no real
izar tanto individual corno conjuntamente. Adems, hemos relacionado mediante un e
xtend el caso de uso de Gestin de locales y de pisos con el caso de uso Gestin de
edificio. Con esto reflejamos que la gestin de edificios puede conllevar la gestin
de locales, de pisos o de ambos.
En el
s con
po de
as de
?
?
?
?
?
Alquilar.
Desalquilar.
Darse de baja.
Modificar sus datos.
Consultarlos.
Para cada una de estas operaciones hay un caso de uso en el diagrama reflejando
la situacin anterior. Adems, ya que se nos dice que para la realizacin de cualquier
a de las operaciones es necesaria su identificacin, se ha reflejado un caso de us
o nombrado Identificacin que se relaciona con los anteriores mediante la relacin d
e include. Con la relacin de include hacemos especial nfasis en esta situacin.
Tras volver a examinar con ms detalle la descripcin proporcionada se observa que c
uando se produce el alquiler ste puede ser el de un piso (Alquiler Piso) un local
(Alquiler Local) y de edificio (Alquiler de Edificio). Por ello se generan tres
nuevos casos de uso que implican una relacin de extend con el caso de uso de Alq
uilar.
Como hemos observado que la primera vez que se produce una operacin de alquiler s
e debe permitir el alta de los datos del inquilino, se ha creado el caso de uso
Alta Inquilino como una extensin de Alquiler Piso, Alquiler Local y Alquiler Edif
icio.
Finalmente, el ltimo diagrama de caso de uso que se muestra (Figura 3) es aquel e
n el que se encuentra involucrado el actor secretario. Tras una visin general de
las caractersticas del sistema, observamos que las tareas del secretario son:
Obtencin de los distintos tipos de recibos. Obtener los informes econmicos. Genera
cin de los listados.