Vous êtes sur la page 1sur 138

Lenguaje de Programacion IV

CESTUNT
Lenguaje de Programacion IV

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Indice
UNIDAD 1: JAVA JSP ELEMENTOS BASICOS
1. INTRODUCCION
2. MODELO DE SOLUCION
3. VARIABLES
4. TIPOS DE DATOS
5. CLASES NUMERICAS
6. OPERADORES ARITMETICOS
7. OPERADOR CAST Y CONVERSIONES
8. JERARQUIA DE OPERACIONES
9. APLICACIONES
10. CONCEPTOS BASICOS DE OOP
11. JAVA SERVER PAGE (1)
APENDICE: OBJETOS HTML
APENDICE: PALABRAS RESERVADAS JAVA

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
1.
2.
3.
4.
5.
6.
7.

INTRODUCCION
INSTRUCCIONES DE CONTROL DE PROGRAMA
INSTRUCCIONES CONDICIONALES
CONDICIONES SIMPLES
OPERADORES RELACIONALES
INSTRUCCION IF
CONDICIONES COMPUESTAS
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

8. INSTRUCCION SWITCH
9. CONTROL SELECT
10. CONTROL CHECKBOX Y MANEJO DE EXEPCIONES
11. CONTROL RADIOBUTTON
12. CICLO FOR
13. CICLO WHILE
14. CICLO DO...WHILE
15. CONCLUSIONES ACERCA DE CICLOS

UNIDAD 3: JAVA JSP ARREGLOS


1.
2.
3.
4.

INTRODUCCION
ARREGLOS TRADICIONALES
ARREGLOS TIPO LISTA
ARREGLOS TIPO TABLA

UNIDAD 4: JAVA JSP FUNCIONES Y PROCEDIMIENTOS


1.
2.
3.
4.
5.

PROCEDIMIENTOS Y FUNCIONES
PARAMETROS
VARIABLES LOCALES Y GLOBALES
FUNCIONES
ARREGLOS COMO PARAMETROS

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


1. INTRODUCCION
2. ESTRUCTURAS O REGISTROS
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

3. ARCHIVOS (1)
4. ARCHIVOS (2)
5. CREACION ARCHIVOS
6. GRABACION Y LECTURA DISCO
7. BUSQUEDA EN ARCHIVO DIRECTO
8. FILTROS o CONDICIONES
9. BAJA o ELIMINACION
10. OPERACIONES CON CAMPOS
11. EDICION o MODIFICACION REGISTROS
12. GRAFICOS

UNIDAD 6: JAVA JSP ARCHIVOS DIRECTOS


1.
2.
3.
4.
5.
6.
7.
8.
9.

INTRODUCCION ARCHIVOS DIRECTOS


CREACION ARCHIVOS
GRABACION Y LECTURA DISCO
BUSQUEDA EN ARCHIVO DIRECTO
FILTROS o CONDICIONES
BAJA o ELIMINACION
OPERACIONES CON CAMPOS
EDICION o MODIFICACION REGISTROS
GRAFICOS

UNIDAD 7: JAVA JSP INT A LAS BASES DE DATOS (MICROSOFT


ACCESS)
1. INTRODUCCION
2. MODELOS DE ALMACENAMIENTO DE DATOS
3. TABLAS
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

4. TABLAS (CONTINUACION)
5. MICROSOFT ACCESS
6. JDBC SQL RESULTSET CONNECTION
7. SELECCION O DESPLIEGUE
8. INSERCCION O ADICION DE REGISTROS
9. BUSQUEDAS
10. FILTROS
11. OPERACIONES CON CAMPOS
12. BAJAS
13. EDICION DE REGISTROS
14. GRAFICOS O IMAGENES

UNIDAD 8: JAVA JSP INT A LAS BASES DE DATOS (MYSQL)


1. INTRODUCCION
2. MODELOS DE ALMACENAMIENTO DE DATOS
3. TABLAS
4. TABLAS (CONTINUACION)
5. MYSQL (1)
6. OBJETO RESULTSET MYSQL (2)
7. SELECCION O DESPLIEGUE
8. INSERCCION O ADICION DE REGISTROS
9. BUSQUEDAS
10. FILTROS
11. OPERACIONES CON CAMPOS
12. BAJAS
13. EDICION DE REGISTROS
14. GRAFICOS O IMAGENES

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD I: JAVA JSP ELEMENTOS BASICOS


TEMA 1: INTRODUCCION JAVA JSP
From Ugly Duckling to Swan
Eli Cohen, Reconceptualizing Information Systems as a Field of the
Transdiscipline Informing Science: From Ugly Duckling to Swan,
Journal of Computing and Information Technology. 7 (3) 1999, 213219.
Hans Christian Anderson wrote a tale in which all the young ducks
made fun of another. They made the duckling feel inadequate
because he was different. One day a swan, the most beautiful of the
fowl, declared that the youngster was in fact a young swan and a fine
one at that.
Information Systems is the field of inquiry that attempts to provide
the business client with information in a form, format, and schedule
that maximizes its effectiveness.
Informacin y Conocimiento son los dos elementos claves del nuevo
milenio ninguna sociedad podr alcanzar ni puede ignorar este
nuevo esquema ya las naciones no se miden por su riqueza
industrial, ni sus activos fsicos, ni por su poder militar, sino por la
cantidad de informacin que produce y consume, as como por la
recombinacin de informacin nueva en un conocimiento de grado
superior.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Nuevos sistemas de informacin, tienden a ser cada vez de mayor


alcance y complejidad sobre todo cuando se toman en cuenta las
nuevas necesidades de informacin y conocimiento que demandan
las nuevas organizaciones.
Nuevos sistemas de informacin son costosos en tiempos y recursos,
la solucin moderna de sistemas de informacin exigen
herramientas y metodologas que resuelvan rpida, econmica,
eficiente y de manera global, problemas de informacin y
conocimiento planteados por las organizaciones.
Adems el pleno potencial del hardware tampoco es aprovechado
plenamente y existe un considerable retraso con el software y sus
aplicaciones generando lo que se conoce como crisis del software.
Nuevos paradigmas de programacin se ocupan para la creacin de
nuevos sistemas y necesidades creativas de informacin.
Java un lenguaje de programacin moderno implementado por la
compaa www.java.sun.com a finales de 1996, se ha convertido en
el lenguaje estndar para la construccin de aplicaciones basadas en
internet as como de los nuevos modelos de programacin, tales
como programacin mvil, programacin para dispositivos,
programacin para servicios web, etc.
En programacin orientada a objetos ( OOP ) un programa es
considerado como un sistema de objetos interactuando entre s,
ambientes de desarrollo visuales facilitan aun ms la construccin
de programas y solucin de problemas, porque permiten abstraer al
ingeniero de software de todo el GUI (interfase grfica) del
problema, que constituye ms del 60% del cdigo normal de un
programa.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

En OOP todo problema aun aquellos sencillos de informacin, se


consideran y resuelven como mdulos de cdigo gigante (clase) que
contiene todo el cdigo necesario (variables, procedimientos,
funciones, interfaces, etc.) para solucionar el problema.
En programacin java bsica, se tiene la mezcla de lo mejor de estos
tres mundos, es decir construimos programas, aplicaciones y
sistemas de informacin usando tcnicas estructuradas,
construyendo objetos y diseando sistemas grficos, y todo
orientado a la construccin de sistemas de informacin basados en
redes de cualquier tipo o tamao.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BSICOS


TEMA 2: MODELO DE SOLUCIN JAVA JSP
En general un problema de informacin es posible entenderlo,
analizarlo y descomponerlo en todos sus componentes o partes que
de una u otra manera intervienen tanto en su planteamiento como
en su solucin.
Una herramienta rpida que nos permite descomponer en partes un
problema para su solucin es el llamado modelo de solucin, esta
consiste de una pequea caja que contiene los tres elementos ms
bsicos en que se puede descomponer cualquier problema sencillo
de informacin, estas tres partes son:
LA PRIMERA PARTE son todos los datos que el computador ocupa
para resolver el problema, estos datos son almacenados
internamente en la memoria del computador en las llamadas
variables de entrada.
LA SEGUNDA PARTE son todas las operaciones generalmente
algebraicas necesarias para solucionar el problema, generalmente
esta parte del modelo es una ecuacion algebraica o formula (o
igualdad matemtica, ej. X= y + 5).
LA TERCERA PARTE es el resultado o solucin del problema que
generalmente se obtiene de la parte de operaciones del modelo y
dichos datos estn almacenados en las llamadas variables de salida.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

En resumen para todo problema sencillo de informacin es


necesario plantearse las siguientes preguntas:
Que datos ocupa conocer el computador para resolver el problema
y en cuales variables de entrada se van a almacenar?
Que procesos u operaciones debe realizar el computador para
resolver el problema planteado?
Que informacin o variables de salida se van a desplegar en pantalla
para responder al problema planteado originalmente?
Como nota importante no confundir los trminos datos, variables e
informacin:
Datos se refiere a informacin en bruto no procesada ni catalogada,
por ejemplo Tijuana, calle primera # 213,15 aos,
$2,520.00, etc.
Variables es el nombre de una localidad o direccin interna en la
memoria del computador donde se almacenan los datos, ejemplo de
variables para los casos del inciso anterior, CIUDAD, DIRECCIN,
EDAD, SUELDO, ETC.
Informacin son datos ya procesados que resuelven un problema
planteado.

EJEMPLO DE MODELO DE SOLUCIN

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Construir un modelo de solucin que resuelva el problema de


calcular el rea de un tringulo con la formula rea igual a base por
altura sobre dos.
Variable(s) de Entrada Proceso u Operacin
Variable(s) de Salida
BASE ALTURA
AREA = BASE * ALTURA / 2 AREA

PROBLEMA 2.- CONVERTIR LA EDAD EN AOS DE UNA PERSONA A


MESES.
PROBLEMA 3.- CONVERTIR PESOS A DLARES.
PROBLEMA 4.- CALCULAR EL REA DE UN CIRCULO CON LA
FORMULA
AREA = PI * RADIO2
PROBLEMA 5.- EVALUAR LA FUNCIN y = 5x-3x +2 PARA CUALQUIER
VALOR DE X.

Observar para el caso de constantes fijas o conocidas (PI) no


se debe dar como dato de entrada su valor en cambio colocar
directamente su valor dentro de la formula en la parte de
operaciones del problema.
Pero recordar tambin que existirn problemas sencillos
donde:
No se ocupan entradas o no se ocupan operaciones, pero
todos ocupan salida.
Una formula grande o muy compleja puede ser ms segura y
fcil de resolver, si es descompuesta y resuelta en partes,
juntando al final los parciales para obtener el resultado final.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Un problema puede tener ms de una solucin correcta.


El problema no esta suficientemente explicado o enunciado,
entonces, estudiarlo, analizarlo y construirlo de manera
genrica.

TAREAS PROGRAMACION JAVA JSP


Construir los modelos de solucin de los siguientes problemas:
PROBLEMA 6.- Convertir millas a kilmetros (caso normal)
PROBLEMA 7.- Convertir 125 metros a centmetros (no ocupa
entradas)
PROBLEMA 8.- Se calcula que en promedio hay 4.7 nidos en cada
rbol en la UABC, tambin se calcula que en cada nido existen un
promedio de 5.8 pjaros, se pide calcular la cantidad total de nidos
y de pjaros en los 227 arboles que existen en la UABC. (no ocupa
entradas)
PROBLEMA 9.- La gorda Sra. Lpez y sus 8 hijos solo compran una
vez al mes su mandado en conocido supermercado, en dicha tienda
el kilogramo de frijol cuesta $8.75, el paquete de tortillas cuesta
$3.55 y el frasco de caf vale $14.25, si solo compran de estos tres
productos para su mandado, calcular su gasto total.( problema no
claro)
PROBLEMA 10.- Capturar y desplegar los cinco datos mas
importantes de un automvil (no ocupa operaciones)

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

PROBLEMA 11.- La distancia Tijuana - Ensenada es de 110 Kms, si un


automvil la recorre a una velocidad constante de 30 millas por hora,
cuanto tiempo tarda en llegar. (1 milla =1.609 Km.) (dos maneras
correctas de resolverlo).
PROBLEMA 12.-Evaluar la funcin y = 3x2 + 2x 5 para cualquier valor
de x. (caso normal).
PROBLEMA 13.-Evaluar la funcin y = -5x3 - 3x2 + 8 para cuando x vale
4. (no ocupa entradas).

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD I: JAVA JSP ELEMENTOS BSICOS


TEMA 3: JAVA JSP VARIABLES
Identificadores son conjuntos de letras y/o nmeros que se utilizan
para simbolizar todos los elementos que en un programa son
definibles por el usuario (programador o ingeniero de software) del
mismo como son las variables donde se almacenan datos, funciones(
pequeos mdulos con cdigo), etiquetas, clases, objetos, etc.
En Java JSP una variable se define como un identificador que se
utiliza para almacenar todos los datos generados durante la
ejecucin de un programa.
Existen ciertas reglas en cuanto a variables:

Claras y con referencia directa al problema.


No espacios en blanco, ni smbolos extraos en ellas.
Se pueden usar abreviaturas, pero solo de carcter general.
No deben ser palabras reservadas del lenguaje.

Ejemplos de buenas variables:


Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD I: JAVA JSP ELEMENTOS BASICOS


TEMA 4: JAVA JSP TIPOS DE DATOS
En Java Jsp a toda variable que se use en un programa, se le debe
asociar (generalmente al principio del programa) un tipo de dato
especfico.
Un tipo de dato define todo el posible rango de valores que una
variable puede tomar al momento de ejecucin del programa y a lo
largo de toda la vida til del propio programa.
Los tipos de datos ms comunes en java jsp son:
Primitive Data Types
Keyword Description
Size/Format
(integers)
byte
Byte-length integer
8-bit two's complement
short Short integer
16-bit two's complement
int
Integer
32-bit two's complement
long
Long integer
64-bit two's complement
(real numbers)
float
Single-precision floating point
32-bit IEEE 754
double Double-precision floating point
64-bit IEEE 754
(other types)
char
A single character
16-bit Unicode character
boolean A boolean value (true or false) true or false
* tabla tomada de java.sun.com documentation
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Como se observa es muy similar a las de c o c++.


Para el caso de strings se debera usar la Clase String que tiene dos
constructores, de momento entenderemos esto ultimo como dos
maneras de crearse, ejemplo;
1. String nombre = new String();
2. String ciudad = new String(Tijuana);
En este ultimo caso se crea la string y se inicializa con un dato o valor.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD I: JAVA JSP ELEMENTOS BASICOS


TEMA 5: JAVA JSP CLASES ESPECIALES
En java Jsp como lenguaje de programacion orientado a objetos
existen aparte de la clase String vista en el tema anterior cuatro clases
especiales, descendientes de la clase NUMBERS, que contienen una
serie de metodos que facilitan la interaccion con los usuarios de
nuestras aplicaciones en captura y despliegue de datos numericos.
Sin embargo su caracteristica mas importante a tomar en cuenta, es
que objetos numericos derivados de estaS clase, no pueden entrar a
operaciones DIRECTAMENTE, ni recibir el resultado de
operaciones.

Class Integer
public
{

final

//
public
public
//
public
public
//
public
public
public
public
public
public
val);
public
public
public
public
public
public
public
public

class

java.lang.Integer extends

