GUÍA_LABORATORIO # 1 de JSP_Versión 2.5
Transcripción
GUÍA_LABORATORIO # 1 de JSP_Versión 2.5
Parte I SENA - ADSI Guía de Clase y Laboratorio de Programación en JSP SENA - CEET Distrito Capital Análisis y Desarrollo de Sistemas de Información - ADSI Parte I Versión 1.5 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Instructor: Ing. Espec. Javier Vaquiro Introducción [email protected] Recordar que JAVA es un lenguaje de programación moderno, que está enfocado a la construcción de sistemas de información que se ejecutarán en una plataforma muy inversa de procesadores y sistemas operativos. Esto indica la necesidad de construir diversos tipos de aplicaciones, programas o sistemas en general existen los siguientes tipos de aplicaciones básicas: 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 gráficos o de tipo “ventanas”, ejemplo: Windows, kde o Gnome (de Linux), system 8 (de Apple), etc. 3.- Aplicaciones de tipo APPLETS, que también 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 ejecuta en un servidor de páginas web server junto con la página 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 del Browser(navegador) de la máquina remota que puede ser el internet explorer de microsoft o el netscape. Por supuesto que el browser o navegador 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 actualización del browser se incluya la maquina virtual de java. java 4.-Aplicacion de tipo SERVLETS, que son programas en java que se ejecutan directamente 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 Ing. Espec. J. Javier Vaquiro Página 2 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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 páginas ejecuta un servlet, lo mantiene vivo o despierto, para responder de manera mas rápida 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 aplicación, cuando al web server le piden un jsp, lo compila, lo convierte a servlet con todas las implicaciones que se mencionarón en el inciso anterior y manda los resultados a la pc remota que lo solicitó. 6.- Beans y Java Beans, tecnologías 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 estén interactuando con el mismo java bean y por consiguiente con la base de datos. En general todas las aplicaciones que se pueden desarrollar ( consola, graficas, APPLETS y servlets, jsp, beans ) todas tienen en común el lenguaje e instrucciones de programación de java. Sin embargo para propósitos de este curso nos especializaremos en JSP (JAVA SERVER PAGES), en virtud de que actualmente es una de las tecnologías más útiles para la construcción de programas, aplicaciones y sistemas de información modernos. Ing. Espec. J. Javier Vaquiro Página 3 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Unidad 1 Conceptos de Programación VARIABLES Una Variable puede definirse como un conjunto de letras y/o números 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( pequeños módulos con código), 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 ejecución de un programa. Existen ciertas reglas en cuanto a variables: 1. Deben ser claras y con referencia directa al problema. 2. No deben llevar espacios en blanco, ni símbolos extraños en ellas. 3. Se pueden usar abreviaturas, pero solo de carácter general. 4. No deben ser palabras reservadas del lenguaje. Ejemplos de buenas variables: Nombre, Edad, SdoDiario, IngMensual, Perímetro, Calif1, etc. TIPOS DE DATOS. 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 específico. Ing. Espec. J. Javier Vaquiro Página 4 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa. Los tipos de datos más comunes en Java-Jsp son: Tipo Descripción Tamaño Enteros “byte” Longitud de entero Byte 8-bit “short” Entero corto 16-bit “int” Entero 32-bit “long” Entero largo 64-bit Números reales “float” Simple precisión - punto flotante 32-bit (IEEE 754) “double” Doble precisión - punto flotante 64-bit ( IEEE 754) Otros Tipos Tipos “char” Sólo para caracteres 16-bit “boolean” Un Valor Booleano (“V” o “F”) Verdadero ó Falso TABLA TOMADA DE JAVA.SUN.COM DOCUMENTATION Como se observa es muy similar a las de c o c++. Para el caso de strings se deberá usar la Clase String que tiene dos constructores, de momento entenderemos esto último como dos maneras de crearse, ej; 1. String nombre= new String(); 2. String ciudad= new String(“Tijuana”); En este último caso se crea la string y se inicializa con un dato o valor. En general un problema de información 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 solución. Ing. Espec. J. Javier Vaquiro Página 5 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Una herramienta rápida que nos permite descomponer en partes un problema para su solución es el llamado modelo de solución, esta consiste de una pequeña caja que contiene los tres elementos más básicos en que se puede descomponer cualquier problema. lema. 1 2 3 •LA LA PRIMERA PARTE; 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 LA SEGUNDA PARTE; 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 matemática, Ejemplo: (X= y + 5). •LA LA TERCERA PARTE; PARTE; es el resultado o solución del problema que generalmente se obtiene de la parte de operaciones del modelo y dichos datos están almacenados en las llamadas variables de salida. En resumen, para todo problema sencillo de información es necesario plantearse las siguientes preguntas: Entrada •¿ Que datos ocupa conocer el computador para resolver el problema y en cuales variables de entrada se van a almacenar. ? Proceso •¿ Que procesos u operaciones debe realizar el computador para resolver el problema planteado.? Salida •¿Que información o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente ? Nota importante: no confundir los términos datos, variables e información. Ing. Espec. J. Javier Vaquiro Página 6 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Es el nombre de una localidad o dirección interna en la memoria del computador donde se almacenan los datos, ejemplo de variables para los casos del inciso anterior. OPERADORES Estosse se refieren a información en bruto no procesada ni catalogada, por ejemplo “Sena”, “calle primera # 213”,”15 años”, ” $2,520.00”, etc. Ing. Espec. Javier Vaquiro VARIABLES DATOS Instructor: Un operador es un símbolo especial que indica al compilador que debe efectuar una operación matemática o lógica. OPERADORES Operadores Aritméticos: Operador Operación + Suma - Resta * Multiplicacion / Division % Residuo o Modulo Operadores Relacionales: Los operadores relaciónales 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 ó es diferente que Ejemplo de Asignación de Variables: 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. Ing. Espec. J. Javier Vaquiro Página 7 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro En java jsp solo este ultimo formato es valido dentro de una condición en una instrucción 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. NOTA: En problemas de division entre enteros, java trunca la parte residual, Ejemplo: Desplegar— Desplegar—> 13/5 —> el resultado es 2 Para resolver los problemas de potencias y raíces, se usan ciertas instrucciones especiales que proporciona el lenguaje, llamadas funciones matemáticas, en java existe toda una librería de instrucciones o funciones matemáticas. Recordar que todas las funciones reciben uno o más datos o valores y regresan siempre un resultado, una de estas funciones matemáticas es: import java.lang.math ; public static double pow(double pow(double a, double b); Esta función ocupa dos valores o datos( base y exp) ambos de tipo double, y regresa un resultado también de tipo double, ejemplo; Ejercicio: resolver el problema de calcular import java.io.*; import java.lang.Math; public class ejemplo1 { public static void main(String args[]) { double base =5; double exponente=3; Ing. Espec. J. Javier Vaquiro Página 8 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro double potencia =0; potencia = Math.pow(base, exponente); System.out.println("potencia =" +potencia); }// cerrar main } //cerrar clase Ejercicio Elaborar un programa para calcular Para resolver el problema de raíces, se aprovecha una de las más elementales y conocida de las leyes de exponentes que dice: Es decir una raíz cualquiera se puede transformar a una potencia con un exponente fraccionario. Ejemplo: Resolver = 3 √ , esto es equivalente a Solución: Usando la función pow( pow( ), ), podemos escribir: y= 3*Math.pow(x, 0.5); Nota: En este ejemplo no funcional se está dando por supuesto que no interesa el tipo de dato que requiere la función pow( ) para trabajar correctamente. Para realizar operaciones con objetos numéricos, 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 operación con dicha variable y al final si se quiere convertir esta variable al objeto numérico apropiado (esto último se verá en el siguiente tema), como lo muestra el Siguiente ejemplo; Ing. Espec. J. Javier Vaquiro Página 9 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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 numéricos, luego dos variables numéricas normales, luego estas dos últimas variables se cargan con los objetos numéricos que emplean métodos propios para convertirlos a datos normales. JERARQUIA DE OPERACIONES En Java - JSP como en todos los demás lenguajes de programación el problema de no tomar en cuenta la jerarquía de los operadores al plantear y resolver una operación 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/2da como resultado promedio = 100 Recordar siempre, que antes de plantear una formula en un programa se deberá evaluar contra el siguiente: Ing. Espec. J. Javier Vaquiro Página 10 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Orden de operaciones: 1.- Paréntesis 2.- Potencias y raíces 3.- Multiplicaciones y divisiones 4.- Sumas y restas 5.- Dos o más de la misma jerarquía u orden, entonces resolver de izquierda a derecha Nota 1:: Si se quiere alterar el orden normal de operaciones, entonces usar paréntesis. Nota 2: Tampoco es bueno usar paréntesis de más en una operación, esto solo indica que no se evalúo bien la formula, como en el siguiente ejemplo; Aquí, los paréntesis están de más,, porque por orden de operaciones, multiplicación y división tienen la misma jerarquía y entonces se resuelven de izquierda a derecha. En n sus programas de java – jsp, no se debe ignorar los paréntesis, tampoco que estos sobren. EJEMPLO DE MODELO DE SOLUCIÓN Construir un modelo de solución que resuelva el problema de calcular el área de un triángulo con la formula área igual a base por altura sobre dos. Variable(s) de Entrada Proceso u Operación Variable(s) de Salida BASE , ALTURA AREA= BASE * ALTURA / 2 AREA Observar para el caso de constantes fijas o conocidas ( Pi ) no se debe dar como dato de entrada, entrada su valor. Mientras que colocar directamente su valor dentro de la formula en la parte de operaciones del problema. Pero recordar también que existirán problemas sencillos donde: Ing. Espec. J. Javier Vaquiro Página 11 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro No se ocupan entradas o no se ocupan operaciones, pero todos ocupan salida. Una fórmula grande o muy compleja puede ser más segura y fácil de resolver, si es descompuesta y resuelta en partes, juntando al final los parciales para obtener el resultado final. Un problema puede tener más de una solución correcta. El problema no está suficientemente explicado o enunciado, entonces, estudiarlo, analizarlo y construirlo de manera genérica. Operador CAST, (para las Conversiones) Se puede forzar un dato, variable o una expresión 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: ( nuevotipo ) dato , var, exp; Ejemplo: // declaración int alfa; // Asignación alfa = 20; // Cambio de tipo (float) alfa; Ing. Espec. J. Javier Vaquiro Página 12 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Ejemplo: ( int ) 3.1416; en este ejemplo se está convirtiendo un float a int, recordar que en este caso ya no se tendrán los decimales. Como nota importante se puede hacer cast solo con tipos de datos, no entre numérica.. tipos de datos y objetos de una clase numérica Como nota importante este operador resuelve los dos problemas pendientes: 1. El de la división entre enteros. 2. El tipo de dato especifico que requieren las funciones. Ejemplos: a) // Declaración float alfa; // Operación alfa = (float)23/5; // Pero en estos casos es preferible alfa=23/5.0; En toda división 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)// Declaración double potencia; // Operación potencia = Math.pow ( (double)5, (double)3); Como se observa en el ejemplo, se puede usar pow(), directamente con los datos, argumentos o parámetros requeridos , si estos son numéricos, pero transformándolos con el operador cast. Ing. Espec. J. Javier Vaquiro Página 13 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Esto también va a permitir evaluar expresiones matemáticas de manera mas directa y sencilla, solo recordando usar un pow() por cada potencia y cada raíz de la ecuación, ejemplo: Sea: dentro de un programa esto se resuelve con; // área de declaración 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 desplegar x, y En Java Jsp para convertir tipos de datos numéricos a objetos numericos y viseversa se deberán usar los métodos que traen las clase numericas de manera apropiada, en general existen tres casos generales difrentes, considerando datos o variables numéricas, objetos numéricos y strings que es un caso especial y comun: a.1) Conversión de Variable numérica a variable no numérica: Usar el operador cast, cast, ejemplo: var to var int alfa1=10; double alfa2=3.1416; alfa1= (int)alfa2; observar que los valores decimales deben declararse como doubles Ing. Espec. J. Javier Vaquiro Página 14 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro a.2) Conversión de una variable numérica a tipo string Ejemplo; var to string int zeta=50; String alfa= String.valueOf(zeta); a.3) variable numérica a objeto numérico caso 1: usando constructor int zeta=80; Float alfa4 = new Float(zeta); caso 2: ya existe el objeto numérico Double alfa5 = new Double(0); Int zeta=30; alfa5=Double.valueOf(String.valueOf(zeta)); b.1) Objeto Numérico a Variable numérica todos los objetos numéricos deben crearse inicializados aunque sea a (0) Integer alfa = new Integer(300); Int zeta = alfa.intValue(); b.2) Objeto numerico numerico a String Float alfa = new Float(“3.45”); String beta = new String(” ”); Beta = alfa.toString(); Ing. Espec. J. Javier Vaquiro Página 15 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro B.3) Objeto Numérico a Objeto no Numérico Integer alfa=new Integer(50); Double beta=new Double(0); beta = beta.valueOf(alfa.toString()); c.1) String a variable numérica String alfa= new String(“3.5”); double beta= 0; beta= Double.parseDouble(alfa); c.2) String a Objeto Numérico String alfa8=new String(“50”); Double alfa9=new Double(0); alfa9 = alfa9.valueOf(alfa8); Ing. Espec. J. Javier Vaquiro Página 16 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro La librería matemática de java-jsp completa incluye: Class Math public final class java.lang.Math extends java.lang.Object { Fields public final static double E; public final static double PI; Método todos public static double abs(double a); public static float max(float a, float b); public static int max(int a, int b); public static double min(double a, double b); public static int min(int a, int b); public static double pow(double a, double b); public static double random(); public static int round(float a); public static double sqrt(double a); } Ing. Espec. J. Javier Vaquiro Página 17 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Conceptos de Programacion Orientada Objetos Para nuestro propósito en general un objeto puede definirse como cualquier cosa, ente o entidad física o lógica de información. 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:: Propiedades Son las características 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 categoría. Las propiedades mas generales son forma, color, tamaño, peso, etc., pero ya en particular: Chamarra → Marca, material, precio, color, tamaño, etc Alumno → Matricula, nombre, edad, domicilio, etc. Gato → Raza, nombre, color, edad, etc. VentanaWindows–>Tamaño, Color, font, etc. b) Métodos Métodos: Son las conductas propias de la naturaleza del objeto. Así como las propiedades son el ser (que es) del objeto, los métodos son el hacer (que hacer) del objeto. Ejemplo de métodos: Gato —> Maullar(), comer(), correr(), saltar(), etc. Alumno—> Estudiar(), comer(), asistir clase(), pintear() Vehículo–>Conducir(), acelerar(), frenar(), pitar(), etc. VentanaWindows–> Abrir(), cerrar(), maximizar(), etc…. Ing. Espec. J. Javier Vaquiro Página 18 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Eventos:: Es la relación (de varias maneras) que se puede dar entre dos c) Eventos objetos ya sean de la misma o diferente clase. Un evento se manifiesta como un interacción entre dos objetos, en general al momento de la relación al mismo tiempo se dará una reacción o respuesta por parte de los dos objetos que se manifiestan como una serie, cadena o conjuntos de métodos propios que se activan o disparan, ejemplo: Evento Relación Métodos que se activan Gato detecta ratón detectar maullar(), correr(), oler() Conductor maneja vehículo manejar acelerar(), pitar(), frenar() Profesor enseña a Alumno Enseñar pasar lista(), preguntar(), etc. clic maximizar(), cerrar() Doble clic minimizar(), etc. Ratón clic Windows Ratón doble clic Windows Un Programa en Java-Jsp se puede considerar como un conjunto de una o más 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 específica por ejemplo hay controles especializados en desplegar textos o mensajes, otros controles se especializan en desplegar imágenes o vídeos, otros en manipular directorios o archivos en disco, etc. Pero en general tanto las formas como los controles no dejan de ser objetos en programación y por tanto tienen sus propiedades, métodos y están sujetos a eventos. Un camino para dividir un gran programa en partes mas pequeñas es el uso de declaraciones. Ing. Espec. J. Javier Vaquiro Página 19 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Declaraciones Una declaración es un grupo de instrucciones, variables, constantes, etc, que están diseñados con un propósito particular y tiene su nombre propio. Es decir, una Declaración es un módulo de un programa que realiza una tarea específica y que no puede regresar valores al programa principal u a otro procedimiento que lo esté invocando. Después de escribir una declaración se usará ese nombre propio como una sola instrucción 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 invocación al procedimiento durante la ejecución de un programa se deberá escribir el nombre de la misma y los paréntesis en blanco. Ing. Espec. J. Javier Vaquiro Página 20 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Unidad 2 Ciclos Funcionamiento de Un Ciclo. Un ciclo, funciona de la siguiente manera: Evalúa una condición; de resultar cierta, realiza una acción o bloque de acciones. Luego vuelve a evaluar la condición; y si nuevamente resulta cierta, realiza la (s) acción (es). Cuando la condición arroje un resultado falso, se sale del ciclo y continúa con la ejecución normal del programa. Acumulador. Es una variable, variable que , como su nombre lo indica se encarga de acumular valores. Esto se vuelve muy útil, por ejemplo, cuando queremos encontrar la suma de los números del 0 al 9, en el acumulador, vamos guardando los valores de dichas cifras. Puede ser tanto real como entera. Su valor inicial, en la mayoría de los casos es cero. Ejemplo: sum=0 sum = sum+1 Contador. Es una variable de tipo entero, que nos ayuda, en el programa a contabilizar el número de ejecuciones de una misma acción, de un grupo de alumnos etc. Un contador tiene tres valores distintos: Valor Inicial: Inicial es el valor con el cual iniciamos nuestro contador. Generalmente es cero. Esta asignación puede hacerse cuando se declara la variable. Ejemplo: i=0 Ing. Espec. J. Javier Vaquiro Página 21 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Valor Final: Ing. Espec. Javier Vaquiro después de la ejecución del ciclo, el valor del contador, será distinto a su valor inicial, este puede ser mayor o menor que el mismo, todo depende si fue una cuenta creciente o decreciente. Ejemplo: i <= 10, i<N Valor de Cambio: Es el valor Constante, en el cual se irá incrementando nuestro contador, este puede ser positivo o negativo; es decir, si la cuanta se realiza de manera ascendente o descendente. Ejemplo: i++, ++i contador:: Ejemplo de contador cont =1 cont = cont+1 NOTA: El estudiante no debe confundirse entre las variables tipo acumulador y tipo contador, estas se diferencian unas de otras en que: los contadores, su valor de cambio es una constante, ya que aumenta y disminuyen en el mismo valor, mientras que los acumuladores su valor de cambio no es constante. Un acumulador necesariamente lo inicializamos con cero (o al menos en la mayoría de los casos). Un contador puede iniciar con cualquier valor. Ing. Espec. J. Javier Vaquiro Página 22 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Instrucciones de control de Programa Instrucciones de control de programa permiten alterar la secuencia normal de ejecución de un programa. Estas instrucciones se dividen en tres grandes categorías: 1.- Instrucciones Condicionales que en java jsp se implementan con las instrucciones if y switch. Instrucciones de ciclos con: 1. If 2. case / switch 3. for 4. while 5. do while En java – jsp, muchas de ellas tienen sus correspondientes componentes visuales, derivados de html. Instrucciones Condicionales Una de las más poderosas características de cualquier computador es la capacidad que tiene de tomar decisiones. Es decir al comparar dos alternativas diferentes el computador puede tomar una decisión basándose en la evaluación que hace de alguna condición. En java- jsp, algunos ejemplos de instrucciones condicionales: si edad > 18 eres mayor de edad” si no “eres menor de edad” Fin-si Ing. Espec. J. Javier Vaquiro Página 23 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro si sexo = 'm' imprime mujer si no imprime hombre Fin-si De los ejemplos observar que los caminos a seguir por el computador dependerán de la evaluación que el computador hace con y de la condición. Pero recordar que lenguajes modernos y orientados a clientes-servidores 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 selección y decisión en html. El formato general de una instrucción condicional es: Como se observa, son cuatro partes bien diferenciadas entre si; La propia instrucción condicional en si La condición El grupo cierto de instrucciones El grupo falso de instrucciones Cuando el computador evalúa una condición el resultado de esa evaluación solo es evaluado de dos maneras o la condición es CIERTA o la condición es FALSA. Esto dependerá del valor que tenga asignado o que se haya capturado para la variable que esta en la condición, por ejemplo si se capturo 6000 en sueldo en el ejemplo a) entonces el computador indicaría que la condición es CIERTA pero en otro caso si a la variable sueldo primero se le asigno un valor de 250 entonces el computador indicaría que la condición es FALSA. Ing. Espec. J. Javier Vaquiro Página 24 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Instrucción SWITCH También existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instrucción SWITCH. Esta instrucción es una instrucción de decisión múltiple 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 instrucción es el siguiente; Primero se debe crear una virariable llamada OPCION, y luego escribir: switch(var OPCION) { case const1: instrucción(es); break; case const2: instrucción(es); break; case const3: instrucción(es); break; ……………… default: instrucción(es); }; Ing. Espec. J. Javier Vaquiro Página 25 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro // programa: Prueba_switch.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("vaca "); break; case 'c': out.println("caballo "); break; default: out.println("no hay "); }; // observar que se puede escribir directamente a la página dinámica Ing. Espec. J. Javier Vaquiro Página 26 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro // Esto es un Formulario }; // construyendo forma dinámica 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>"); %> //Ejecución: (si escribimos bien, nos aparece la siguiente ventana) Observar el caso “b”, observar como se pueden usar mas de dos case con un solo break. Ing. Espec. J. Javier Vaquiro Página 27 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Tareas de programación javajava-jsp 1.- Capturar un número deseado e informar si es <100 ó >100 2.- Capturar un número entero cualesquiera e informar si es o no es múltiplo de 4 ( recordar el operador mod (%), analizado en el tema de operadores aritméticos). 3.- Capturar los cinco datos más importantes de un Empleado, incluyendo el sueldo diario y los días trabajados desplegarle su cheque semanal solo si ganó más de $700.000 en la semana, en caso contrario desplegarle un bono de despensa semanal de $150.000. 4.- Capturar los datos más importantes de un estudiante incluyendo tres calificaciones. Construir una boleta de calificaciones en una página de respuesta bien bonita, si el estudiante es de la carrera de medicina. En caso contrario construir una página que despliegue un oficio citando a los padres del estudiante a una conversación amistosa con los docentes de la escuela. 5.- Capturar los datos de una factura para un artículo deseado, incluyendo cantidad, detalle, precio, etc. Desplegar una orden de compra, solo si el producto es de origen nacional. En caso contrario no hacer nada. Ing. Espec. J. Javier Vaquiro Página 28 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Ciclo FOR Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa más de una vez. Este ciclo es uno de los más usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta. Su formato general es: for (inicialización; condición; incremento) { instrucción(es); }; En su forma simple la inicialización es una instrucción de asignación que carga una variable de control de ciclo con un valor inicial. La condición es una expresión relacional que evalúa 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: Guarda este ejemplo con el nombre de: prueba_for.jsp <% // Valores de X, del 1 al 10 for (int x=1; x<=10; x++) { out.println("x= "+x+"<br>"); }; %> Ing. Espec. J. Javier Vaquiro Página 29 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro //Ejecución : prueba_for.jsp Casos Particulares del ciclo for: 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 ser diferente de uno, ejemplo; for(x=5;x⇐15;x=x+1){ for(x=5;x⇐15;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 también 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; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condición. Ing. Espec. J. Javier Vaquiro Página 30 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Ejemplo: for (x= 50 ; x >= 10; x= x-4 ) { etcétera }; 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 DE PROGRAMACION JAVA - JSP 1.- CONSTRUIR UN PROGRAMA QUE DESPLIEGUE LOS NÚMEROS DEL 20 AL 30. 2.- DESPLEGAR LOS ENTEROS ENTRE 50 Y 30 ACOMPAÑADOS DE SU POTENCIA CUADRADA Y RAÍZ CUBICA RESPECTIVA(revisar el tema de operadores aritmeticos). 3.- DESPLEGAR LOS MÚLTIPLOS DE 5, ENTRE 10 Y 50, ACOMPAÑADOS 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–> -3…10 (RANGO DE -3 HASTA 10) Ciclo WHILE En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina. Su formato general es : cargar o inicializar variable de condición; Ing. Espec. J. Javier Vaquiro Página 31 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro while(condición) { grupo cierto de instrucciones; instrucción(es) para salir del ciclo; }; Un error muy comun con el while, es poner un punto y coma(;) despues de la (condición) ejemplo while(condicion);; ojo.! ←- esto es un error.!! error.!! //Programa: Prueba_while.jsp <%! int x; %> <% x=1; while (x<=10) { out.println("x= "+x+"<br>"); x++; }; %> Ejecución del Programa: Ing. Espec. J. Javier Vaquiro Página 32 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro While puede llevar dos condiciones en este caso inicializar 2 variables de condición y cuidar que existan 2 de rompimiento o terminación de ciclo. La condición puede ser simple o compuesta. Los casos generales de for también se aplican a while. A este ciclo también se le conoce también como ciclo de condición de entrada o prueba por arriba porque este ciclo evalúa primero la condición y posteriormente ejecuta las instrucciones. TAREAS PROGRAMACION JAVA – JSP (Ciclo – While) 1.- DESPLEGAR ENTEROS ENTRE 50 Y 80 2.- DESPLEGAR MULTIPLOS DE 4 ENTRE 60 Y 20 ACOMPAÑADOS 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 Ing. Espec. J. Javier Vaquiro Página 33 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro CICLO DO WHILE Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición; También se le conoce por esta razón como ciclo de condición de salida. Su formato general es : cargar o inicializar variable de condición; do { grupo cierto de instrucción(es); instrucción(es) de rompimiento de ciclo; } while (condición); //Ejemplo: Prueba_dowhile.jsp <%! int x; %> <% x=1; do { out.println("x= "+x+"<br>"); x++; } while (x<=10); %> Ing. Espec. J. Javier Vaquiro Página 34 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Otra diferencia básica con el ciclo while es que, aunque la condición sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez. CONCLUSIONES ACERCA DE CICLOS En java - Jsp cuando nos encontramos en la situación de resolver un problema cualquiera, debemos decidir cual ciclo se debe usar, y en este caso debemos tener en cuenta lo siguiente: 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. Si se desconoce la cantidad de veces a repetir el ciclo o se quiere mayor control sobre la salida o terminación del mismo entonces usar while. Si se quiere que al menos una vez se ejecute el ciclo entonces usar do while. Ing. Espec. J. Javier Vaquiro Página 35 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro OBJETOS 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 pequeño de posibles respuestas esto significa que cada vez que se ejecute el programa el usuario estará proporcionando las mismas respuestas. Un Ejemplo de esta clase de datos, sería por decir, programas de formación en el SENASENA-Ceet. Ceet. Las posibles respuestas solo son: son: (ADSI, ADSI, MEC, MEC, MELI, MELI, REDES) 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. Necesitamos usar los diversos controles, tales como: SELECT NAME INPUT TYPE FORM ACTION METHOD=post SUBMIT NAME FORM ACTION OPTION SELECT: SELECT Este control nos permite definir en primera instancia un conjunto de datos o valores respuestas asociados a una caja de edición 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.) Ing. Espec. J. Javier Vaquiro Página 36 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro La segunda parte es la lista de opciones o respuestas que se debe cargar al tiempo de ejecución de la forma html como lo muestra el siguiente programa: //Ejemplo de Código en Java: Programa_Menú_Desplegable <% // declarando String CAPITAL=""; if(request.getParameter("OK") != null) { CAPITAL =request.getParameter("CAPITAL"); out.println(CAPITAL+" = "); if (CAPITAL.compareTo("BOGOTA")==0)out.println("LA CAPITAL DE NUESTRA REPÚBLICA"); if (CAPITAL.compareTo("CALI")==0)out.println("LA SUCURSAL DEL CIELO"); if (CAPITAL.compareTo("MEDELLIN")==0) out.println("LA ETERNA PRIMAVERA"); }; // construyendo forma dinámica, usando Formularios out.println("<FORM ACTION=Formulario1.jsp METHOD=post>"); out.println("<B>CAPITALES</B>"); out.println("<SELECT NAME=CAPITAL>"); out.println("<OPTION>BOGOTA<OPTION>CALI<OPTION>MEDELLIN "); out.println("</SELECT>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %> Ejercicio: Modifique este código, utilizando los programas de formación del SENA ofrecidos por el CEET. Ing. Espec. J. Javier Vaquiro Página 37 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Ejecución: Ejemplo: //Calculo del Área de un Triangulo <%! 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(); }; Ing. Espec. J. Javier Vaquiro Página 38 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro // 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>"); %> Ejecución: 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 creación de REQUEST y OUT lo hace después, generando errores de objetos request y out desconocidos). Ing. Espec. J. Javier Vaquiro Página 39 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Unidad JSP 3 ( JAVA SERVER PAGE ) Java Server Page ( JSP ), es otra de las nuevas tecnologías para tratar de hacer mas eficiente el modelo cliente-servidor y sobre todo la construcción de sistemas de comercio electrónico. En este modelo, una página HTML también incluye código 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 tecnología combina en una sola aplicación, tanto código html como codigo java. El proceso de crear un jsp, es sencillo. 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 pequeño ejemplo: Ejemplo1.jsp Ejemplo1.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>"); Ing. Espec. J. Javier Vaquiro Página 40 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: out.println("DAME Ing. Espec. Javier Vaquiro 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>"); %> Ejecución: Solo grabarlo como prog1.jsp (ojo con notepad y su .txt), al folder web-inf Notas: Para insertar código java dentro de una pagina html se deberán usar una serie de tags o delimitadores ( en el ejemplo se esta usando <% una serie de instrucciónes de java %> ) donde cada uno de ellos tiene un propósito definido. Otros delimitadores son: Ing. Espec. J. Javier Vaquiro Página 41 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Comentarios: <% -- Palabras a escribir --%> Ignorados cuando jsp es convertida a servlet y muy útiles para documentar nuestros programas jsp. Declaración: <%! Aquí se declaran las variables, métodos, etc %> Recordar que todo buen programa, empieza declarando variables. Expresión:: Expresión <%= Aquí se colocan las Instrucciones a usar (fórmulas) %> Para colocar una y solo una instrucción de java, además 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 además que: cuando se use Expresión <%= una sola instrucción %> Ojo.! la instrucción no debe terminar con punto y coma. Ing. Espec. J. Javier Vaquiro Página 42 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Scriptlet:: Scriptlet <% todo un programa completo codificado en Java %> Un scriptlet es un grupo de instrucciones de java, como se deduce de esta definición, se usara muchos scriptlets en nuestros jsp. Aquí sí, todas las instrucciones deben terminar con punto y coma ( ; ) Un bloque de instrucciones <% 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 también es válido: jsp:include action para incluir el archivo al tiempo de request por parte de un usuario remoto page=“URL jsp:forward Action <jsp:forward page=“ URL relativo”/> Manda llamar o enlazar otra página. NOTA: HASTA AQUI SON LAS DIRECTIVAS O DELIMITADORES MAS COMUNES EN PROGRAMAS O APLICACIONES SENCILLAS Ing. Espec. J. Javier Vaquiro Página 43 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 2.- En la parte de abajo se está construyendo una pagina html dinámica, usando la instrucción (u objeto OUT) out.println de java, les recomiendo conseguir un buen tutorial de HTML y estudiarlo a fondo. 3.- Se está usando tres objetos TEXT de html (ver apendice html), de estos objetos se cargan su propiedad NAME y VALUE en este último caso usando una variable normal de java jsp 4.- Poner atención dentro del programa que cuando creamos objetos HTML se declaran en mayúsculas y cuando creamos variables java se declaran en minúsculas, no es una regla pero si es una buena práctica de programación. 5.- Se está usando un objeto HTML submit, del cual se usan las propiedades NAME y VALUE, este objeto tiene como propósito principal activar la acción de la forma (llamarse a si mismo el prog1.jsp) y además mandar los datos que proporciono el usuario hacia el servidor. 6.- La ultima parte de la pagina es FORM, todos los objetos html deberán estar encerrados entre esta forma o ventana, form tiene dos propiedades la primera de ellas es una acción y en este caso la acción es pedirle al servidor que vuelva a ejecutarse el propio programa1 jsp, la segunda parte es un método, es este caso es el método POST también se puede poner el método GET, en ambos casos este método regresa los datos desde la pc del usuario hacia el servidor, pero POST lo hace en forma invisible y GET lo hace en forma pública (probar el mismo programa con post y get y observar que pasa cuando activan el botón de submit). 7.- Al principio del programa se deberán declarar e inicializar a 0, ó ”” todas las variables del programa. 8.- Se está usando una instrucción IF para revisar el VALUE de SUBMIT, recordar que cuando el usuario pide por primera vez el programa al servidor , el VALUE del objeto Ing. Espec. J. Javier Vaquiro Página 44 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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 está 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. Por la razón del inciso 10 se está usando el método parseInt(string) para convertir la string a int. 11._ Ya cargadas las variables se deberá realizar la operación apropiada, recordar incluir estas variables en la forma dinámica. Componente CHECKBOX El componente CheckBox, permite seleccionar una opción al usuario del programa o tomar una decisión directamente en pantalla. Ing. Espec. J. Javier Vaquiro Página 45 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Ejemplos de uso: Observar que dos o mas checkboxs pueden estar seleccionados a la vez. //Código prog5..jsp //Có digo prog5 <% -- Declaramos Variables -- %> <%! 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=progchequeo.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>"); Ing. Espec. J. Javier Vaquiro Página 46 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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 progchequeo.jsp 2.- La propiedad NAME deberá ser diferente en cada CHECKBOX usado, la propiedad checked, checked, se usa para que aparezca ya seleccionado el control. 3.- Cuando se activa progchequeo.jsp, esta forma manda el par NAME=on, solo de los checkbox que fueron seleccionados. Ejecución: Para programar este componente, hacemos lo siguiente: Como ya se indicó, esta forma va a mandar el par NAME=on, así que, esto es sencillo en java - jsp, solo recordar usar un if por cada checkbox. Ing. Espec. J. Javier Vaquiro Página 47 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro ERRORES Y EXCEPCIONES. Estos problemas de errores y excepciones, que en java se producen al tiempo de ejecución del programa son los problemas normales de mal código y que también se producen al tiempo de compilación no al tiempo de ejecución del programa, este tema se refiere a errores y excepciones al tiempo de ejecución del programa. Java tiene un mecanismo muy completo para el manejo de errores y excepciones. Un ERROR ocurre generalmente al tiempo de estar ejecutándose un programa, por ejemplo una división entre cero. Una EXCEPCION es creada también al tiempo de ejecución del programa cuando en alguna parte del programa se produce alguna condición 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 comparación java avisa de una excepcion como se muestra en la siguiente pantalla ejemplo: Ing. Espec. J. Javier Vaquiro Página 48 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Esta excepción ocurrió al tiempo de ejecución del programa y por el problema ya descrito y explicado. La diferencia entre una EXCEPCION y un ERROR es que una excepción si es atrapada(catch) por el programa y el programador permite recuperar el programa y continuar con su ejecución, mientras que un error aunque sea atrapado(catch) por el programa y el programador el programa suspenderá y terminara su ejecución. Si errores o excepciones no son atrapadas(catch) el programa terminara su ejecución y mandara el aviso al usuario, como se demuestra en la pantallita de arriba. Es por esta razón que es conveniente y necesario atrapar (catch) errores o excepciones, así el programador podrá incluir algún mecanismo de corrección de errores o al menos de avisarle al usuario en lugar de que sea el servidor quien le avise. Este mecanismo de corrección de errores es la clausula o instrucción Try Sintaxis: 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 instrucción de java, un grupo de instrucciones de java o todo el programa completo. En el progchequeo.jsp se usó un try-catch en cada if, se pudo usar un try catch con todos los if , pero no se conoce de antemano cuales variables strings se quedan en null. Asi que, fue más conveniente revisar if por if. Ing. Espec. J. Javier Vaquiro Página 49 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro En resumen, cuando en algún programa al tiempo de ejecución les aparezca un error o excepción nos veremos obligados a usar try-catch para atraparlo o corregirlo, el tipo de error o excepción a cubrir se los va a estar indicando el propio servidor de paginas como lo muestra la pantallita ejemplo de excepción y observar que la misma excepción que apareció en dicha pantallita, se puso en la clausula catch. Si aparecen más errores o excepciones en un programa es válido que un try lleve más de un catch. Componente RADIOBUTTON 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 demás componentes radioButton en la forma, se deseleccionan solos es por esta razón 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>"); }; Ing. Espec. J. Javier Vaquiro Página 50 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro // construyendo forma dinámica 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>"); %> NOTA: 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 razón principal para esta situación es que los radiobotones son mutuamente excluyentes entre si Y QUE SOLO UNO PUEDE ESTAR ENCENDIDO A LA VEZ por eso Ing. Espec. J. Javier Vaquiro Página 51 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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 Rrecordar 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. Ejecución: Ing. Espec. J. Javier Vaquiro Página 52 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Unidad 4 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” PROPIEDADES EVENTOS MÉTODOS “form” “OnClick” “click” “name” “OnFocus” “focus” “value” “enabled” Control “CheckBox” “value” “enabled” “checked” “defaultchecked” Ing. Espec. J. Javier Vaquiro Página 53 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Control “Radio”. Propiedades Eventos Métodos “form” “OnClick” “click” “name” “OnFocus” “focus” “value” “enabled” “checked” Control “Password”. Propiedades Eventos Métodos “form” “OnBlur” “blur” “name” “OnFocus” “focus” “value” “enabled” Controles “Text” y “Textarea”s. Propiedades Eventos Métodos “form” “OnBlur” “blur” “name” “OnFocus” “focus” “value” “enabled” Control “Select”. Propiedades Eventos Metodos “length” “OnBlur” “blur” “options” “OnFocus” “focus” “selectedIndex” “OnChange” Ing. Espec. J. Javier Vaquiro Página 54 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Control “Hidden”. Propiedades Eventos Métodos “name” “value” Palabras clave del lenguaje Java Aquí hay una lista de palabras clave de Java. Estas palabras están reservadas, no puede utilizar ninguna de estas programas Java. "True", "falso" y" reservadas, por lo que no palabras como nulo" no se nombres en son palabras sino pueden utilizar que son como sus palabras nombres en sus programas tampoco. “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” %. Indica una palabra clave que no se utiliza actualmente %% . Indica una palabra clave que se añadió a Java 2 Ing. Espec. J. Javier Vaquiro Página 55 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Unidad 5 Clases Especiales 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 class java.lang.Integer extends java.lang.Number { // Fields public final static int **MAX_VALUE**; public final static int **MIN_VALUE**; // Constructors public **Integer**(int value); public **Integer**(String s); // Methods public double **doubleValue**(); Ing. Espec. J. Javier Vaquiro Página 56 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro public boolean **equals**(Object obj); public float **floatValue**(); public static Integer **getInteger**(String nm); public static Integer **getInteger**(String nm, int val); public static Integer **getInteger**(String nm, Integer val); public int **hashCode**(); public int **intValue**(); public long **longValue**(); public static int **parseInt**(String s); public static int **parseInt**(String s, int radix); public static String **toBinaryString**(int i); public static String **toHexString**(int i); public static String **toOctalString**(int i); public String **toString**(); public static String **toString**(int i); public static String **toString**(int i, int radix); public static Integer **valueOf**(String s); public static 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 Ing. Espec. J. Javier Vaquiro Página 57 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro Class Double public final class java.lang.Double extends java.lang.Number { // Fields public final static double **MAX_VALUE**; public final static double **MIN_VALUE**; public final static double **NaN**; public final static double **NEGATIVE_INFINITY**; public final static double **POSITIVE_INFINITY**; // Constructors public **Double**(double value); public **Double**(String s); // Methods public static long **doubleToLongBits**(double value); public double **doubleValue**(); public boolean **equals**(Object obj); public float **floatValue**(); public int **hashCode**(); public int **intValue**(); public boolean **isInfinite**(); public static boolean **isInfinite**(double v); public boolean **isNaN**(); public static boolean **isNaN**(double v); public static double **longBitsToDouble**(long bits); public long **longValue**(); public String **toString**(); public static String **toString**(double d); public static Double **valueOf**(String s); } Ing. Espec. J. Javier Vaquiro Página 58 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 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); } Ing. Espec. J. Javier Vaquiro Página 59 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro L abor ator io 1. Dados los siguientes conceptos, escriba dentro del corchete, la letra al cual corresponda de acuerdo con su definición 1. 2. 3. A. B. C. D. E. F. [ [ [ ] Constantes ] Identificadores ] Operadores Relacional 4. [ 5. [ 6. [ ] Datos Alfanuméricos ] Operadores Lógicos ] Datos Lógicos Es un nombre asignado a las casillas de memoria. Su contenido puede ser Numérico o alfanumérico. Sólo pueden tomar dos (2) valores: Verdadero o Falso. Datos que no cambian durante la ejecución de un programa. Es una expresión que permite comparar dos operandos. Permiten formular condiciones complejas a partir de condiciones simples. 2. Sea X=10, Y=7, Z=1/2, W=9 Realice las siguientes operaciones: a) x+y-z * x^2 / w b) (y / z) * x-y+w^1/2 c) y-z+y * + w-x / z^2 d) z^3 * y^2 / 1/w + 1/y^4 3. En cierto país el impuesto que se debe pagar por los artículos debe calcularse con la siguiente regla: los primeros $200.000 no causan impuesto, los $200.000 < artículos<= $300.000, tienen impuesto del 5% y el resto el 10%. Pero, si el costo del producto es >= $700.000, entonces en lugar del 10% se cobre el 15%. 4. Una empresa solicita información de las ventas realizadas por cada uno de sus 6 vendedores, los cuales están distribuidos en las zonas de: Valle, Risaralda y Antioquia. La empresa paga un salario base de $700.000 y una comisión del 18% para las ventas superiores o iguales a 12 salarios mínimos y el 10% para las menores. Se pide: a) Escribir el algoritmo que muestre: el Salario neto de los 6 vendedores, el Nombre del Vendedor y la zona. b) Hacer la Prueba de escritorio c) Elaborar el diagrama de flujo. Ing. Espec. J. Javier Vaquiro Página 60 Construir los modelos de solución de los siguientes problemas: 5. Explique brevemente en qué consiste y cómo funciona un ciclo. 6. Cuál es la diferencia entre un contador y un Acumulador 7. ¿cuál es la mejor manera de validar Datos.? 8. ¿cómo se evita un ciclo Infinito? 9. ¿Qué diferencia existe entre un ciclo de entrada asegurada y el do... While ? 10. Convertir la edad en años de una persona a meses. 11. Convertir pesos a dólares. 12. Evaluar la 13. Calcular el área de un circulo con la formula 14. La distancia Bogotá - Cali es de aproximadamente 700 Kms, si un automóvil expresión la recorre a una velocidad constante de 30 millas por hora. ¿Cuanto tiempo tarda en llegar. ( 1 milla =1.609 Km.) 15. Construir un programa Java-Jsp que contenga puras llamadas a procedimientos dentro de un menú. a) Pesos a dólares. b) Área de un triangulo. c) Área del Círculo. d) Fin de menú. 16. Construir un programa que capture un deporte cualesquiera y despliegue dos implementos deportivos apropiados. 17. Observar que el servidor de paginas devolvió el par MUNICIPIO=TIJUANA que estamos capturando en nuestra variable municipio. 18. 3.- Construir una forma.html con los datos de un automóvil (usar puros select) y construir dos páginas de salida o respuesta una con un plan de financiamiento a dos años u otra con un plan de financiamiento a tres años. 19. Construir un cuestionario de 6 preguntas sobre los hábitos de estudio de un estudiante y pasar sus respuestas a una pagina nueva. 20. Evaluar una función cualesquiera, la pagina html tiene name = x y valor = 3, -5, 10 CEET - Distrito Capital Programa de Formación: ADSI 150752 –54, TRIMESTRE V Conocimiento de Proceso: Desarrollar sistemas de información entorno Web y cliente servidor. Instructor: Ing. Espec. Javier Vaquiro 21. Codificar en JSP el ejercicio No. 3 22. Codificar en JSP el ejercicio No. 4 23. Se desea conocer el resultado final para un estudiante que cursa una materia en cierta institución educativa. El programa debe solicitar por teclado los siguientes datos: El nombre de la Institución, el nombre del estudiante, el nombre de la materia y 3 notas ingresadas. El programa deberá calcular el promedio de estas notas. Si el promedio es menor que 3, que aparezca un mensaje que diga “Señor estudiante” (nombre del estudiante) usted perdió la materia de (nombre de la materia). Sino, usted Aprobó “ “ (nombre de la materia). Ing. Espec. J. Javier Vaquiro Página 62