Fields
final static int **MAX_VALUE**;
final static int **MIN_VALUE**;
Constructors
**Integer**(int value);
**Integer**(String s);
Methods
double **doubleValue**();
boolean **equals**(Object obj);
float **floatValue**();
static Integer **getInteger**(String
static Integer **getInteger**(String
static Integer **getInteger**(String

java.lang.Number

nm);
nm, int val);
nm, Integer

int **hashCode**();
int **intValue**();
long **longValue**();
static int **parseInt**(String s);
static int **parseInt**(String s, int radix);
static String **toBinaryString**(int i);
static String **toHexString**(int i);
static String **toOctalString**(int i);

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
public
public
public
public
public

String
static
static
static
static

**toString**();
String **toString**(int i);
String **toString**(int i, int radix);
Integer **valueOf**(String s);
Integer **valueOf**(String s, int radix);

}
Esta clase convierte un dato de tipo int a un objeto.
Este objeto contiene un solo campo de tipo int.
Pero tambien el objeto contiene una serie de metodos para
convertir un valor int a una String y tambien para convertir una
String a int.
Ademas de otros metodos de igual utilidad.

* Clase y notas tomadas directamente de java.sun

Class Double
public final class java.lang.Double extends java.lang.Number
{
//
public
public
public
public
public
//
public
public
//
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public

Fields
final static double **MAX_VALUE**;
final static double **MIN_VALUE**;
final static double **NaN**;
final static double **NEGATIVE_INFINITY**;
final static double **POSITIVE_INFINITY**;
Constructors
**Double**(double value);
**Double**(String s);
Methods
static long **doubleToLongBits**(double value);
double **doubleValue**();
boolean **equals**(Object obj);
float **floatValue**();
int **hashCode**();
int **intValue**();
boolean **isInfinite**();
static boolean **isInfinite**(double v);
boolean **isNaN**();
static boolean **isNaN**(double v);
static double **longBitsToDouble**(long bits);
long **longValue**();
String **toString**();
static String **toString**(double d);
static Double **valueOf**(String s);

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
* La misma fuente y las mismas notas de la clase anterior

Class Float
public
{

final

class

java.lang.Float extends

java.lang.Number

// Fields
public final static float **MAX_VALUE**;
public final static float **MIN_VALUE**;
public final static float **NaN**;
public final static float **NEGATIVE_INFINITY**;
public final static float **POSITIVE_INFINITY**;
// Constructors
public **Float**(double value);
public **Float**(float value);
public **Float**(String s);
// Methods
public double **doubleValue**();
public boolean **equals**(Object obj);
public static int **floatToIntBits**(float value);
public float **floatValue**();
public int **hashCode**();
public static float **intBitsToFloat**(int bits);
public int **intValue**();
public boolean **isInfinite**();
public static boolean **isInfinite**(float v);
public boolean **isNaN**();
public static boolean **isNaN**(float v);
public long **longValue**();
public String **toString**();
public static String **toString**(float f);
public static Float **valueOf**(String s);
}

* La misma fuente y notas anteriores

Class Long
public final class java.lang.Long extends java.lang.Number
{
// Fields
public final static long MAX_VALUE;
public final static long MIN_VALUE;
// Constructors
public Long(long value);
public Long(String s);
// Methods
public double doubleValue();

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public

boolean equals(Object obj);


float floatValue();
static Long getLong(String nm);
static Long getLong(String nm, long val);
static Long getLong(String nm, Long val);
int hashCode(); public int intValue();
long longValue();
static long parseLong(String s);
static long parseLong(String s, int radix);
static String toBinaryString(long i);
static String toHexString(long i);
static String toOctalString(long i);
String toString();
static String toString(long i);
static String toString(long i, int radix);
static Long valueOf(String s);
static Long valueOf(String s, int radix);

* La misma fuente y notas anteriores

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 6: JAVA JSP OPERADORES ARITMETICOS
Un operador es un smbolo especial que indica al compilador que
debe efectuar una operacin matemtica o lgica.
Java jSP reconoce los siguientes operadores aritmticos:
Operador Operacin
+
*
/
%

Suma
Resta
Multiplicacion
Division
Residuo o Modulo

Como notas importantes a recordar siempre;


En problemas de division entre enteros, java trunca la parte residual,
ejemplo;
Desplegar> 13/5 > el resultado es 2
Mas adelante se dira como resolver este problema.
Para resolver los problemas de potencias y races, se usan ciertas
instrucciones especiales que proporciona el lenguaje, llamadas
funciones matemticas, en java existe toda una librera de
instrucciones o funciones matemticas.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Recordar que todas las funciones reciben uno o ms datos o valores


y regresan siempre un resultado, una de estas funciones
matemticas es:
import java.lang.math ;
public static double pow(double a, double b);

Esta funcin ocupa dos valores o datos ( base y exp) ambos de tipo
double, y regresa un resultado tambin de tipo double, ejemplo;
* resolver el problema de calcular 53
import java.io.*;
import java.lang.Math;
public class ejemplo1
{
public static void main(String args[])
{
double base =5;
double exponente=3;
double potencia =0;
potencia = Math.pow(base, exponente);
System.out.println("potencia =" +potencia);
} // cerrar main
} //cerrar clase

Para resolver el problema de races, se aprovecha una de las mas


elementales y conocida de las leyes de exponentes que dice:

Es decir una raz cualquiera se puede transformar a una potencia con


un exponente fraccionario.
Ejemplo:
Problema y = 3 x esto es equivalente a y = 3 * x 1/2 entonces
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Usando la funcin pow


Y = 3*Math.pow(x, 0.5);

* En este ejemplo no funcional se esta dando por supuesto que no


interesa el tipo de dato que requiere la funcin pow() para trabajar
correctamente.
Para realizar operaciones con objetos numericos, recordar que no se
pueden hacer directamente operaciones con ellos ni tampoco pueden
recibir resultados en ellos, lo que se debe hacer es usar una variable
temporal de tipo apropiado, hacer la operacion con dicha variable y
al final si se quiere convertir esta variable al objeto numerico
apropiado (esto ultimo se vera en el siguiente tema), como lo muestra
el siguiente ejemplo;
Integer alfa = new Integer(20);
Double zeta = new Double(5);
double alfa1=0, zeta1=0;
alfa1=alfa.doubleValue();
zeta1=zeta.doubleValue();
alfa1=alfa1 + zeta1;
desplegar alfa1;
Como se observa se crearon dos objetos numericos, luego dos
variables numericas normales, luego estas dos ultimas variables se
cargan con los objetos numericos que emplean metodos propios para
convertirlos a datos normales.
La libreria matematica de java jsp completa incluye:
Class Math
public final class java.lang.Math
extends java.lang.Object
{ Fields

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
public final static double E;
public final static double PI;
Methods
public static double abs(double a);
public static float abs(float a);
public static int abs(int a);
public static long abs(long a);
public static double acos(double a);
public static double asin(double a);
public static double atan(double a);
public static double atan2(double a, double b);
public static double ceil(double a);
public static double cos(double a);
public static double exp(double a);
public static double floor(double a);
public static double IEEEremainder(double f1, double f2);
public static double log(double a);
public static double max(double a, double b);
public static float max(float a, float b);
public static int max(int a, int b);
public static long max(long a, long b);
public static double min(double a, double b);
public static float min(float a, float b);
public static int min(int a, int b);
public static long min(long a, long b);
public static double pow(double a, double b);
public static double random();
public static double rint(double a);
public static long round(double a);
public static int round(float a);
public static double sin(double a);
public static double sqrt(double a);
public static double tan(double a);
}

* fuente tomada de java.sun.com

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 7: JAVA JSP ELEMENTOS BASICOS

TEMA 7: JAVA JSP OPERADOR CAST y CONVERSIONES


Se puede forzar un dato, variable o una expresin a convertirse o
cambiarse a un nuevo tipo de dato.
El operador cast realiza este proceso, es decir convierte datos,
variables o expresiones a un nuevo tipo de dato, su formato es:
(nvotipo) dato , var, exp;
Ejemplo:
// declaracin
int alfa;
// Asignacin
alfa = 20;
// Cambio de tipo
(float) alfa;

Ejemplo:
(int) 3.1416;

en este ejemplo se est convirtiendo un float a int, recordar


que en este caso ya no se tendrn los decimales.
Como nota importante se puede hacer cast solo con tipos de
datos, no entre tipos de datos y objetos de una clase numerica.

Como nota importante este operador resuelve los dos problemas


pendientes:

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

1. El de la divisin entre enteros.


2. El tipo de dato especifico que requieren las funciones.
Ejemplos:
a) // Declaracin
float alfa;
// Operacin
alfa = (float)23/5;
// Pero en estos casos es preferible
alfa=23/5.0;

En toda divisin recordar agregar a uno de los dos valores el (.0), solo
que los dos elementos sean variables entonces usar el operador cast
con una de ellas.
b)// Declaracin
double potencia;
// Operacin
potencia = Math.pow ( (double)5, (double)3);

Como se observa en el ejemplo, se puede usar pow(), directamente


con los datos, argumentos o parmetros requeridos , si estos son
numricos, pero transformndolos con el operador cast.
Esto tambin va a permitir evaluar expresiones matemticas de
manera mas directa y sencilla, solo recordando usar un pow() por cada
potencia y cada raz de la ecuacin, ejemplo:
Sea

dentro de un programa esto se resuelve con;

// rea de declaracin de variables


double y, x;
// rea de captura de datos
capturar el valor de x;
// rea de operaciones
y = 3 * Math.pow(x, (double)3) - Math.pow(x, (1/3.0)) + 4 *
Math.pow(x, (double)2));
// rea de despliegue de resultados

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
desplegar x, y

En Java Jsp para convertir tipos de datos numericos a objetos


numericos y viseversa se deberan usar los metodos que traen las
clase numericas de manera apropiada, en general existen tres casos
generales difrentes, considerando datos o variables numericas,
objetos numericos y strings que es un caso especial y comun:
a.1) Variable numerica a variable numerica
Usar el operador cast ejemplo:
var to var
int alfa1=10; double alfa2=3.1416;
alfa1= (int)alfa2;
observar que valores decimales deben declararse como doubles
a.2) variable numerica a string
ejemplo;
var to string
int zeta=50;
String alfa= String.valueOf(zeta);
a.3) variable numerica a objeto numerico
caso 1: usando constructor
int zeta=80;
Float alfa4 = new Float(zeta);
caso 2: ya existe el objeto numerico
Double alfa5 = new Double(0);
Int zeta=30;
alfa5=Double.valueOf(String.valueOf(zeta));
b.1) Objeto Numerico a Variable numerica

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

todos los objetos numericos deben crearse inicializados aunque sea


a (0)
Integer alfa = new Integer(300);
Int zeta = alfa.intValue();
b.2) Objeto numerico a String
Float alfa = new Float(3.45);
String beta = new String( );
Beta = alfa.toString();
B.3) Objeto Numerico a Objeto Numerico
Integer alfa=new Integer(50);
Double beta=new Double(0);
beta = beta.valueOf(alfa.toString());
c.1) String to variable numerica
String alfa= new String(3.5);
double beta= 0;
beta= Double.parseDouble(alfa);
c.2) String to Objeto Numerico
String alfa8=new String(50);
Double alfa9=new Double(0);
alfa9 = alfa9.valueOf(alfa8);
TAREAS JAVA JSP POW():
1.
2.
3.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS

TEMA 8: JAVA JSP JERARQUIA DE OPERACIONES


En Java Jsp como en todos los demas lenguajes de programacion el
problema de no tomar en cuenta la jerarqua de los operadores al
plantear y resolver una operacin casi siempre conduce a resultados
muchas veces equivocados como estos:
Ejemplos:
- 2+ 3* 4 = 20(incorrecto) = 14 (correcto)
b) si calif1=60 y calif2=80
entonces en programa se usa
promedio=calif1 + calif2/2
da como resultado promedio = 100
Recordar siempre, que antes de plantear una formula en un
programa se deber evaluar contra el siguiente:
Orden de operaciones:
1.
2.
3.
4.
5.

Parntesis
Potencias y races
Multiplicaciones y divisiones
Sumas y restas
Dos o ms de la misma jerarqua u orden, entonces resolver
de izquierda a derecha

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Nota: Si se quiere alterar el orden normal de operaciones, entonces


usar parntesis.
Nota: Tampoco es bueno usar parntesis de mas en una operacin,
esto solo indica que no se evalo bien la formula, como en el
siguiente ejemplo;

aqu los parntesis estn de mas, porque por orden de


operaciones, multiplicacin y divisin tienen la misma jerarqua
y entonces se resuelven de izquierda a derecha, en sus
programas de java jsp ni que falten parntesis ni que sobren
parntesis.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 9: APLICACIONES JAVA JSP
Recordar que JAVA es un lenguaje de programacin moderno, que
esta enfocado a la construccin de sistemas de informacion que se
ejecutarn en una plataforma muy diversa de procesadores y
sistemas operativos.
Esto indica la necesidad de construir diversos tipos de aplicaciones,
programas o sistemas en general existen los sguientes tipos de
aplicaciones basicas:
1. Aplicaciones o programas que se ejecuten en consolas, es
decir ambientes del tipo msdos, linux, terminales tontas, etc.
2. Aplicaciones o sistemas que se ejecuten en ambientes
graficos o de tipo ventanas:, ejemplo windows, kde o gnome
de linux, sistem 8 de apple, etc.
3. Aplicaciones de tipo APPLETS, que tambien son programas
en java que se mandan a una pc remota o lejana, donde esa
pc se encarga de correrla o ejecutarla o compilarla y correrla.
Este applet lo manda un servidor de paginas(web server) junto con
la pagina correspondiente, cada vez que un usuario se conecta al
web server y requiere la pagina que contiene el applet.
Para el caso de applets estos se ejecutan no en consola tampoco en
una ventana sino dentro de el browser de la maquina remota que
puede ser el internet explorer de microsoft o el netscape.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Por supuesto que el browser del cliente debe estar preparado para
ejecutar applets, esto se hace teniendo constantemente actualizado
el browser (internet explorer o netscape) y estando sobre todo
seguro que en la actualizacin del browser se incluya la maquina
virtual de java.
4. Aplicacion de tipo SERVLETS, que son programas en java que
se ejecutan direcatemente en el servidor de paginas o web
server, que al ser invocado o llamado por una pc remota, el
web server compila y ejecuta el servlet, ya ejecutado se
mandan generalmente los resultados a la maquina remota,
estos resultados se mandan en forma de una pagina html,
para que la maquina remota los vea en su propio browser.
Una vez que el web server o servidor de paginas ejecuta un
servlet, lo mantiene vivo o despierto, para responder de
manera mas rapida a las peticiones siguientes que se hagan
del servlet.
5. Aplicaciones JSP (Java Server Pages), tecnologia que
combina codigo html y codigo java en un solo programa o
aplicacin, cuando al web server le piden un jsp, lo compila,
lo convierte a servlet con todas las implicaciones que se
mencionarn en el inciso anterior y manda los resultados a
la pc remota que lo solicit.
6. Beans y Java Beans, tecnologias de tipo servlet pero que
estan especializadas principalmente en mantener enlaces
constantes a bases de datos de cualquier marca (access,
oracle, mysql, etc), esto permite que una serie de varios
programas o aplicaciones a la vez esten interactuando con el
mismo java bean y por consiguiente con la base de datos.
7. Existen otra serie de aplicaciones diferentes que se pueden
construir con java, tales como aplicaciones rmi, aplicaciones
en tiempo real, ejb , pero de momento estan fuera del
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

alcance de estas notas.(estarse pendiente de la siguiente


actualizacion de este texto) .
En general todas las aplicaciones que se pueden desarrollar (consola,
graficas, applets y servlets, jsp, beans ) todas tienen en comun el
lenguaje e instrucciones de programacion de java.
Sin embargo para propositos de este curso nos especializaremos en
JSP (JAVA SERVER PAGES), en virtud de que actualmente es una de
las tecnologias mas utiles para la construccin de programas,
apliacciones y sistemas de informacin modernos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BSICOS


TEMA 10: JAVA JSP CONCEPTOS BSICOS DE
PROGRAMACION ORIENTADA OBJETOS
Para nuestro propsito en general un objeto puede definirse como
cualquier cosa, ente o entidad fsica o lgica de informacin.
En este sentido todos los elementos materiales o inmateriales
pueden clasificarse como objetos.
En particular cualquier objeto considerado presenta los siguientes
tres elementos:
a) Propiedades: Son las caractersticas propias de un objeto
estas propiedades o atributos son los que permiten
diferenciar o individualizar un objeto de otro objeto ya sea
de la misma o diferente clase o categora. Las propiedades
mas generales son forma, color, tamao, peso, pero ya en
particular:
Chamarra Marca, material, precio, color, tamao, etc
Alumno Matricula, nombre, edad, domicilio, etc.
Gato Raza, nombre, color, edad, etc.
VentanaWindows>Tamao, Color, font, etc.
b) Mtodos: Son las conductas propias de la naturaleza del
objeto.
As como las propiedades son el ser (que es) del objeto, los
mtodos son el hacer (que hacer) del objeto.
ejemplo de mtodos:
Gato > Maullar(), comer(), correr(), saltar(), etc.
Alumno> Estudiar(), comer(), asistir clase(), pintear()
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Cuaderno>Esescrito(), esrayado(), esborrado(), etc.


VentanaWindows> Abrir(), cerrar(), maximizar(), etc.
c) Eventos: Es la relacin (de varias maneras) que se puede dar
entre dos objetos ya sean de la misma o diferente clase.
Un evento se manifiesta como un interaccin entre dos
objetos, en general al momento de la relacin al mismo
tiempo se dar una reaccin o respuesta por parte de los dos
objetos que se manifiestan como una serie, cadena o
conjuntos de mtodos propios que se activan o disparan,
ejemplo:
Evento
Relacin Mtodos que se activan
gato detecta gata
detectar maullar(), correr(), oler()
gato detecta perro
detectar bufar(), saltar(), correr()
maestro ensea alumno Ensear pasar lista(), preguntar(), etc
Raton click Windows
click
maximizar(), cerrar()
Raton dblclk Windows dblclk minimizar(), etc
Un Programa en java jsp se puede considerar como un conjunto de
una o mas paginas o formas, donde cada una de ellas contiene un
conjunto de objetos, componentes o controles.
Un componente o propiamente dicho un control es un objeto que se
especializa en una tarea especifica por ejemplo hay controles
especializados en desplegar textos o mensajes, otros controles se
especializan en desplegar imgenes o vdeos, otros en manipular
directorios o archivos en disco, etc.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Pero en general tanto las formas como los controles no dejan de ser
objetos en programacin y por tanto tienen sus propiedades,
mtodos y estn sujetos a eventos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 11: JAVA JSP ( JAVA SERVER PAGE )
Java Server Page, es otra de las nuevas tecnologias para tratar de
hacer mas eficiente el modelo cliente-servidor y sobre todo la
construccin de sistemas de comercio electronico.
En este modelo una pagina html tambien incluye codigo en java, es
el servidor de paginas quien al estar mandando la pagina a la pc
remota la compila y la convierte en un servlet.
Esta tecnologia combina en una sola aplicacin, tanto codigo html
como codigo java.
El proceso de crear un jsp, es sencillo se crea un achivo normal con
notepad combinando codigo html y codigo java, se graba con
extension .jsp, se hace un ftp al servidor y listo.
Cuando el usuario requiere un jsp el servidor lo carga, lo compila, lo
convierte a servlet y manda la pagina resultante al usuario remoto.
Empezamos con un pequeo ejemplo: prog1.jsp
<%
// declarando
int base=0,altura=0; double area=0;
if(request.getParameter("OK") != null)
{
base = Integer.parseInt(request.getParameter("BASE"));
altura = Integer.parseInt(request.getParameter("ALTURA"));
area= base * altura / 2.0 ; };
// construyendo forma dinamica
out.println("<FORM ACTION=prog1.jsp METHOD=post>");
out.println("DAME LA BASE:<INPUT TYPE=TEXT NAME=BASE
value="+base+"><BR>");

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("DAME LA ALTURA:<INPUT TYPE=TEXT NAME=ALTURA
value="+altura+"><BR>");
out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

corrida:

Solo grabarlo como prog1.jsp (ojo con notepad y su .txt), al folder


web-inf luego ftp a tu sitio en LUNARPAGES y llamarlo con
www.LUNARPAGES/tusitio/prog1.jsp
Notas:
1. Para insertar codigo java dentro de una pagina html se
deberan usar una serie de tags o delimitadores ( en el
ejemplo se esta usando <% una serie de instruccines de
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

java %> ) donde cada uno de ellos tiene un proposito


definido.
Otros delimitadores son:
Comentarios <% comentario %> Ignorados cuando jsp es
convertida a servlet y muy utiles para documentar nuestros
programas jsp.
Declaracion <%! Variables, metodos, etc %> Recordar que
todo buen programa, empieza declarando variables.
2. Instruccion <%= instruccion %> Para poner una y solo una
instruccin de java, ademas recordar que ya existen aparte
ciertas instrucciones o variables predefinidas tales como
request, response, out, session, application, config, and
pageContext( tambien disponibles en scriptlets).
Recordar ademas que cuando se use <%= una sola
instruccin %>, la instruccin no debe terminar con punto y
coma.
Scriptlet <% todo un programa completo %> Un scriptlet es
un grupo de instruciones de java, como se deduce de esta
definicin, se usara muchos scriptltes en nuestros jsp.
Aqui si, las instucciones deben terminar con punto y coma
Un bloque de instruciones <% bloque java %>, puede
empezar (<%) en un scriptlet y terminar en otro scriptlet,
pero asegurarse de que todos los scriptlets se abran y se
cierren.
Include Directive <%@ include file=url %> Se usa para
incluir achivos en la pc que compila la jsp, esto se realiza al
tiempo que la jsp es convertida en servlet, el url debe ser
relativo.
Para este caso tambien es valido:
jsp:include action para incluir el archivo al tiempo de
request por parte de un usuario remoto

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

3.

4.

5.

6.

jsp:forward Action <jsp:forward page=URL relativo/>


Manda llamar o enlazar otra pagina.
NOTA: HASTA AQUI SON LAS DIRECTIVAS O DELIMITADORES
MAS COMUNES EN PROGRAMAS O APLICACIONES
SENCILLAS
2.- En la parte de abajo se esta construyendo una pagina
html dinamica, usando la instruccin( mejor dicho objeto
OUT) out.println de java, les recuerdo conseguir un buen
tutorial de HTML y estudiarlo a fondo.
Se esta usando tres objetos TEXT de html (ver apendice
html), de estos objetos se cargan su propiedad NAME y
VALUE en este ultimo caso usando una variable normal de
java jsp
Poner atencin dentro del programa que cuando creamos
objetos HTML se declaran en mayusculas y cuando creamos
variables java se declaran en minusculas, no es una regla
pero si es una buena practica de programacin.
Se esta usando un objeto HTML submit del cual se usan las
propiedades NAME y VALUE, este objeto tiene como
proposito principal activar la accin de la forma (llamarse a
si mismo el prog1.jsp) y ademas mandar los datos que
proporciono el usuario hacia el servidor.
La ultima parte de la pagina es FORM, todos los objetos
html deberan estar encerrados entre esta forma o ventana,
form tiene dos propiedades la primera de ellas es una
accin y en este caso la accin es pedirle al servidor que
vuelva a ejecutarse el propio programa1 jsp, la segunda
parte es un metodo, es este caso es el metodo POST
tambien se puede poner el metodo GET, en ambos casos
este metodo regresa los datos desde la pc del usuario hacia
el servidor, pero POST lo hace en forma invisible y GET lo
hace en forma publica (probar el mismo programa con post
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

y get y observar que pasa cuando activan el boton de


submit).
7. Al principio del programa se deberan declarar e inicializar a
0 o todas las variables del programa.
8. Se esta usando una instruccin IF para revisar el VALUE de
SUBMIT, recordar que cuando el usuario pide por primera
vez el programa al servidor , el VALUE del objeto SUBMIT es
null, ya que el usuario carga datos en los objetos TEXT y
realiza un click en SUBMIT, el value de SUBMIT pasa a valer
evento1.
9. Se esta usando el objeto REQUEST.GETPARAMETER( VALUE
OBJETO HTML) para leer la propiedad VALUE de los objetos
HTML y de paso cargarlos en las variables java apropiadas.
10. Recordar que todos los datos que entran o salen de un
objeto html seran de tipo string.
11. Por la razn del inciso 10 se esta usando el metodo
parseInt(string) para convertir la string a int.
12. Ya cargadas las variables se debera realizar la operacin
apropiada, recordar incluir estas variables en la forma
dinamica.
TAREAS PROGRAMACION JAVA JSP
15 DE LOS PROBLEMAS PROPUESTOS EN EL TEMA DE MODELO DE
SOLUCION.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Apndice: OBJETOS HTML


Button, Submit, Reset, CheckBox, Radio, Password, Text, TextArea,
Select, Hidden
Controles Button, Submit y Reset.
Propiedades Eventos Metodos
form
OnClick click
name
OnFocus focus
value
enabled
Control CheckBox.
Propiedades
Eventos Metodos
form
OnClick click
name
OnFocus focus
value
enabled
checked
defaultchecked
Control Radio.
Propiedades Eventos Metodos
form
OnClick click
name
OnFocus focus

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

value
enabled
checked
Control Password.
Propiedades Eventos Metodos
form
OnBlur blur
name
OnFocus focus
value
enabled
Controles Text y Textareas.
Propiedades Eventos Metodos
form
OnBlur blur
name
OnFocus focus
value
enabled
Control Select.
Propiedades
Eventos
Metodos
length
OnBlur
blur
options
OnFocus focus
selectedIndex OnChange
Control Hidden.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Propiedades Eventos Metodos


name
value

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Apndice: Java Language Keywords


Here's a list of Java's keywords. These words are reservedyou
cannot use any of these words as names in your Java programs.
true, false, and null are not keywords but they are reserved
words, so you cannot use them as names in your programs either.
abstract double
int
strictfp &&
boolean else
interface super
break
extends
long
switch
byte
final
native
synchronized
case
finally
new
this
catch
float
package throw
char
for
private throws
class
goto &
protected transient
const % if
public
try
continue implements return
void
default import
short
volatile
do
instanceof static
while
% indicates a keyword that is not currently used
%% indicates a keyword that was added for Java 2
JAVA.SUN.COM

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE


CONTROL DE PROGRAMA
TEMA 1: JAVA JSP INTRODUCCIN
En este capitulo se continua siguiendo el esquema de trabajo ya
planteado en el capitulo anterior, es decir:
Construccin de programas mezclando una pagina con forma html y
un programa de tipo jsp.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: CONTROL DE PROGRAMA


TEMA 2: JAVA JSP INSTRUCCIONES DE CONTROL DE
PROGRAMA
Instrucciones de control de programa permiten alterar la secuencia
normal de ejecucin de un programa.
Estas instrucciones se dividen en tres grandes categoras:
1. Instrucciones Condicionales que en java jsp se implemen
tan con las instrucciones if y switch.
a. Instrucciones de ciclos con
for
while
do while
En java jsp muchas de ellas tienen sus correspondientes
componentes visuales, derivados de html.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE


CONTROL DE PROGRAMA
TEMA 3: JAVA JSP INSTRUCCIONES CONDICIONALES
Una de las mas poderosas caractersticas de cualquier computador
es la capacidad que tiene de tomar decisiones.
Es decir al comparar dos alternativas diferentes el computador
puede tomar una decisin basndose en la evaluacin que hace de
alguna condicin.
En java jsp algunos ejemplos de instrucciones condicionales:
si sueldo > 3000
desplegar rico
si no
desplegar pobre
Fin-si
si sexo = 'm'
imprime mujer
si no
imprime hombre
Fin-si
De los ejemplos observar que los caminos a seguir por el
computador dependern de la evaluacin que el computador hace
con y de la condicin.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Todo lenguaje de programacin como java jsp debe tener


instrucciones que permitan formar condiciones e instrucciones que
pueden evaluar esas condiciones.
Pero recordar que lenguajes modernos y orientados a clientesservidores de igual forma tienen componentes que permiten del
mismo modo al usuario tomar decisiones incluso directamente en
pantalla, es decir tambien existen los objetos, controles o
componentes de seleccin y decisin en html.
El formato general de una instruccin condicional es:

Como se observa, son cuatro partes bien diferenciadas entre si;

La propia instruccin condicional en si


La condicin
El grupo cierto de instrucciones
El grupo falso de instrucciones

Cuando el computador evala una condicin el resultado de esa


evaluacin solo es evaluado de dos maneras o la condicin es CIERTA
o la condicin es FALSA.
Esto depender del valor que tenga asignado o que se haya
capturado para la variable que esta en la condicin, por ejemplo si
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

se capturo 6000 en sueldo en el ejemplo a) entonces el computador


indicara que la condicin es CIERTA pero en otro caso si a la variable
sueldo primero se le asigno un valor de 250 entonces el computador
indicara que la condicin es FALSA.
Ya dependiendo del resultado de la evaluacin, el computador
ejecuta las instrucciones contenidas en el grupo de cierto o falso
respectivamente.
En este curso de java jsp empezaremos el anlisis por la CONDICIN.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE


CONTROL DE PROGRAMA
TEMA 4: JAVA JSP CONDICIONES SIMPLES
En general todas las condiciones se forman con:
Variables Operadores Relacinales Constante o Variables
sexo
=
m
sueldo
>
300,000
En java jsp una condicin simple se define como el conjunto de
variables y/o constantes unidas por los llamados operadores
relacinales.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 5: JAVA JSP OPERADORES RELACIONALES
Los operadores relacinales que reconoce java jsp son:
Operador

Significado

==

Igual que

>

Mayor que

<

Menor que

>=

Mayor o igual que

Menor o igual que

!=

No es igual que o es diferente que

Tambien observar y tener cuidado sobre todo con el operador de


igualdad (y el operador relacional de comparacin por igualdad es
decir; sueldo = 500, Se esta pidiendo cargar o asignar la variable
sueldo con el valor 500 sueldo == 500, Se esta pidiendo que se
compare el valor o dato que se encuentra en la variable sueldo,
contra el numero 500.
En java jsp solo este ultimo formato es valido dentro de una
condicin en una instruccin condicional.
Para objetos derivados de la clase STRING se usara el metodo
str1.compareTo(str2) que regresa cero (0) si str1 es igual str2, regresa
un positivo si str1 es mayor que str2 y regresa un negativo si str1 es
menor que str2.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 6: JAVA JSP INSTRUCCIN IF
Es la instruccin condicional mas usada en los diversos lenguajes de
programacin, su formato completo y de trabajo en java jsp es:
cargar o asignar la variable de condicin;
if (condicin)
{ grupo cierto de instrucciones;}
else
{ grupo falso de instrucciones; };
Primus.- Observar donde van y donde no van los puntos y comas;
Secundus.- La condicin va entre parntesis ;
Tertius.- Si un if no ocupa un grupo falso de instrucciones entonces
no se pone el else, y la llave antes del else si terminara con punto y
coma.
Ejemplo:
Prog2 jsp
<%
// declarando
int sueldo=0;String res="";
if(request.getParameter("OK") != null)
{
sueldo = Integer.parseInt(request.getParameter("SUELDO"));
if (sueldo >= 3000)
{ res="RICO"; }
else {res="POBRE"; };
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog2.jsp METHOD=post>");

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("DAME SUELDO:<INPUT TYPE=TEXT NAME=SUELDO
value="+sueldo+"><BR>");
out.println("EVALUACION:<INPUT TYPE=TEXT NAME=RES
value="+res+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Recordar que es valido usar mas de una instruccin dentro del grupo
cierto o falso del if.
Recorar ademas que para el caso de strings usar:
if ( carrera.compareTo(informatica) == 0 )

TAREAS PROGRAMACION JAVA JSP


1. Capturar un numero cualesquiera e informar si es o no es
mayor de 100.
2. Capturar un numero entero cualesquiera e informar si es o
no es mltiplo de 4 ( recordar el operador mod(%), analizado
en el tema de operadores aritmticos).
3. Capturar los cinco datos mas importantes de un Empleado,
incluyendo el sueldo diario y los das trabajados desplegarle
su cheque semanal solo si gan mas de $500.00 en la
semana, en caso contrario desplegarle un bono de despensa
semanal de $150.00.
4. Capturar los datos mas importantes de un estudiante
incluyendo tres calificaciones construir una boleta de
calificaciones en una pagina de respuesta bien bonita si el
estudiante es de la carrera de medicina, en caso contrario
construir una pagina mas bonita todavia que despliega un
oficio citando a los padres del estudiante a una platica
amistosa con los maestros de la escuela.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

5. Capturar los datos mas importantes de una mercancia


cualesquiera, incluyendo cantidad, precio, etc. desplegar una
orden de compra, solo si el producto es de origen nacional,
en caso contrario no hacer nada.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 7: JAVA JSP CONDICIONES COMPUESTAS
En muchas ocasiones es necesario presentar mas de una condicin
para su evaluacin al computador.
Por ejemplo que el computador muestre la boleta de un alumno si
este estudia la carrera de medicina y su promedio de calificaciones
es mayor de 70.
Una condicin compuesta se define como dos o mas condiciones
simples unidas por los llamados operadores lgicos.
Los operadores lgicos que java jsp reconoce son:
OPERADOR SIGNIFICADO
&&
Y LOGICO
O LOGICO
!

NO NEGACION

Ejemplo:
if ( (sueldo >100) && ( sexo=='m') ) etc, etc, etc.
Y recordar que para comparar strings usar;
if ( carrera.compareTo(informatica) == 0 )
Notas:
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Observar que cada condicin simple lleva sus propios parentesis.


Si la variable es de tipo string el dato va entre comillas(), pero si la
variable es de tipo char el dato va entre apostrofes(').
Para que el computador evale como CIERTA una condicin
compuesta que contiene el operador lgico &&, las dos
condiciones simples deben ser ciertas.
Para que el computador evale como CIERTA una condicin
compuesta que contiene el operador lgico ||, basta con que una
de las condiciones simples sea cierta.
La cantidad total de casos posibles cuando se unen dos o mas
condiciones simples esta dada por la relacin
donde n = cantidad
de condiciones, la primera mitad de ellos empieza en cierto y la
segunda mitad en falso.
Ejemplo, si formamos una condicin compuesta con dos condiciones
simples y el operador lgico y, la cantidad total de casos posibles
serian

, y se puede construir la siguiente tabla de verdad.

Tabla de verdad con y


IRA COND SIMPLE 2DA COND SIMPLE EVALUACION
C
C
C
C
F
F
F
C
F
F
F
F

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

La evaluacin final, se obtiene usando la regla anteriormente


descrita para una condicin compuesta, que contiene el operador
Y.
Esta tabla significa lo siguiente;
1. Cualquiera que sean la cantidad de datos procesados,
siempre caer en uno de estos cuatro casos generales.
La tabla de verdad para una condicin compuesta con Or es la
siguiente;
IRA COND SIMPLE 2DA COND SIMPLE EVALUACION
C
C
C
C
F
C
F
C
C
F
F
F
Construir una tabla de verdad para una condicin compuesta de tres
o mas condiciones simples, es tambin tarea sencilla, solo recordar
que;
1. La cantidad posible de casos es
casos posibles, la
mitad empiezan con Cierto y la otra mitad empiezan con
Falso.
2. Para evaluar esta condicin triple primero se evalan las dos
primeras incluyendo su operador bajo las reglas ya descritas
y luego se evala el resultado parcial contra la ultima
condicin y ultimo operador para obtener la evaluacin final.
Ejemplo una condicin compuesta de tres condiciones
simples, donde el primer operador lgico es el y y el

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

segundo operador lgico es el O, dara la siguiente tabla de


verdad.
Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra
C

TAREAS PROGRAMACION JAVA JSP


1. Construir un programa que capture un numero cualesquiera
e informe si es o no es mayor de 50 y mltiplo de tres. ( solo
escribir el mensaje de respuesta de manera muy clara y esto
resuelve el problema )
2. Construir un programa que indique si un numero es un par
positivo.
3. Capturar los datos de una mercancia incluyendo su cantidad
en existencia, desplegar una orden de compra si la cantidad
en existencia del producto es menor que el punto de
reorden, o si el origen del producto es nacional.
4. Construir un programa que capture los datos de un
empleado, desplegar en una pagina su cheque semanal si
gana mas de $500.00 y si esta en el departamento de
produccin, en caso contrario desplegarle en otra pagina un
bono de despensa del 25% de su sueldo semanal.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 8: JAVA JSP INSTRUCCIN SWITCH
Tambin existen ocasiones o programas donde se exige evaluar
muchas condiciones a la vez, en estos casos o se usa una condicin
compuesta muy grande o se debe intentar convertir el problema a
uno que se pueda resolver usando la instruccin SWITCH.
Esta instruccin es una instruccin de decisin mltiple donde el
compilador prueba o busca el valor contenido en una variable
ENTERA o CHARACTER contra una lista de constantes apropiadas, es
decir enteras, character, cuando el computador encuentra el valor
de igualdad entre variable y constante entonces ejecuta el grupo de
instrucciones asociados a dicha constante, si no encuentra el valor
de igualdad entre variable y constante, entonces ejecuta un grupo
de instrucciones asociados a un default, aunque este ultimo es
opcional.
El formato de esta instruccin es el siguiente:
capturar o asignar variable de condicin;
switch(var OPCION)
{
case const1: instruccin(es);
break;
case const2: instruccin(es);
break;
case const3: instruccin(es);
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

break;
default: instruccin(es);
};
prog3 jsp
<%
// declarando
char letra=' ';
if(request.getParameter("OK") != null)
{
//recordar que TEXTBOX contiene una string
letra=request.getParameter("LETRA").charAt(0);
switch(letra)
{case 'a':
out.println("aguila ");
break;
case 'b': case 'B':
out.println("baca ");
break;
case 'c':
out.println("caballo ");
break;
default:
out.println("no hay ");
};
// observar que se puede escribir direcatmente a la pagina dinamica
// esto es para los flojos
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog3.jsp METHOD=post>");
out.println("DAME UNA LETRA:<INPUT TYPE=TEXT NAME=LETRA
value="+letra+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

TAREAS PROGRAMACION JAVA JSP


1. Construir un programa que capture un deporte cualesquiera
y despliegue dos implementos deportivos apropiados.
2. Evaluar cualquier funcin vista para cuando x =3,-4, 5

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA


TEMA 9: CONTROL SELECT JAVA JSP
Existen muchas ocasiones en donde el usuario del programa tiene
que proporcionar datos que provienen de un conjunto finito y muy
pequeo de posibles respuestas esto significa que cada vez que se
ejecute el programa el usuario estar proporcionando las mismas
respuestas.
Ejemplo de esta clase de datos, son por ejemplos Municipio en BC
las posibles respuestas solo son (Tecate, Tijuana, Mexicali,
Ensenada, Rosarito), otro ejemplo es Sexo (Hombre, Mujer), etc.
Para situaciones como esta existen componentes html que permiten
programar por adelantado las posibles respuestas y el usuario solo
debe seleccionar la respuesta apropiada en lugar de tener que
escribirla.
Este control SELECT nos permite definir en primera instancia un
conjunto de datos o valores respuestas asociados a una caja de
edicin cualesquiera as ahora el usuario tendr la oportunidad de
seleccionar un dato del conjunto de datos o respuestas ya
predefinido.
Este componente SELECT DEBERA CONSTRUIRSE EN dos partes una
parte de encabezado para poner el nombre del grupo de respuestas(
por ejemplo municipios, sexo, etc.)

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

La segunda parte es la lista de opciones o respuestas que se debe


cargar al tiempo de ejecucin de la forma html como lo muestra el
siguiente programa:

Prog4.jsp
<%
// declarando
String municipio="";
if(request.getParameter("OK") != null)
{
municipio =request.getParameter("MUNICIPIO");
out.println(municipio+" =");
if (municipio.compareTo("ENSENADA")==0) out.println("TIBIO");
if (municipio.compareTo("TIJUANA")==0) out.println("HELADO");
if (municipio.compareTo("MEXICALI")==0) out.println("CALIENTE");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog4.jsp METHOD=post>");
out.println("<B>MUNICIPIOS</B>");
out.println("<SELECT NAME=MUNICIPIO>");
out.println("<OPTION>ENSENADA<OPTION>TECATE<OPTION>TIJUANA<OPTION>ME
XICALI");
out.println("</SELECT>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

TAREAS PROGRAMACION JAVA JSP


1. Arreglar un par de los programas anteriores agregandole
este control a los que se puedan.
2. Evaluar la funcin
para x = 2,-5, 8.
3. Construir una forma.html con los datos de un automvil(usar
puros select) y construir dos paginas de salida o respuesta
una con un plan de financiamiento a dos aos u otra con un
plan de financiamiento a tres aos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA


TEMA 10: JAVA JSP CHECKBOX Y EXCEPCIONES
El componente CheckBox , permite seleccionar una opcin al usuario
del programa o tomar una decisin directamente en pantalla.
Ejemplos de uso:

Observar que dos o mas checkboxs pueden estar seleccionados a la


vez.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Codigo prog5 jsp


<%! String m,n,f; %>
<%
// observar declaracion y usando las otras directivas
if(request.getParameter("OK") != null)
{
m=request.getParameter("M");
n=request.getParameter("N");
f=request.getParameter("F");
try{
if (m.compareTo("on")==0) out.println("masculino checado<br>");
}catch(java.lang.NullPointerException e){};
try{
if (n.compareTo("on")==0) out.println("neutro checado<br>");
}catch(java.lang.NullPointerException e){};
try{
if (f.compareTo("on")==0) out.println("femenino checado<br>");
}catch(java.lang.NullPointerException e){};
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog5.jsp METHOD=post>");
out.println("<b>sexo:</b><br>");
out.println("<input type=checkbox name=M checked>masculino<br>");
out.println("<input type=checkbox name=F >femenino<br>");
out.println("<input type=checkbox name=N checked>neutro<br>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Notas:
1. grabarlo y subirlo como prog5. jsp a tu sitio en
programacionfacil.com
2. La propiedad name debera ser diferente en cada checkbox
usado, la propiedad checked se usa para que aparezca ya
palomeado o seleccionado el control.
3. Cuando se activa prog5 jsp, esta forma manda el par NAME =
on solo de los checkbox que fuern seleccionados.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Para programar este componente:


Como ya se indico, esta forma va a mandar el par NAME=on asi que
esto es sencillo en java jsp, solo recordar usar un if por cada
checkbox.
Muy sencillo el codigo de validacin y no olvidar subirlo a tu sitio.
ERRORES Y EXCEPCIONES
Estos problemas de errores y excepciones que en java, se producen
al tiempo de execucin del programa son los problemas normales de
mal codigo y que tambien se producen al tiempo de compilacin no
al tiempo de ejecucion del programa, este tema se refiere a
eehhrorres y excepciones al tiempo de ejecucin del programa.
Java tiene un mecanismo muy completo para el manejo de errores y
excepciones, un ERROR ocurre generalmente al tiempo de estarse
ejecutandose un programa, por ejemplo una division entre cero.
Una EXCEPCION es creada tambien al tiempo de ejecucin del
programa cuando en alguna parte del programa se produce alguna
condicin no contemplada en el programa para el programa ejemplo
del checkbox, se crearon tres variables o mejor dicho tres objetos
strings y cuando de la forma se manda solo una o dos de ellas
cargadas con on algunas de las variables u objetos strings queda
cargada con null(caso especial de strings) y al intentar hacer la
comparacin java avisa de una excepcion como se muestra en la
siguiente pantalla ejemplo:

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Esta excepcin ocurrio al tiempo de ejecucin del programa y por el


problema ya descrito y explicado.
La diferencia entre una EXCEPCION y un ERROR es que una excepcion
si es atrapada(catch) por el programa y el programador permite
recuperar el programa y continuar con su ejecucin, mientras que
un error aunque sea atrapado(catch) por el programa y el
programador el programa suspendera y terminara su ejecucin.
Si errores o excepciones no son atrapadas(catch) el programa
terminara su ejecucin y mandara el aviso al usuario, como se
demuestra en la pantallita de arriba.
Es por esta razn que es conveniente y necesario atrapar (catch)
errores o excepciones, asi el programador podra incluir algun
mecanismo de correccin de errores o al menos de avisarle al
usuario en lugar de que sea el servidor quien le avise.
Este mecanismo de correccion de errores es la clausula o instruccion

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Try{
Instrucciones normales de java;
} catch(tipo de error o excepcion var de error){ inst de aviso o correc
de error puede incluir la var de error ;
};

Un try-catch puede encerrar una instruccion de java, un grupo de


instrucciones de java o todo el programa completo.
En el prog5 jsp se uso un try-catch en cada if, se pudo usar un try
catch con todos los if's pero no se conoce de antemano cuales
variables strings se quedan en null asi que fue mas conveniente
revisar if por if.
En resumen cuando en algun programa al tiempo de ejecucin les
aparezca un error o excepcion van a ocupar usar try-catch para
atraparlo o corregirlo, el tipo de error o excepcion a cubrir se los va
a estar indicando el propio servidor de paginas como lo muestra la
pantallita ejemplo de excepcin y observar que la misma excepcion
que aparecio en dicha pantallita, se puso en la clausula catch.
Si aparecen mas errores o excepciones en un programa es valido que
un try lleve mas de un catch.
TAREAS PROGRAMACION JAVA JSP
1. Evaluar la funcin
para x = 2,-5, 8 (usar un
CheckBox por cada valor de x, y programar cada el if de cada
CheckBox con la operacin correspondiente y el despliegue
del resultado).
2. Construir un pagina html con los datos de un automvil y una
segunda pagina muestra un plan de financiamiento a dos
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

aos y una tercera pagina muestra un plan de financiamiento


a tres aos.
3. Construir un programa de seleccion de mens, las opciones
seran algunos de los programas ya hechos.(se recomienda
que en cada if construyan la forma o pagina de manera
dinamica de la forma html que tienen en el programa
correspondiente)

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 11: COMPONENTE RADIOBUTTON JAVA JSP
Se utiliza para presentar al usuario un conjunto de opciones
mutuamente excluyentes entre si es decir si el usuario selecciona
un componente radio todos los dems componentes radioButton en
la forma, se deseleccionan solos es por esta razn que decimos que
radiobotones son mutuamente excluyentes.
Codigo prog6 jsp
<%! String sexo, carrera; %>
<%
// es mejor esta declaracion no hay que inicializar
if(request.getParameter("OK") != null)
{
sexo=request.getParameter("SEXO");
carrera=request.getParameter("CARRERA");
out.println("carrera="+carrera+"<br>");
out.println("sexo="+sexo+"<br>");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog6.jsp METHOD=post>");
out.println("sexo:<br>");
out.println("<input
type=radio
name=SEXO
value=masculino
checked>masculino<br>");
out.println("<input
type=radio
name=SEXO
value=femenino>femenino<br>");
out.println("<input type=radio name=SEXO value=neutro>neutro<br>");
out.println("carrera:<br>");
out.println("<input
type=radio
name=CARRERA
value=sistemas
checked>sistemas<br>");
out.println("<input
type=radio
name=CARRERA
value=informatica>informatica<br>");
out.println("<input
type=radio
name=CARRERA
value=medicina>medicina<br>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

1. Observar que tenemos dos grupos de radiobotones uno con


NAME=SEXO y otro con NAME=CARRERA sin embargo
existen varios radiobotones y cada radiobuton tiene su
propio valor o VALUE.
2. Recordar que en checkbox(tema anterior) la propiedad
NAME debe ser distinta para cada uno de ellos, mientras que
en radiobutton es la misma para todo un grupo similar de
ellos.
3. La razn principal para esta situacin es que los radiobotones
son mutuamente excluyentes entre si Y QUE SOLO UNO
PUEDE ESTAR ENCENDIDO A LA VEZ por eso los agrupamos
con la propiedad NAME para que html los pueda considerar
como dos o mas grupos diferentes.
4. Tambien tienen la propiedad checked para que aparezcan
seleccionados al cargar el programa prog6 jsp
5. A diferencia del checkbox, html va a regresar solamente el
par NAME=VALUE de el radiobuton que este seleccionado,
esto lo hace por cada grupo de radiobotones que tengamos
en la forma html
Recordar que html regresa un y solo un par NAME=VALUE por cada
grupo de radiobutton's que existan en la forma.html, asi que es
bastante sencillo tomar el valor del radiobuton seleccionado y ya
cargado este valor realizar o programar el proceso correspondiente.
TAREAS PROGRAMACION JAVA JSP
1. CONSTRUIR UN CUESTIONARIO DE 6 PREGUNTAS SOBRE LOS
HBITOS DE ESTUDIO DE UN ESTUDIANTE Y PASAR SUS
RESPUESTAS A UNA PAGINA NUEVA.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

2. EVALUAR UNA FUNCION CUALESQUIERA, LA PAGINA HTML


TIENE NAME = X Y VALUE = 3, -5, 10 .

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE


PROGRAMA
TEMA 12: JAVA JSP CICLO FOR
Instrucciones para ciclos resuelven el problema de repetir todo el
programa o cierta parte del programa mas de una vez.
Este ciclo es uno de los mas usados para repetir una secuencia de
instrucciones sobre todo cuando se conoce la cantidad exacta de
veces que se quiere que se ejecute una instruccin simple o
compuesta.
Su formato general es:
for (inicializacin; condicin; incremento)
{ instruccin(es); };
En su forma simple la inicializacin es una instruccin de asignacin
que carga una variable de control de ciclo con un valor inicial.
La condicin es una expresin relacional que evala la variable de
control de ciclo contra un valor final o de parada que determina
cuando debe acabar el ciclo.
El incremento define la manera en que la variable de control de ciclo
debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;).
EJEMPLO
<%
// mira ma'a sin usar forma

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
for (int x=1; x<=10; x++)
{ out.println("x= "+x+"<br>"); };
%>

Casos Particulares del ciclo for:


1. 1.- El ciclo comienza en uno y se incrementa de uno en uno
este es el caso mas general.
2. Pero el valor inicial puede se diferente de uno, ejemplo;
for(x=5;x15;x=x+1){ etc.};
3. Incluso el valor inicial puede ser negativo, ejemplo;
for (x = -3 ;x 8; x=x+1) { etc.};
4. Los incrementos tambin pueden ser diferentes al de uno en
uno, ej.;
for (x=1; x 20; x=x+3){ etc. };
5. Incluso pueden ser decrementos, solo que en este caso,
recordar;
a. el valor inicial de la variable debe ser mayor que el
valor final.
b. cambiar el sentido de la condicin.
ejemplo;
for (x= 50 ; x >= 10; x= x-4 ) { etctera };
6. Solo para los casos de incrementos y decrementos de una en
una unidad substituir en el for;
el x = x + 1 por x++
el x = x - 1 por x
TAREAS PROGRAMACION JAVA JSP
1. CONSTRUIR UN PROGRAMA
NMEROS DEL 20 AL 30.

QUE

DESPLIEGUE

LOS

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

2. DESPLEGAR LOS ENTEROS ENTRE 50 Y 30 ACOMPAADOS DE


SU POTENCIA CUADRADA Y RAZ CUBICA RESPECTIVA(revisar
el tema de operadores aritmeticos).
3. DESPLEGAR LOS MLTIPLOS DE 5, ENTRE 10 Y 50,
ACOMPAADOS DE SU FACTORIAL Y LOGARITMO
RESPECTIVO(revisar el tema de operadores aritmeticos
tambien).
4. DESPLEGAR LA TABLA DE MULTIPLICAR QUE EL USUARIO
INDIQUE.
5. EVALUAR LA FUNCION <m> Y=5X^2 + 3X + 8</m> CUANDO
X> -310 (RANGO DE -3 HASTA 10)

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA


TEMA 13: JAVA JSP CICLO WHILE
En este ciclo el cuerpo de instrucciones se ejecuta mientras una
condicin permanezca como verdadera en el momento en que la
condicin se convierte en falsa el ciclo termina.
Su formato general es :
cargar o inicializar variable de condicin;
while(condicin)
{
grupo cierto de instrucciones;
instruccin(es) para salir del ciclo;
};
Un error muy comun con el while, es poner un punto y coma(;)
despues de la (condicin) ejemplo while(condicion); -esto es y
causa un error.
Prog8 jsp ejecutarlo directamente como se indico en el tema
anterior, excepto que si quieren pueden construir una forma.html y
activarlo desde ah.
<%! int x; %>
<%
x=1;
while (x<=10)
{
out.println("x= "+x+"<br>");
x++;
};
%>

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

While puede llevar dos condiciones en este caso inicializar 2


variables de condicin y cuidar que existan 2 de rompimiento o
terminacin de ciclo.
El grupo cierto de instrucciones puede ser una sola instruccin o
todo un grupo de instrucciones.
La condicin puede ser simple o compuesta.
Los casos generales de for tambien se aplican a while.
A este ciclo tambin se le conoce tambin como ciclo de condicin
de entrada o prueba por arriba porque este ciclo evala primero la
condicin y posteriormente ejecuta las instrucciones.
TAREAS PROGRAMACION JAVA JSP
1. DESPLEGAR ENTEROS ENTRE 50 Y 80
2. DESPLEGAR MULTIPLOS DE 4 ENTRE 60 Y 20 ACOMPAADOS
DE SU LOGARITMOS DE BASE 10 Y BASE e RESPECTIVOS.
3. CONSTRUIR LA TABLA DE DIVIDIR QUE EL USUARIO INDIQUE.
4. Evaluar una funcion cualesquiera para el rango de valores de
x de -3 a +5.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 14: CICLO DO WHILE JAVA JSP
Su diferencia bsica con el ciclo while es que la prueba de condicin
es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan
cuando menos una vez porque primero ejecuta las instrucciones y al
final evala la condicin;
Tambin se le conoce por esta razn como ciclo de condicin de
salida.
Su formato general es :
cargar o inicializar variable de condicin;
do {
grupo cierto de instruccin(es);
instruccin(es) de rompimiento de ciclo;
} while (condicin);
prog9.jsp y ejecutarlo directamente( si quieren).
<%! int x; %>
<%
x=1;
do {
out.println("x= "+x+"<br>");
x++;
}while (x<=10);
%>

Otra diferencia bsica con el ciclo while es que, aunque la condicin


sea falsa desde un principio el cuerpo de instrucciones se ejecutara
por lo menos una vez.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Tareas Java Jsp


1.- tres del for
2.- tres del while
UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA
TEMA 15: JAVA JSP CONCLUSIONES ACERCA DE CICLOS
En java Jsp el problema de dado un problema cualesquiera cual ciclo
se debe usar se resuelve con:
1. Si se conoce la cantidad exacta de veces que se quiere que se
ejecute el ciclo o si el programa de alguna manera puede
calcularla usar for.
2. Si se desconoce la cantidad de veces a repetir el ciclo o se
quiere mayor control sobre la salida o terminacin del mismo
entonces usar while.
3. Si se quiere que al menos una vez se ejecute el ciclo entonces
usar do while.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 3: JAVA JSP ARREGLOS


TEMA 1: JAVA JSP INTRODUCCION
Uno de los problemas mas comunes en los diversos sistemas de
informacin es el tratamiento o procesamiento de una gran volumen
de datos o de informacin.
Las variables usadas hasta ahora reciben propiamente el nombre de
variables escalares, porque solo permiten almacenar o procesar un
dato a la vez.
Por ejemplo si se quiere almacenar nombre y edad de 15 personas
con el mtodo tradicional se ocuparan 30 variables y solo es nombre
y edad de 15 personas, agreguen mas datos y mas personas y ya es
tiempo de empezar a analizar otro tipo de variables.
Es decir, en problemas que exigen manejar mucha informacin o
datos a la vez, variables escalares no son suficientes ya que su
principal problema es que solo permiten almacenar y procesar un
dato a la vez.
En java Jsp se ocupan entonces variables que sean capaces de
almacenar y manipular conjuntos de datos a la vez.
Variables de tipo arreglo si permiten almacenar y procesar conjuntos
de datos del mismo tipo a la vez.
Cada dato dentro del arreglo se le conoce como elemento del arreglo
y se simboliza y procesa (captura, operacin, despliegue ) usando el
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

nombre del arreglo respectivo y un subndice indicando la posicin


relativa del elemento con respecto a los dems elementos del
arreglo, solo recordar que en JAVA JSP la primera posicin,
elemento o rengln es el 0 (cero), ej.
NOMBRES
Juan >nombres(0)
Pedro nombres(1)
Rosa > nombres(2)
Jose > nombres(3)
Sin embargo sus problemas son similares a los de variables normales
es decir hay que declararlos, capturarlos, hacer operaciones con
ellos, desplegarlos, compararlos, etc.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 3:JAVA JSP ARREGLOS


TEMA 2: JAVA ARREGLOS JSP
En programacin tradicional siempre se manejan dos tipos de
arreglos los arreglos tipo listas, vectores o unidimensionales y los
arreglos tipo tablas, cuadros, concentrados, matrices o
bidimensionales en ambos casos son variables que permiten
almacenar un conjunto de datos del mismo tipo a la vez, su
diferencia es en la cantidad de columnas que cada uno de estos tipos
contiene, como en los siguientes ejemplos;
a) LISTAS
EDAD
18
34
22
15
B) TABLAS
CIA ACME
ING MENS VTAS
(MILES DE $)
.ENE FEB MAR ABR MAY
SUC A 10 20 30 40
SUC B 50 60 70 80
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

SUC D 90 100 110 120


En java Jsp se observa la diferencia principal entre un arreglo tipo
lista y un arreglo tipo tabla son las cantidades de columnas que
contienen.
NOTA IMPORTANTE.- LOS CONCEPTOS MANEJADOS AQUI ESTAN
ENFOCADOS A LOS SISTEMAS DE INFORMACION CONTABLES
FINANCIEROS ADMINISTRATIVOS.
EN ALGEBRA MATRICIAL, SI SON IMPORTANTES LOS CONCEPTOS DE
VECTORES Y MATRICES, PERO LAS OPERACIONES Y METODOS SON
PRECISAMENTE LOS DEL ALGEBRA MATRICIAL.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 3: JAVA JSP ARREGLOS


TEMA 3: JAVA JSP ARREGLOS TIPO LISTA
Un arreglo tipo lista se define como una variable que permite
almacenar un conjunto de datos del mismo tipo organizados en una
sola columna y uno o mas renglones.
Tambin reciben el nombre de vectores en lgebra o arreglos
unidimensionales en programacin.
Los procesos normales con una lista o con sus elementos, incluyen
declarar toda la lista, capturar sus elementos, desplegarlos, realizar
operaciones con ellos, desplegarlos, etc.
Para declarar una lista se usa el siguiente formato;
tipodato nomlista[]= new tipodato[cant elementos];
SORPRESA, no existen en java jsp arreglos o listas tradicionales lo
que existe es un objeto, por tanto se debera usar el operador new
antes de empezar a procesar el arreglo, la ventajas son:
a) estas listas pueden usar el metodo length,(ejemplo
nomlista.length;) para conocer el tamao de la misma.
int edades[]= new int[12];
float sueldos[]=new float[5];
String municipios[]={tijuana,tecate,ensenada};
en este ulimo caso, observar que tambien pueden crearse listas ya
con tamao fijo e inicializadas o cargadas.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

notas:
Recordar tambin que la primera posicin o rengln en una lista es
la posicin o rengln 0 (cero).
Prog10 jsp
<%! int edad[]=new int[5], ren=0; %>
<%
String temp1=request.getParameter("INSERTAR");
if(temp1==null)temp1=" ";
if(temp1.compareTo("insertar")==0){
if(ren < 5){
edad[ren]=Integer.parseInt(request.getParameter("EDAD"));
ren=ren+1;};
if(ren==5){out.print("ARREGLO LLENO");};
};
if(request.getParameter("SUMAR") != null )
{
// operaciones
for(ren=0; ren<=4; ren++) edad[ren]=edad[ren]* 12;
// DESPLEGANDO EN OBJETO LISTA DE HMTL CON BULLETS FOR NORMAL
out.println("EDADES EN MESES");
out.println("<UL>");
for(ren=0;ren<=4;ren++)
{out.println("<LI>"+edad[ren]); };
out.println("</UL>");
// DESPLEGANDO EN OBJETO LISTA DE HMTL FOR NORMAL
out.println("<OL>");
for(ren=0; ren<=4; ren++)
{ out.println("<LI>"+edad[ren]); };
out.println("</OL>");
// DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL
out.println("<table border=2><tr><th>EDADES EN MESES</th></tr>");
for(ren=0; ren<=4; ren++)
{ out.println("<tr><td>"+edad[ren]+"</td></tr>"); };
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog10.jsp METHOD=post>");
out.println("DAME EDAD:"+ren+"<INPUT TYPE=TEXT NAME=EDAD>");
out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar
><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=sumar><BR>");
out.println("</FORM>");
%>

Notas:

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Se estn usando dos SUBMIT en el programa, el primero de ellos


para insertar los elementos en la lista y el segundo para convertirlos
a meses.
Es por esta razon que primero se lee el TEXTBOX INSERTAR y si trae
null se cambia por un especio en blanco, la razon es porque java
no permite comparar strings contra null. Se esta usando una
variable contador llamada reng para controlar tantos los indices
de la lista o vector asi como para controlar la cantidad de elementos
que se van a insertar en el arreglo.
Para el caso de operaciones y comparaciones con todos los
elementos de la lista a la vez, se deber usar un ciclo for con una
variable entera llamada rengln misma que tambin se usa como
ndice de la lista.
Recordar que todos los datos internos de la lista estarn
almacenados en la memoria ram del computador, para despliegues
se pueden usar varios tipos de objetos y controles de html(LIST y
TABLE revisar tutorial de html).
Para este programa ejemplo se usaron los dos casos mas comunes
de listas en html (UL y OL) ver tutorial y tambien se uso Table de
html, por supuesto que en sus programas normales deberan usar un
solo caso de estos tres de preferencia el TABlE.
Para inicializar una lista se debe usar el siguiente formato:
tipodato nomlista[]={lista de valores};
ej:
int edad[4]={15,16,17,18};
float sueldo[3]={40.85, 65.30, 33.33};
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

String *ciudad[]={tecate,
ensenada};

tijuana,

mexicali,

rosarito,

TAREAS PROGRAMACION JAVA JSP


1. Capturar y desplegar 5 precios de mercancias cualesquiera.
2. Capturar 4 sueldos, desplegarlos aumentados en un 25%.
3. Capturar los datos de 5 mercancias comprados en una
tienda, incluyendo nombre, precio y cantidad en sus 3 listas
respectivas( se vale inicializar los arreglos de nombre y
precio), despus calcular una cuarta lista con el gasto total
por cada producto desplegarlo todo e incluir tambin el gran
total.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 3: JAVA JSP ARREGLOS


TEMA 4: ARREGLOS BIDIMENSIONALES TIPO TABLA
Un arreglo tipo tabla se define como un conjunto de datos del
mismo tipo organizados en dos o mas columnas y uno o mas
renglones.
Para procesar ( recordar solo operaciones y comparaciones)
internamente todos los elementos de la tabla se ocupan dos
ciclos for(), uno externo para controlar rengln y uno interno
para controlar columna.
Los elementos de la tabla se deberan simbolizar con el nombre
de la tabla y 2 subindices, el primer subindice referencia al
renglon y el siguiente subindice referencia la columna los dos
dentro del mismo corchete.
La declaracin de una tabla sera de acuerdo a los siguientes
formatos:
1) tipodato nomtabla[][]= new tipodato[reng][col];
ejemplo:
int calif[][]=new int[3][4];
double ingresos[][]= new double[3][4];
2) Clasenumerica objetotabla[][]= new constructor[ren][col];
ejemplo;
Integer calif[][]= new Integer[2][3];
Double ingresos[][]=new Double[3][4];
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Para capturar sus elementos, usaremos el procedimiento


desarrollado con listas.
Para efectuar otros procesos tales como operaciones despliegue
con todos los elementos de la tabla se deberan usar 2 ciclos un
for externo para controlar renglon y un for interno para controlar
columna.
Prog11 jsp
<%! int edad[][]=new int[2][3], ren=0, col=0; %>
<%
String temp1=request.getParameter("INSERTAR");
if(temp1==null)temp1=" ";
if(temp1.compareTo("insertar")==0){
if(col < 3){
edad[ren][col]=Integer.parseInt(request.getParameter("EDAD"));
col=col+1;};
if(col == 3){col=0;ren=ren+1;};
if(ren==2) {out.print("TABLA LLENA");};
};
if(request.getParameter("MESES") != null )
{
// operaciones
for(ren=0; ren<=1; ren++)
for(col=0;col<=2;col++)
edad[ren][col]=edad[ren][col]*12;
// DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL
out.println("<table border=2><tr><th>EDAD EN MESES</th></tr>");
for(ren=0; ren<=1; ren++)
{ out.println("<tr>");
for(col=0;col<=2;col++)
{ out.println("<td>"+edad[ren][col]+"</td>"); };
out.println("</tr>"); };
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog11.jsp METHOD=post>");
out.println("DAME
EDAD:"+ren+","+col+"<INPUT
TYPE=TEXT
NAME=EDAD>");
out.println("<INPUT
TYPE=SUBMIT
NAME=INSERTAR
VALUE=insertar
><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=MESES VALUE=meses><BR>");
out.println("</FORM>");
%>

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Notas:
Observar el formato de declaracin y como se controlan los
indices de captura reng, col.
Notas:
El for reng tiene su propio grupo de instrucciones encerrados
entre {}. Mientras que el for col solo tiene una instruccin que
ejecutar el print(celda ), el ultimo print(</termina renglon) es del
ciclo for reng).
El renglon de encabezado solo tiene una celda, por eso los otros
dos renglones con mas celdas se ajustarn por su cuenta, para
corregir esta situacin revisar su tutorial de html(TABLE).
Para inicializar tablas, se debera usar el siguiente formato:
tipodato nomtabla[2][3]={1,2,3,4,5,6 };
TAREAS PROGRAMACION JAVA JSP
1. CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS
FIJOS DE CUATRO PRODUCTOS CUALESQUIERA, QUE SE
PRODUCEN EN TRES PLANTAS DIFERENTES DE UNA
EMPRESA MAQUILADORA.
2. CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS
MENSUALES POR VENTAS DURANTE LOS TRES PRIMEROS
MESES DEL AO DE CUATRO SUCURSALES DE UNA
CADENA DE AUTO REFACCIONES, AGREGAR AL FINAL
UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES
TOTALES POR MESES Y UNA SEGUNDA LISTA QUE
MUESTRE LOS INGRESOS MENSUALES TOTALES POR
SUCURSAL(2 programas uno capturado y otro
inicializado).
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

3. CONSTRUIR UN CUADRO QUE CONTENGA LAS


COMISIONES GANADAS POR TRES VENDEDORES, DE LOS
5 TIPOS DE LINEA BLANCA DE CONOCIDA MUEBLERIA,
ADEMAS LISTAS DE COMISIONES TOTALES Y PROMEDIOS
GANADAS POR LOS VENDEDORES, ASI COMO LISTAS DE
COMISIONES TOTALES Y PROMEDIOS POR TIPO DE LINEA
BLANCA(inicializado).

ANALIZAR ESTE CODIGO:


' PARA TOTALES Y PROMEDIOS POR RENGLON
FOR R = 0 TO 3
FOR C = 0 TO 2
TOTRENG(R) = TOTRENG(R) + TABLA(R,C)
NEXT C
PROMRENG(R) = TOTRENG(R)/3
NEXT R
'PARA TOTALES Y PROMEDIOS POR COLUMNA
FOR C = 0 TO 2
FOR R = 0 TO 3
TOTCOL(C)=TOTCOL(C) + TABLA(R,C)
NEXT R
PROMCOL(C) = TOTCOL(C) / 4
NEXT C

SUGERENCIA: CONSTRUIR PRIMERO LOS CUADROS EN PAPEL.


Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 4: JAVA PROGRAMACION ORIENTADA OBJETOS


TEMA 1: DECLARACIONES o PROCEDIMIENTOS JAVA JSP
Un camino para dividir un gran programa en partes mas pequeas
es el uso de declaraciones.
Una declaracin es un grupo de instrucciones, variables, constantes,
etc, que estan diseados con un prposito particular y tiene su
nombre propio.
Es decir una declaracion es un modulo de un programa que realiza
una tarea especifica y que no puede regresar valores al programa
principal u a otro procedimiento que lo este invocando.
Despue de escribir una declaracin se usara ese nombre propio
como una sola instruccin o llamada.
Las declaraciones se construyen antes del cuerpo principal del
programa, es decir en la parte declarativa.
Su formato es:
<%! void Nom_decl(){instrucciones;} %>

Un programa puede tener tantos procedimientos como se deseen,


para hacer una llamada o invocacin a el procedimiento durante la
ejecucin de un programa se debera escribir el nombre dela misma
y los parentesis en blanco.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Prog12.jsp
<%!
int base=0,altura=0; double area=0;
void proc1(){
area= base * altura / 2.0 ;};
%>
<%
// no usar objetos request y out fuera de scriptlet
// porque no estan creados por java todavia
if(request.getParameter("OK") != null)
{
base = Integer.parseInt(request.getParameter("BASE"));
altura = Integer.parseInt(request.getParameter("ALTURA"));
// llamando o invocando procedimiento uno
proc1();
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog12.jsp METHOD=post>");
out.println("DAME
LA
BASE:<INPUT
TYPE=TEXT
NAME=BASE
value="+base+"><BR>");
out.println("DAME
LA
ALTURA:<INPUT
TYPE=TEXT
NAME=ALTURA
value="+altura+"><BR>");
out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Recordar que no se deben usar los objetos REQUEST y OUT antes de


la parte principal del programa (esto porque java convierte el jsp a
un servlet y la creacin de REQUEST y OUT lo hace despues,
generando errores de objetos request y out desconocidos).
TAREAS PROGRAMACION JAVA JSP
Construir un programa java jsp que contenga puras llamadas a
procedimientos dentro de un menu.
Menu.
a) Pesos a dolares.
b) Area de un triangulo.
c) Emitir Boleta.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

d) Fin de menu.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 4: JAVA JSP PROGRAMACION ORIENTADA OBJETOS


TEMA 2: PARAMETROS JAVA JSP
Un parametro es una variable que puede pasar su valor a un
procedimiento desde el principal o desde otro procedimiento.
Existen ocasiones en que es necesario mandar al procedimiento
ciertos valores para que los use en algn proceso.
Estos valores que se pasan del cuerpo principal del programa al
procedimiento se llaman parametros.
Entonces una declaracion completa es:
<%!
void NomProc(lista de parametros)
{ cuerpo de instrucciones; };
%>
prog13.jsp
<%!
int base=0; double altura=0; double area=0;
void proc1(int a, double b){
area= a * b / 2.0 ;};
%>
<%
// no usar objetos request y out fuera de scriptlet
// porque no estan creados por java todavia
if(request.getParameter("OK") != null)
{
base = 10;
altura = 3.1416;
// llamando o invocando procedimiento uno y pasando parametros
// recordar que se pueden mandar datos o variables
proc1(base,3.1416);
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog13.jsp METHOD=post>");

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("DAME
LA
BASE:<INPUT
TYPE=TEXT
NAME=BASE
value="+base+"><BR>");
out.println("DAME
LA
ALTURA:<INPUT
TYPE=TEXT
NAME=ALTURA
value="+altura+"><BR>");
out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

REGLAS PARA EL USO DE PARAMETROS


1. Cuando se usan variables como parametros, la variable que
se manda debe ser declarada dentro del principal o del
procedimiento de donde se esta enviando.
2. La variable que se manda tiene un nombre, la que se recibe
puede tener otro nombre.
3. La cantidad de variables que se envian deben ser igual en
cantidad, orden y tipo a las variables que reciben.
4. La variable que se recibe tiene un ambito local dentro del
procedimiento, es decir solo la puede usar ese
procedimiento.
TAREAS PROGRAMACION JAVA JSP
1. Capturar el nombre y las 3 calificaciones en un
procedimiento, calcular promedio en un segundo, imprimir
nombre y promedio en principal
2. Construir una tabla de multiplicar que el usuario indique
captura y control de ciclo en el principal, calculo en un
procedimiento.
3. Construir un procedimiento que reciba un numero entero y
que mande llamar a un segundo procedimiento pasando el
letrero PAR O IMPAR.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 4: JAVA JSP PROGRAMACION ORIENTADA


OBJETOS POO
TEMA 3: JAVA JSP VARIABLES LOCALES Y GLOBALES
En java Jsp el lugar donde sea declarada una variable afectara el uso
que el programa quiera hacer de esa variable.
Las reglas basicas que determinan como una variable puede ser
usada depende de 3 lugares donde se puede declarar una variable.
En primer lugar es dentro de cualquier funcin o procedimiento
incluyendo main, a estas se les llama variables locales y solo pueden
ser usadas por instrucciones que esten dentro de esa funcin o
procedimiento.
En segundo lugar es como parametro de una funcin o
procedimiento, donde despues de haber recibido el valor, podra
actuar como variable local en esa funcin o procedimieto.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

En escencia una variable local solo es conocida por el cdigo de esa


funcin o procedimieto y es desconocida por otras funciones o
procedimientos.
En tercer lugar es fuera de todas las funciones pero dento de la parte
declarativa <%! %>, a este tipo de variables se les llama variables
globales y podran ser usadas por cualquier funcin o procedimiento
del programa.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 4: JAVA JSP PROGRAMACION ORIENTADA


OBJETOS POO
TEMA 4: JAVA JSP FUNCIONES
En jaba jsp una funcion es un modulo de un programa separado del
cuerpo principal, que realiza una tarea especifica y que puede
regresar un valor a la parte principal del programa u otra funcion o
procedimiento que la invoque.
La forma general de una funcion es:
<%! tipodatoregresa Nom_fun(parametros)
{ cuerpo de instrucciones;
intruccion return;
}; %>

El tipo especifica el tipo de valor que la funcion regresara utlizando


la instruccin return.
Si no se especifica un tipo se asume de default que el tipo regresado
es int.
La lista de parametros formales es una lista de variables separadas
por comas (,) que almacenaran los valores que reciba la funcion,
estas variables actuan como locales dentro del cuerpo de la funcion.
Aunque no se ocupen parametros los parntesis son requeridos.
La declaracion de parametros es la especificacion de cada tipo de
parametro recibido.
INSTRUCCION RETURN

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Dentro del cuerpo de la funcin deber haber una instruccin return


cuando menos, para regresar el valor, esta instruccin permite
regresar datos.
Prog14 jsp
<%!
double res=0;
double funcion1(int a, double b){
return a * b; };
%>
<%
// no usar objetos request y out fuera de scriptlet
// porque no estan creados por java todavia
if(request.getParameter("OK") != null)
{
// llamando o invocando funcion uno y pasando parametros
// recordar que se pueden mandar datos o variables
double alfa=funcion1(2,2.5) + 3 + funcion1(2, 3.3);
res= alfa;
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog14.jsp METHOD=post>");
out.println("RESULTADO:<INPUT TYPE=TEXT NAME=RESULTADO
value="+res+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Es permitido poner mas de un return en el cuerpo de instrucciones


sobre todo en condiciones, pero solo un return se ejecutara.
Ejemplo;
if (suma >= 10)
{ return 10; }
else
{ return 20; }
EXISTEN 3 CLASES USUALES DE FUNCIONES.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Las primeras son de tipo computacional que son diseadas para


realizar operaciones con los argumentos y regresan un valor basado
en el resultado de esa operacin.
Las segundas funciones son aquellas que manipulan informacin y
regresan un valor que indican la terminacion o la falla de esa
manipulacion.
Las terceras son aquellas que no regresan ningun valor, es decir son
estrictamenta procedurales.
TAREAS PROGRAMACION JAVA JSP
1. Imprimir nombre y promedio de un alumno, capturar 3
calificaciones y nombre en un procedimiento, calcular
promedio en una funcion y desplegar
2. Crear una tabla de multiplicar, captura y control de ciclo en
el principal, operaciones en una funcion, despliegue en el
principal.
3. Construir una funcion que nos regrese el triple de cualquier
numero.
4. Construir un programa que emita una factura si el articulo es
importado, una funcion lo graba con el 20% de iva si es
nacional, la misma funcion lo graba con el 15% de iva si no lo
es.
5. Construir una funcion que nos regrese la letra I o P si el
numero que recibio fue impar o par respectivamente.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 4: JAVA JSP PROCEDIMIENTOS Y FUNCIONES


TEMA 5: JAVA JSP ARREGLOS COMO PARAMETROS
Para pasar un arreglo completo como parametro a un procedimiento
a una funcin solo se manda el nombre del arreglo sin corchetes e
indices, en el procedimiento o funcin que recibe solo se declara un
arreglo del mismo tipo y se puede usar el mismo o diferente nombre
del arreglo sin corchetes e indices.
Sin embargo es conveniente aclarar, que a diferencia de variables
escalares normales, java no genera una nueva variable en memoria
ni tampoco copia los datos al arreglo que recibe, en su lugar java
sigue usando los datos que estan en el arreglo original, es por esta
razn que cambios que se le hagan a los datos del arreglo que recibe
realmente se esta haciendo al arreglo original como lo muestra el
siguiente ejemplo:
Prog15 jsp
<%!
//recordar que r es global
int r;
void decl1(int alfa[])
{
for(r=0;r<=2;r++)
alfa[r]=alfa[r]+10;
};
%>

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
<%
// no usar objetos request y out fuera de scriptlet
// porque no estan creados por java todavia
if(request.getParameter("OK") != null)
{
int eta[]={3,4,5};
decl1(eta);
for(r=0;r<=2;r++)
out.println("eta="+eta[r]+"<br>");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog15.jsp METHOD=post>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Es de recordar que los cambios que le hagan al arreglo dentro de la


funcin se reflejaran en el arreglo original, es por esto que si se
quiere modificar un arreglo en una funcin no hay necesidad de
regresar ningun valor.
TAREAS PROGRAMACION JAVA JSP
1. Inicializar 10 edades en el principal mandar la lista a un
procedimiento que la convierte a meses, desplegar en
principal.
2. Capturar un arreglo de 7 ciudades en principal, sortear u
ordenar o alfabetizar (sorteo burbuja) en un procedimiento
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

y desplegar en principal tanto la lista original como la lista


ordenada.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 1: INTRODUCCION JAVA JSP
Antes de empezar a programar en serio se estudian en esta unidad
dos problemas.
Problema A:
Variables que puedan almacenar un conjunto de valores y no
necesariamente del mismo tipo.
Problema B:
Resolver el problema de almacenar en forma permanente los datos
que se generan dentro de un programa ya sea por captura, proceso,
etc;
El problema (A) se resuelve usando el concepto de estructuras o
registros el problema (B) se resuelve usando el concepto de archivos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 2: REGISTROS JAVA JSP
Ya se ha visto como variables simples pueden almacenar una sola
pieza de informacin y como arreglos pueden almacenar un
conjunto de ellas del mismo tipo y al mismo tiempo, estos dos
mecanismos pueden manejar una gran variedad de situaciones, pero
a menudo se necesita trabajar sobre datos de diversos tipos, en este
caso ni variables escalares ni arreglos son adecuados.
Para resolver estos problemas los lenguajes de programacin
proveen de un tipo de dato especial llamado registros.
Un registro es una variable especial que tiene la capacidad de
almacenar datos de diferentes tipos.
Sin embargo JAVA usa en su lugar una CLASE.
Este metodo tiene la ventaja de que ademas de incluir los campos
tradicionales de un registro (en forma de atributos) tambien puede
incorporar una serie de metodos que permiten procesar de manera
mas facil los campos o atributos de la clase.
Ejemplo;
class alumno{
void alumno(){};
static String nombre= new String();
static int edad;
void inicializar(){
alumno.nombre="pepe el toro";
alumno.edad=18; };

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
void desplegar(){
System.out.println(alumno.nombre);
System.out.println(alumno.edad);
};
} // termina la clase

Programa 16.jsp;
<%!
static class alumno{
static String nombre=" ";
static int edad=0;
void alumno(){};
static void inicializar(){
alumno.nombre="pepe el toro";
alumno.edad=18; };
};
%>
<%
if(request.getParameter("OK") != null)
{
alumno.inicializar();
out.println(alumno.nombre);
out.println(alumno.edad);
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog16.jsp METHOD=post>");
out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
out.println("</FORM>");
%>

Recordar no usar objetos OUT, Request en la parte declarativa de el


programa, la razn ya se explico anteriormente.
Para indicar a java durante cualquier proceso que la variable a
utilizar es un campo de una clase se debera utilizar el siguiente
formato.
nomclase.nombredelcampo
TAREAS PROGRAMACION JAVA JSP
1. Crear una clase de alumno que incluya un metodo que
capture 3 califaciones.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

2. Declarar una clase o registro de empleado, capturarlo y


desplegarlo un numero indeterminado de veces.
3. Capturar una clase o registro de empleados, aumentar
sueldo en 25% y desplegar.
4. Capturar una clase o registro de cuentas por cobrar, mandar
imprimir un aviso si el saldo esta atrazado.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 3: JAVA JSP ARCHIVOS (INTRODUCCION)
Si bien es cierto que ya se pueden manejar gran cantidad de datos
del mismo y diferente tipo al mismo tiempo, el problema es que al
terminar de ejecutarse el programa los datos se pierden.
De esta situacin nace el concepto de archivos que son medios que
facilita el lenguaje para almacenar los datos en forma permanente
normalmente en los dispositivos de almacenamiento standar.
En general es necesario entender algunos conceptos elementales de
sistemas de archivos tradicionales.
Como nota a tomar en cuenta los datos que se van almacenando en
un archivo de disco se almacenan en renglones consecutivos y cada
renglon en disco se conoce como registro del archivo favor de no
confundir el concepto de registro de archivo y registro o estructura

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

como variable ya analizada son dos cosas totalmente diferentes


aunque se llamen igual.
Operaciones basicas con archivos:
1. ESCRIBIR O GRABAR: Es la operacion mas elemental con un
archivo consiste en tomar un o unos datos en variables de
cualquier tipo (escalar, mezcla de datos, arreglo, structuras)
y almacenarlas en un archivo de datos en disco.
2. LEER: Operacin consistente en sacar los datos del archivo en
disco y mandarlo o cargar la variable respectiva
Organizacin de archivos:
En general existen dos tipos de archivos:
1. Archivos Secuenciales.- En este caso los datos se almacenan
en forma consecutiva y no es posible leer (recuerdan que
significa esta operacin) ningun registro (recuerdan la nota
de arriba) directmente es decir para leer el registro n, se
debera recorrer o accesar los n-1 registros anteriores.
2. Archivos Directos o Random.- Para este caso si se puede
acceder o leer un renglon n cualquiera.
Tipo de archivos:
A) En general, existen tantos tipos de archivos como tipos de
datos existen es decir existen archivos de bytes, de chars, de
ints, de floats, etc.
ATENCION: Ya que se decide utilizar algun archivo especifico de
datos (caracteres, strings, formateados, registros o arreglos) solo
utilizar las funciones de escritura y lectura de ese tipo de archivo por

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

ningun motivo mezcle funciones de lectura y escritura de otro tipo


de archivos.
Almacenamiento en arhivos:
1. Modo Texto: en este caso los datos son almacenados usando
codigp ascii y por tanto son plenamente visibles usando
cualquier editor.
2. Modo Binario: en este caso los datos son almacenados en
notacin hexadecimal y por tanto se ocupa un editor binario
para reconocerlos sin embargo un archivo binario es mas
compacto que un archivo texto.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 4: JAVA JSP ARCHIVOS SECUENCIALES PLANOS
Existen ademas muchas otras operaciones asociadas a archivos las
mas elementales son:
1. Creacin de Archivo.- En este proceso se pretende
solamente crear un archivo nuevo en disco, con su
nombre, tipo y especialidad de almacenamiento de datos
apropiado.
2. Apertura de Archivos.- En este caso se pretende abrir un
archivo ya existente en disco para procesarlo, ya sea
cargar o grabar datos en sus registros, o leer algun
registro en especial para mandarlo a una variable de
cualquier tipo.
No confundir creacin con apertura creacin es un
proceso que solo se ejecuta una sola vez en la vida de un
archivo, mientras que apertura siempre se esta
realizando por los programas especializados en algun
proceso.
3. Cierre de archivos: Es la operacin mas importante en
cualquier programa que maneje archivos o se cierra el
archivo como ultima instruccin del pograma o se vera el
anuncio ABORT,RETRY,FAIL.
98, /s, scandisk
4. Altas en archivo.- En este proceso se carga una clase en
memoria con sus datos pertinentes y se graba la clase en
el archivo en disco.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

5. Lectura de archivo.- En este proceso, se abre el archivo y


se manda el registro de disco, a una clase en memoria
para su procesamiento.
6. Consulta de archivos: En este proceso se pretende
desplegar todos los registros del archivo en disco a la
pantalla ya sea consola o mejor an, a una pagina html
7. Busqueda en archivos: Una de las operaciones mas
comunes, consiste en que el usuario pide toda la
informacin de algun renglon en disco, porporcionando
la informacin de algun campo, generalmente el campo
clave de la clase.
8. Filtros.- En este proceso el usuario esta interesado en
algun conjunto de renglones con caracteristicas comunes
(condicin), por ejemplo todos los alumnos de
sistemas, o todos los empleados que ganen mas de
$500.00 pesos, o todos los clientes que sean de tijuana,
etc
9. Modificaciones de registros o archivos: Problema muy
comun, donde los datos originales ya grabados se tienen
que cambiar o actualizar, por ejemplo el nombre no era
juan es juana, o la calificacin no es 100 es 20, etc.
10. Bajas de registros: tambien muy comun este proceso por
ejemplo el alumno ya egreso, el cliente huyo, etc.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 5: GRABACION ARCHIVO SECUENCIAL JAVA JSP
Grabacin y lectura son los dos procesos mas comunes con archivos
disco en cualquier lenguaje de programacin.
Codigo de grabacin:
Prog17.jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataOutputStream archivo = null;
if(request.getParameter("INSERTAR") != null)
{
// capturando datos
clave=Integer.parseInt(request.getParameter("CLAVE"));
nombre=request.getParameter("NOMBRE");
estatura=Float.parseFloat(request.getParameter("ESTATURA"));
try {
// creando archivo en append
archivo
=
new
DataOutputStream(new
FileOutputStream("c:\\archivo1.dat",true));
// grabando al archivo
archivo.writeInt(clave);
archivo.writeUTF(nombre);
archivo.writeFloat(estatura);
out.println(clave+": registro grabado");
}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando el archivo
archivo.close();
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog17.jsp METHOD=post>");
out.println("CLAVE :<INPUT TYPE=TEXT NAME=CLAVE><BR>");
out.println("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE><BR>");

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("ESTATURA :<INPUT TYPE=TEXT NAME=ESTATURA><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=GRABAR ><BR>");
out.println("</FORM>");
%>

Se usa una clase llamada FileOutputStream, especializada en


archivos con muchos metodos y constructores para crear, manipular
y procesar archivos el constructor usado solo lleva dos parametros,
el primero todo la ruta o path a donde quedara el archivo(cuidado
con no poner la doble diagonal \\) y el segundo parametro es la
palabra true, esto es para que el archivo se abra en modo llamado
APPEND, es decir que cada nuevo registro se vaya escribiendo al
final del archivo, si no se pone este parametro(true), un nuevo
registro se sobreescribiria sobre el registro anterior.
Sin embargo en el programa no se uso solo FILEOUTPUSTREAM ( solo
para crear el archivo), tambien se usa DATAOUTPUTSTREAM, esta
segunda clase es derivada de la anterior y comparte muchos de sus
metodos, la diferencia es que fileoutputstream esta especializada en
grabar y leer bytes, mientras que dataoutputstream esta
especializada en grabar y leer datos formateados, observar que los
metodos que uso el objeto archivo para grabar o almacenar datos se
especializan en algun tipo de dato en especial, sus otros metodos
son:
Method Summary
void flush() Flushes this data output stream.
int

size() Returns the current value of the counter written, the number of
bytes written to this data output stream so far.

write(byte[]
b,
int
off,
int
len)
void Writes len bytes from the specified byte array starting at offset off to
the underlying output stream.
void

write(int b) Writes the specified byte (the low eight bits of the argument
b) to the underlying output stream.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
void

writeBoolean(boolean v) Writes a boolean to the underlying output


stream as a 1-byte value.

void

writeByte(int
v)
Writes out a byte to the underlying output stream as a 1-byte value.

void

WriteBytes (String s) Writes out the string to the underlying output stream
as a sequence of bytes.

void

writeChar(int v) Writes a char to the underlying output stream as a 2byte value, high byte first.

void

WriteChars (String s) writes a string to the underlying output stream as a


sequence of characters.

writeDouble(double
v)
Converts the double argument to a long using the doubleToLongBits
void
method in class Double, and then writes that long value to the
underlying output stream as an 8-byte quantity, high byte first.
writeFloat(float v) Converts the float argument to an int using the
void floatToIntBits method in class Float, and then writes that int value
to the underlying output stream as a 4-byte quantity, high byte first.
writeInt(int
v)
void Writes an int to the underlying output stream as four bytes, high byte
first.
writeLong(long
v)
void Writes a long to the underlying output stream as eight bytes, high byte
first.
writeShort(int
v)
void Writes a short to the underlying output stream as two bytes, high byte
first.
void

writeUTF (String str) writes a string to the underlying output stream using
UTF-8 encoding in a machine-independent manner.

Observar que la grabacin lleva un try-catch filenotfound y


ioexception, que son obligatorios o no compila el programa.
No olvidar cerrar el archivo, con la instruccion archivo.close

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

TAREAS PROGRAMACION JAVA JSP


1.- crear y cargar un archivo2.dat que contenga registros de
empleados.
2.- crear y cargar un archivo3.dat que contenga registros de
productos

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 6: LECTURA ARCHIVO SECUENCIAL JAVA JSP
El proceso de lectura de los registros de un archivo secuencial es
realmente sencillo, como lo muestra el siguiente codigo ejemplo;
Prog18.jsp:
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if(request.getParameter("LECTURA") != null)
{
// construyendo una tabla html
out.println("<HTML><TABLE Border=10 CellPadding=5><TR>");
out.println("<th
bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>");
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
// ciclo de lectura del archivo
while(true){
out.println("<TR>");
clave=archivo.readInt();
out.println("<TD>"+clave+"</TD>");
nombre=archivo.readUTF();
out.println("<TD>"+nombre+"</TD>");
estatura=archivo.readFloat();
out.println("<TD>"+estatura+"</TD>");
out.println("</TR>");
} }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
archivo.close();
};
// construyendo forma dinamica

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("<FORM ACTION=prog18.jsp METHOD=post>");
out.println("<INPUT TYPE=SUBMIT NAME=LECTURA VALUE=leer ><BR>");
out.println("</FORM>");
%>

Notas:
Observar en codigo que ahora se usan FILEINPUTSTREAM Y
DATAINPUTSTREAM como clases.
En fileinputstream solo se uso el parametro de abrir archivo(no el
true de append) como ya se menciono estas clases se especializan
en archivos secuenciales.
El ciclo de lectura se realiza con un while(true) los metodos de
DATAINPUTSTREAM SON:
Method Summary
int

read(byte[]
See the general contract of the read method of DataInput.

b)

int

read(byte[]
b,
int
off,
int
len)
See the general contract of the read method of DataInput.

readBoolean()
boolean See the general contract of the readBoolean method of
DataInput.
byte

readByte()
See the general contract of the readByte method of DataInput.

char

readChar()
See the general contract of the readChar method of DataInput.

double

readDouble()
See the general contract of the readDouble method of DataInput.

float

readFloat()
See the general contract of the readFloat method of DataInput.

void

readFully(byte[]
b)
See the general contract of the readFully method of DataInput.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
void

readFully(byte[]
b,
int
off,
int
len)
See the general contract of the readFully method of DataInput.

int

readInt()
See the general contract of the readInt method of DataInput.

String

with: BufferedReader d
= new BufferedReader(new InputStreamReader(in)); |

| long | readLong()
See the general contract of the readLong method of DataInput.
|
readShort()
short See the general contract of the readShort method of
DataInput.
readUnsignedByte()
int
See the general contract of the readUnsignedByte
method of DataInput.
readUnsignedShort()
int
See the general contract of the readUnsignedShort
method of DataInput.
readUTF()
String
See the general contract of the readUTF method of
DataInput.
readUTF(DataInput
in)
static Reads from the stream in a representation of a Unicode
String
character string encoded in Java modified UTF-8 format;
this string of characters is then returned as a String.
skipBytes(int
n)
int
See the general contract of the skipBytes method of
DataInput.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

TAREAS PROGRAMACION JAVA JSP


1.- Leer y desplegar los archivos creados en el tema anterior.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 7: BUSQUEDA ARCHIVOS SECUENCIALES JAVA JSP
Recordar que existen una serie de procesos basicos con archivos el
famoso y antiguo ABC (altas, bajas, consultas y modificaciones) con
ellos.
Actualmente estos procesos o similares a ellos se llaman insertar,
eliminar, editar, etc, en las modernas bases de datos pero esto lo
analizaremos mas adelante.
El primer proceso para un archivo secuencial es agregar una cantidad
indefinida de registros al archivo este proceso se resuelve o
ejecutando una cantidad indeterminada de veces el programa de
grabacin ya hecho o incluir un ciclo while en el mismo programa.
Un segundo proceso tambien comun, llamado consulta es desplegar
todos los registros del archivo a la vez problema tambien resuelto en
el programa de lectura.
El tercer Proceso que resolvemos en este tema es la busqueda de
un registro determinado, en este proceso el usuario del programa
quiere que se despliegue un y solo un registro de informacin,
proporcionando un dato de busqueda, generalmente la clave del
registro.
La solucion es sencilla, solo tenemos que abrir el archivo para
lectura, hacer un ciclo while(true) condicionar y solo desplegar el
registro cuando se cumpla la condicin.
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

Codigo prog19.Java:
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if(request.getParameter("BUSCAR") != null)
{
// construyendo tabla html
out.println("<HTML><TABLE Border=10 CellPadding=5><TR>");
out.println("<th
bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>");
// capturando clave a buscar
claveb=Integer.parseInt(request.getParameter("CLAVEB"));
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
if (claveb==clave){
out.println("<TR>");
out.println("<TD>"+clave+"</TD>");
out.println("<TD>"+nombre+"</TD>");
out.println("<TD>"+estatura+"</TD>");
out.println("</TR>");
} } }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
archivo.close();
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog19.jsp METHOD=post>");
out.println("CLAVE BUSCAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>");
out.println("</FORM>");
%>

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

TAREAS PROGRAMACION JAVA JSP


1.- Hacer programas de busquedas para los archivos hechos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 8: JAVA JSP FILTROS o CONDICIONES
Como su nombre lo indica en este proceso se pretende desplegar
todo un conjunto de renglones que cumplan con la condicin por
ejemplo se pide desplegar todos los alumnos de sistemas o todos
los empleados que sean de sinaloa, etc.
Filtros se usan para obtener informacin acerca de un subconjunto
de renglones de el archivo.
Codigo prog20 jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;float est=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if(request.getParameter("FILTRAR") != null)
{
// construyendo tabla html
out.println("<HTML><TABLE Border=10 CellPadding=5><TR>");
out.println("<th bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>");
// capturando filtro
est=Float.parseFloat(request.getParameter("ESTATURA"));
try {
// abriendo archivo
archivo = new DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
if (estatura>=est){
out.println("<TR>");
out.println("<TD>"+clave+"</TD>");
out.println("<TD>"+nombre+"</TD>");

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
out.println("<TD>"+estatura+"</TD>");
out.println("</TR>");
} } }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
archivo.close();
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog20.jsp METHOD=post>");
out.println("ESTATURA >=:<INPUT TYPE=TEXT NAME=ESTATURA><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=FILTRAR VALUE=Filtrar><BR>");
out.println("</FORM>");
%>

Seria mas interesante construir un programa donde el filtro se


construya con dos comboboxs y un textbox para el dato(recordar
definicin de condicin simple) y de esta manera se podra construir
un programa que filtre por cualuier campo y por cualquier operador
relacional, pero este programa es la
1.- TAREA Java Jsp Filtrar el archivo de alumnos por cualquier campo.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 9: JAVA JSP BAJA O ELIMINACION ARCHIVO
SECUENCIAL
Eliminar o dar de baja en un archivo secuencial, implica tener que
estar procesando dos archivos a la vez, el segundo de ellos es un
archivo temporal, un algoritmo de eliminacion fisica quedaria como:
Procedimiento :
1. Abrir el archivo original en modo letcura.
2. Abrir un archivo llamado temporal en modo escritura.
3. Iniciar un ciclo de lectura del archivo original.
3a.- Dentro del ciclo leer el primer registro.
3b.- Validar el registro si no es eliminable, se escribe al
archivo temporal.
3c.- Fin de ciclo (cerrar el ciclo).
4. Cerrar ambos archivos.
5. eliminar el archivo original.
6. renombrar el archivo temporal con el nombre de archivo
original.
Una segunda tecnica, consiste en agregar un campo de estado
(status) al registro, tal como se vio en el curso anterior:
Sin embargo el proceso de baja se tiene que realizar en un sistema
de informacin, para resolver este problema la respuesta es agregar
un campo especial llamado status que puede ser de tipo char, con
Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

algunos caracteres de control que se puedan cargar en el por


ejemplo una 'a' siginifica que esta en alta, una 'b' significa que esta
en baja, etc.
Lo unico que se tiene que hacer, es que cuando se agrega o manda
el registro por primera vez a disco, mandarlo cargado el campo de
status con 'a' y estar validando con if siempre este campo en
cualquier proceso de busqueda o condicion o despliegue, si se
encuentra cargado con 'b' entonces solo avisar al usuario que esta
de baja dicho registro.
A continuacin damos un ejemplo de eliminacin fisica:
Prog21 jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
DataOutputStream archivot = null;
if(request.getParameter("ELIMINAR") != null)
{
// capturando clave a eliminar
claveb=Integer.parseInt(request.getParameter("CLAVEB"));
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\temp.dat",true));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
if (claveb!=clave){
archivot.writeInt(clave);
archivot.writeUTF(nombre);
archivot.writeFloat(estatura);
}}}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando archivos
archivo.close();

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
archivot.close();
// eliminando original renombrando temporal
File file1 = new File("c:\\archivo1.dat");
File file2 = new File("c:\\temp.dat");
if (file1.exists()) {file1.delete();};
file2.renameTo(file1);
// avisando
out.println("REGISTRO ELIMINADO");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog21.jsp METHOD=post>");
out.println("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=ELIMINAR VALUE=Eliminar><BR>");
out.println("</FORM>");
%>

TAREAS PROGRAMACION JAVA JSP


1.- Agregar un modulo de eliminacion o baja, a los archivos ya
construidos.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 10: OPERACIONES CON CAMPOS JAVA JSP
Este es tambien un caso comun con los elementos de un archivo, sin
embargo es tambien facil de resolver.
Solo usar los dos archivos el original y el temporal y antes de
grabarse al temporal hacer la operacion correspondiente, como lo
muestra el siguiente ejemplo.
Prog22.jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;String nombre=""; float estatura=0;
// creando dos objetos de tipo archivo uno para escritura y otro para
lectura
DataInputStream archivo = null;
DataOutputStream archivot = null;
if(request.getParameter("SUMAR") != null)
{
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\temp.dat",true));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
// sumando
estatura = estatura + 5;
// grabando a temporal
archivot.writeInt(clave);
archivot.writeUTF(nombre);
archivot.writeFloat(estatura);
}}
catch(FileNotFoundException fnfe) {}

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
catch (IOException ioe) {};
// cerrando archivos
archivo.close();
archivot.close();
// eliminando original renombrando temporal
File file1 = new File("c:\\archivo1.dat");
File file2 = new File("c:\\temp.dat");
if (file1.exists()) {file1.delete();};
file2.renameTo(file1);
// avisando
out.println("ESTATURAS SUMADAS ");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog22.jsp METHOD=post>");
out.println("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=EST+5><BR>");
out.println("</FORM>");
%>

TAREAS PROGRAMACION JAVA JSP


1.- construir un archivo que traiga matricula, nombre, calif1, calif2,
calif3 y promedio, cargar unos 5 renglones de alumnos, no cargar
promedio, el promedio lo deberan calcular con un programa.

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 11: EDICION DE REGISTROS JAVA JSP
Editar registros significa cambiar el contenido de algunos de los
campos o columnas por nueva informacn o para corregir algun
error de captura original o para agregar alguna columna que no
existia por modificacin de la tabla o la base de datos.
La solucion es similar a los temas anterior, es decir se ocupan los dos
archivos el original y el temporal y ya sea que se modifique una sola
clave o se modifiquen todos los registros, el ejemplo que se
construye va mostrando los registros del archivo y pregunta y
modifica o edita el registro pedido.
Prog23.jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
DataOutputStream archivot = null;
// codigo de busqueda
String temp1=request.getParameter("BUSCAR");
if(temp1==null)temp1=" ";
if(temp1.compareTo("buscar")==0)
{
// capturando clave a buscar
claveb=Integer.parseInt(request.getParameter("CLAVEB"));
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
while(true){

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
if (claveb==clave){
out.println("<FORM ACTION=prog23.jsp METHOD=post>");
out.println("CLAVE
:<INPUT
TYPE=TEXT
NAME=CLAVE
value="+clave+"><BR>");
out.println("<INPUT TYPE=HIDDEN NAME=CLAVEB value="+claveb+"><BR>");
out.println("NOMBRE
:<INPUT
TYPE=TEXT
NAME=NOMBRE
value=\""+nombre+"\"><BR>");
out.println("ESTATURA
:<INPUT
TYPE=TEXT
NAME=ESTATURA
value="+estatura+"><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=EDITAR VALUE=editar><BR>");
out.println("</FORM>");
}
} }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
archivo.close();
};
// codigo de edicion
String temp2=request.getParameter("EDITAR");
if(temp2==null)temp2=" ";
if(temp2.compareTo("editar")==0){
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\temp.dat",true));
// cargando clave de edicion
claveb=Integer.parseInt(request.getParameter("CLAVEB"));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
if (claveb != clave){
archivot.writeInt(clave);
archivot.writeUTF(nombre);
archivot.writeFloat(estatura);
}
else{
// capturando y grabando nuevos datos
clave=Integer.parseInt(request.getParameter("CLAVE"));
nombre=request.getParameter("NOMBRE");
estatura=Float.parseFloat(request.getParameter("ESTATURA"));
archivot.writeInt(clave);
archivot.writeUTF(nombre);
archivot.writeFloat(estatura);
};
}}

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando archivos
archivo.close();
archivot.close();
// eliminando original renombrando temporal
File file1 = new File("c:\\archivo1.dat");
File file2 = new File("c:\\temp.dat");
if (file1.exists()) {file1.delete();};
file2.renameTo(file1);
// avisando
out.println("REGISTRO EDITADO");
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog23.jsp METHOD=post>");
out.println("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>");
out.println("</FORM>");
%>

TAREAS PROGRAMACION JAVA JSP


1.- construir programas de edicin para sus archivos

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS


SECUENCIALES
TEMA 12: GRAFICOS JAVA JSP
Campos de graficos o de imagenes se han convertido en elementos
importantes de cualquier base de datos.
Para manejar este elemento:
1.- Es un metodo sencillo, primero subir las imagenes ( de
preferencia jpg) con un ftp normal a tusitio y al folder principal de el
servidor, en este caso ROOT ( para el lws).
2.- Usar el tag <img src> de html EN EL PROGRAMA jsp.
3.- agregar un campo de string llamado fotourl o foto o url a el
registro en el archivo secuencial y cargarlo con el nombre de la
imagen por ejemplo pato.jpg, MUCHO OJO este paso exije que se
tengan que reconstruir todos los programas anteriores para incluir
este nuevo campo y volver a crear los archivos de ejemplos.
prog24.jsp
<%@ page import="java.io.*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;String
foto="";
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if(request.getParameter("BUSCAR") != null)
{
// construyendo tabla html
out.println("<HTML><TABLE Border=10 CellPadding=5><TR>");
out.println("<th
bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th
bgcolor=Red>ESTATURA</th><th>FOTOGRAFIA</TH></TR>");
// capturando clave a buscar

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV
claveb=Integer.parseInt(request.getParameter("CLAVEB"));
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\archivo1.dat"));
while(true){
clave=archivo.readInt();
nombre=archivo.readUTF();
estatura=archivo.readFloat();
foto=archivo.readUTF();
if (claveb==clave){
out.println("<TR>");
out.println("<TD>"+clave+"</TD>");
out.println("<TD>"+nombre+"</TD>");
out.println("<TD>"+estatura+"</TD>");
out.println("<TD><img
src=http:\\\\localhost\\progs\\"+foto+"></TD>");
out.println("</TR>");
} } }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
archivo.close();
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog24.jsp METHOD=post>");
out.println("CLAVE BUSCAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>");
out.println("</FORM>");
%>

nota:
Observar que en img src debe ir la direccin internet del servidor por
ejemplo http:\\misitio.com\pato.jpg, sin embargo en el programa
se esta usando http:\\\\localhost\\pato.jpg, en cuanto a localhost
se puede sustituir por el dominio ejemplo laurosoto.com, y en
cuanto
porque
se
usaron
cuatro
\\
recordar que en java dentro de una string las secuencias de escape (
\a, \r etc) van precedidas del simbolo \, por esa causa para mandar
un \ a la pagina se tiene que usar la secuencia de escape
y
como
la
direccin
incluia

Docente: Arturo Diaz Pulido

Lenguaje de Programacion IV

al principio y una diagonal \ al final se mandaron \\


y respectivamente.
TAREAS PROGRAMACION JAVA JSP
CONSTRUIR UN SISTEMA COMPLETO QUE TENGA TODOS LOS
PROCESOS VISTOS, PUEDEN SELECCIONAR, REFACCIONARIAS,
JOYERIAS, VIDEOS, ETC.

Docente: Arturo Diaz Pulido