1

ESCUELAS PROFESIONALES DE INGENIERIAS:
INDUSTRIAL, CIVIL, COMPUTACIÓN Y
SISTEMAS

Trabajo de
Investigación
Maestro:

Ing. Anaximandro Fernández Guerrero.

Facultad:

Ingeniería y Arquitectura.

Aula:

50T.

Integrantes:
Acosta Ordoñez, Luigi.
Chunga Rojas, Diego.
Núñez Campos, Manuel.
Pérez Herrera, Daniel.
Sanabria Manay, Gerson.
Ramos Yarrin, Jordan.

Chiclayo, Noviembre 2013

Página 2

ESCUELAS PROFESIONALES DE INGENIERIAS:
INDUSTRIAL, CIVIL, COMPUTACIÓN Y
SISTEMAS

Introducción
Java es el lenguaje de programación que más personas en el mundo
lo utilizan, tanto en el ambiente académico, como para el desarrollo
de aplicaciones comerciales.
Java es un Lenguaje Orientado a Objetos, desde el primer
programa, por más simple que sea, está usted implementado una
clase, entre sus principales características podemos mencionar:
 Multiplataforma, porque Java corre sobre cualquier sistema
operativo.
 Multiproceso, porque un programa Java corre sobre cualquier
sistema operativo.
 Orientado a Objetos.
 Seguro, porque elimina aspectos como los punteros, que
pueden utilizarse para acceder a secciones de la memoria no
permitida.
A esto tenemos que agregarle una gran cantidad de librerías y
recursos para desarrollar todo tipo de aplicaciones, desde las más
sencillas, como las de consola, aplicaciones de entorno gráfico, y las
más avanzadas, como componentes, aplicaciones Web, aplicaciones
móviles, etc.
La madurez que ha tenido Java a lo largo del tiempo, lo hacen el
lenguaje preferido por empresas que realizan desarrollo serio, y en
nuestro medio son cada vez más las empresas que lo utilizan.
Página 3

ESCUELAS PROFESIONALES DE INGENIERIAS:
INDUSTRIAL, CIVIL, COMPUTACIÓN Y
SISTEMAS

Es este proyecto de investigación que veremos a continuación está
desarrollado en el aspecto solo del lenguaje en Java, en el siguiente
estará desarrollándose temas como las Librerías más usadas,
Funciones utilizadas así como también los distintos tipos de Arrays.

Página 4

 Concepto: El paquete java.net. uno de entrada y otro de salida. CIVIL.  Función: Y su función en un ejemplo muy claro es una operación de lectura y escritura contra un fichero. Concepto: Como bien indica su nombre “net” que deriva de la palabra inglesa «network». Las clases de este paquete incluyen una clase que implementa una conexión URL. necesitaríamos dos streams. Se pueden utilizar estas clases para implementar aplicaciones cliente-servidor y otras aplicaciones de comunicaciones.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.io proporciona un marco de trabajo para realizar operaciones de entrada y salida entre nuestro programa java y cualquier dispositivo externo cuenta con diversos tipos que viene a ser desde los más simples hasta los más complejos combinando diferentes funciones además que se puede tener cierta independencia del programa con el dispositivo. Java. cuyo significado es red. Página 5 . se basa en los principales componentes del internet contiene definiciones de clases e interfaces que implementan varias capacidades de red. Java. COMPUTACIÓN Y SISTEMAS Librerías 1.io. 2. esta aplicación. Conectividad y Seguridad del Cliente tiene varios ejemplos de utilización de estas clases.

applets. El Swing es un concepto actual del AWT que consiste en la aplicación e ingreso de datos por diferentes tipos. Concepto: Los applets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM).  Función: Su función o uso viene a ser el ingreso de datos de diferente índole desde la web. numéricos. las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit). Concepto: Para comenzar a hablar de la aplicación swing tenemos que saber un poco de su historia antes de la existencia de Swing.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS incluyendo un ejemplo cliente-servidor que utiliza datagramas.  Función: 4. por ejemplo. como datos personales o información de una gran empresa. Javax. para toda componente AWT existe una componente Swing que la reemplaza. pero todos usando una misma codificación. Java.swing. alfabéticos. 3. la clase Button de AWT es reemplazada por la clase JButton de Swing. Usualmente. o en el AppletViewer de Sun. entre sus características podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan Página 6 . de quien Swing hereda todo el manejo de eventos. CIVIL.

Date y es la representación de la fecha cuando trabajamos con JDBC es decir. CIVIL. Cuando un navegador carga una página web que contiene un applet. Concepto: Esta clase hereda de java. Java.sql. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador.util. Página 7 . aunque la clase java. este se descarga en el navegador web y comienza a ejecutarse. son los campos almacenados en una base de datos cuyo tipo es una fecha que puede o no incluir la hora.Date siempre lo hace.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común. Al igual que su clase padre. con la excepción que al mostrarla en la salida estándar con el formato por defecto solo muestra el día. lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web. tiene una precisión de milisegundos.sql.  Función: La principal función de applets es el bloqueo de páginas web que puedan filtrarse en el programa y de esta manera robar información o dañarla por completo arruinando el sistema. COMPUTACIÓN Y SISTEMAS acceso a partes sensibles a menos que uno mismo le dé los permisos necesarios en el sistema. mes y año. 5. Hay que anotar también que para campos que almacenen solamente horas existen otras clases para manejarlos.

tanto que este paquete se incluye automáticamente en nuestros programas. días. Java. meses y años. Concepto: El paquete java. 6. y junto al paquete java. CIVIL. es un conjunto bastante grande tanto de interfaces como de clases de diversos tipos. La versión del AWT que Sun proporciona con el JDK se desarrolló en sólo Página 8 . hay que decir que éste es uno de los paquetes más importantes de la API Java.util. que en conjunto podrían llamarse “utilidades”. Concepto: AWT es el acrónimo del X Window Toolkit para Java. COMPUTACIÓN Y SISTEMAS  Función: El sql como principal función es la encargada de agregar formatos de horas.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. en general ingresar la hora y la fecha en la que se está trabajando previamente seleccionada del ordenador. Abarca muchísimas clases e interfaces fundamentales para la programación Java. Java.awt.util. 8. Java. Este paquete. 7. se trata de una biblioteca de clases Java para el desarrollo de Interfaces de Usuario Gráficas.lang.lang es uno de los más utilizados en cualquier tipo de desarrollo informático basado en Java. Concepto: En primer lugar. es uno de los principales paquetes que usaremos cuando estemos programando con el lenguaje Java.

veremos que la simple acción de colocar un dibujo sobre un botón se vuelve una tarea harto complicada. El entorno que ofrece es demasiado simple. 9. Concepto: Es la opción creada para que los usuarios puedan emplear el teclado alfabético claro esta para ingresar datos como nombres. COMPUTACIÓN Y SISTEMAS dos meses y es la parte más débil de todo lo que representa Java como lenguaje.  Función: Su función cosiste en el ingreso de datos por teclado alfabético como ya está especificado anteriormente. llenas de callbacks y sin soporte alguno del entorno para la construcción gráfica. productos y demás palabras que son necesarias para entender los paquetes. sino que se ha ahondado en estructuras orientadas a eventos.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Página 9 . CIVIL. Quizá la presión de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de AWT. Java. conceptos.text. no se han tenido en cuenta las ideas de entornos gráficos novedosos.

como por ejemplo. Funciones Numéricas:  Matemáticas: Math es un objeto integrado que posee propiedades y métodos para constantes y funciones matemático. Para su correcto uso al igualarlos a una variable o usar una variable para operarla se debe declarar tipo doublé.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.round(variable/numero). Potencia: • Math. Potencia de ex: • Math.PI).PI = 3.abs(variable/numero).718281828459045 • Math. el objeto PI de Math (Math. Página 10 .141592653589793 Se realizan todas las operaciones matemáticas que no sean las de adición.exp(variable/numero).Math es una clase utilitaria cuyos métodos nos permiten realizar algunos cálculos matemáticos comunes y complejos. variable/numero). división y residuo. resta.pow(variable/numero. Constantes Matemáticas Dos constantes más utilizadas con 15 decimales: • Math. Entre ellas están: Valor absoluto: • Math. La clase java. multiplicación. Número aleatorio del 0-1: • Math. COMPUTACIÓN Y SISTEMAS Funciones 1.E = 2. CIVIL. Redondear un número • Math.lang.random().

b y el número de datos. Logaritmo en base 10 Página 11 .log(variable/numero). Potencia de ex-1: • Math. realizar gráficas de oferta y demanda. desviaciónMedia y desviaciónCuadrática.expm1(variable/numero).ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS Raíz cuadrada: • Math.  Algorítmicas: Son cualquier operación matemática usando logaritmos.  Estadísticas: Son aquellas funciones que permiten la construcción de los miembro dato con las características de ValorMedio.sqrt(variable/numero). El tipo de variable que utilizan es doublé: Logaritmo natural • Math. entre ellos están el logaritmo en base 10 y logaritmo neperiano. La función miembro ha de ser declarada pública public. Los miembros dato de deben declarar privados private para que no se puedan modificar desde los objetos de clase. CIVIL. Este grupo es una clase estadística por existir dos miembros dato: el array de datos a. se utilizan para hallar intereses simples y compuestos.  Financieras: Es cualquier uso de las funciones matemáticas aplicada a la economía.

• Math. -> 50 mysql> SELECT ASCII('dx').ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS 2.log10(variable/numero). Retorna NULL si N es NULL. Funciones de Cadena: Las funciones de cadenas de caracteres retornan NULL si la longitud del resultado es mayor que el valor de la variable de sistema max_allowed_packet .2). -> 50 mysql> SELECT ASCII(2). Página 12 . Retorna 0 si str es la cadena vacía. Esto es equivalente a CONV(N. ASCII() funciona para caracteres con valores numéricos de 0 a 255. Logaritmo neperiano+1.log1p(variable/numero). mysql> SELECT ASCII('2'). -> 100  BIN(N) Retorna una representación de cadena de caracteres del valor binario de N.10. CIVIL.  ASCII(str): Retorna el valor numérico del carácter más a la izquierda de la cadena de caracteres str. donde N es un número muy largo (BIGINT) . lo que hace esta función es adicionar 1 a la variable y luego hallar el logaritmo natural: • Math. Retorna NULL si str es NULL.

mientras CHAR_LENGTH() returna 5.121. -> 'MySQL' mysql> SELECT CHAR(77. -> '1100'  BIT_LENGTH(str) Retorna la longitud de la cadena de caracteres str en bits.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. mysql> SELECT CHAR(77. LENGTH() retorna 10. Esto significa que para una cadena de caracteres que contiene cinco caracteres de dos bytes. medida en caracteres. -> 32  CHAR(N. Un carácter de múltiples bytes cuenta como un sólo carácter.. COMPUTACIÓN Y SISTEMAS mysql> SELECT BIN(12).81.3. -> 'MMM'  CHAR_LENGTH(str) Retorna la longitud de la cadena de caracteres str.3').) CHAR() interpreta los argumentos como enteros y retorna la cadena de caracteres que consiste en los caracteres dados por los códigos de tales enteros.'76'). CIVIL.83. Página 13 . mysql> SELECT BIT_LENGTH('text').'77..77.. Los valores NULL no se tienen en cuenta.

-> 50 mysql> SELECT ASCII('dx'). mysql> SELECT BIT_LENGTH('text').  BIN(N) Retorna una representación de cadena de caracteres del valor binario de N. Consulte Sección 7. Página 14 . CIVIL. -> 32  CHAR(N. -> 50 mysql> SELECT ASCII(2).2)..2. Retorna 0 si str es la cadena vacía.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Retorna NULL si N es NULL.. Los valores NULL no se tienen en cuenta. la primera posición es la 1. -> 100 Consulte la función ORD() .) CHAR() interpreta los argumentos como enteros y retorna la cadena de caracteres que consiste en los caracteres dados por los códigos de tales enteros. -> '1100'  BIT_LENGTH(str) Retorna la longitud de la cadena de caracteres str en bits. mysql> SELECT BIN(12)..  ASCII(str) Retorna el valor numérico del carácter más a la izquierda de la cadena de caracteres str. Para funciones que operan en posiciones de cadenas de caracteres. ASCII() funciona para caracteres con valores numéricos de 0 a 255.10. COMPUTACIÓN Y SISTEMAS Funciones de Caracteres: Las funciones de cadenas de caracteres retornan NULL si la longitud del resultado es mayor que el valor de la variable de sistema max_allowed_packet . Esto es equivalente a CONV(N. “Afinar parámetros del servidor”. mysql> SELECT ASCII('2'). donde N es un número muy largo (BIGINT) .5. Retorna NULL si str es NULL.

Un carácter de múltiples bytes cuenta como un sólo carácter.sql.Date representa un instante de tiempo específico.81. entre otros.Date y java.Date: Según la documentación "La clase java. como años. -> 'MMM' CHAR_LENGTH(str) Retorna la longitud de la cadena de caracteres str.util. Esto significa que para una cadena de caracteres que contiene cinco caracteres de dos bytes.3. Funciones de Fechas:  Las clases java. CHARACTER_LENGTH(str) CHARACTER_LENGTH() es sinónimo de CHAR_LENGTH(). LENGTH() retorna 10. Son dos de las clases más usadas cuando una aplicación implica el trabajo con fechas: java.Date tenía dos funciones adicionales a la que conocemos ahora.1 la clase java. esto más que ser una especie de "autoadulación" para la clase.util. COMPUTACIÓN Y SISTEMAS   mysql> SELECT CHAR(77. medida en caracteres. Antes del jdk1. con precisión de milisegundos".util. segundos. mientras CHAR_LENGTH() returna 5.3'). 3.Date).util.'76'). quiere decir que no solo se trata de una simple cadena al estilo yyyy/MM/dd.Date. 4. sino que almacena hasta milisegundos y que es posible trabajar con ellos. La otra era el formateo (la forma como se muestra) y parseo (convertir un String a java.'77. Pero debido a las dificultades que presentaban estas funcionalidades a la hora de Página 15 . una de ellas era la interpretación de datos que tenían que ver con fechas. -> 'MySQL' mysql> SELECT CHAR(77.util. días.77.83.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.121. CIVIL.

donde la medianoche es 0 y el medio día 12.Date: Esta clase hereda de java. mes y día de esta clase ya están obsoletos y lo único que hacen es llamar a la clase java.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.util. así que en este momento esta clase.sql. es decir. Por ejemplo el año 2004 se representa como 104 (2004 . donde enero es 0 y diciembre es 11. * Los segundos van entre 0 y 61. Entre 1 . son los campos almacenados en una base de datos cuyo tipo es una fecha que puede o no incluir la hora. 61 solo ocurre cuando se agrega el segundo adicional para ajustar la diferencia entre el reloj atómico y el tiempo de rotación de la tierra.util.59 respectivamente. con precisión de milisegundos".Calendar se encargó de esto. COMPUTACIÓN Y SISTEMAS internacionalizar los programas. sólo hace lo que se mencionó al principio: "representa un instante de tiempo específico. Por ahora veamos las convenciones que sigue esta clase: * El año "y" está representado por un entero igual a ("y" 1900).Calendar para que esta se encargue de hacerlo (una delegación). CIVIL. No sobra mencionar que los métodos para obtener el año.1900).31 y 0 . más adelante veremos como ampliar esta funcionalidad. * Los meses son representados por números entre 0 y 11. java.Date y es la representación de la fecha cuando trabajamos con JDBC (Java DabaBase Connectivity). esos métodos ya está obsoletos y la clase java. * Las horas van entre 0 y 23. aunque la clase Página 16 . * Los días y minutos se representan de forma corriente.util.

con la excepción que al mostrarla en la salida estándar con el formato por defecto solo muestra el día. CIVIL. pues esos milisegundos no son controlables cuando creamos la instancia de una fecha. Hay que anotar también que para campos que almacenen solamente horas existen otras clases para manejarlos. sino a partir de las 19:00 de diciembre 31 de 1969.Date siempre lo hace. Esto se traduce en que muy dificilmente podemos basarnos en valores como 0 o 60000 para realizar validaciones. su valor el milisegundos será negativo. Esto es importante por que si transportamos una fecha relativa de una zona a otra. COMPUTACIÓN Y SISTEMAS java. los Página 17 . Por ejemplo en Colombia los milisegundos no se empiezan a contar desde enero 1 de 1970. tiene una precisión de milisegundos. sólo se encargan de almacenar la cantidad de milisegundos que han pasado desde las 12 de la noche del primero de enero de 1970 en el meridiano de Greenwich.9 segundos cada año para ajustar la diferencia entre el reloj atómico y la velocidad de rotación de la tierra. Al igual que su clase padre. Aquí vienen dos puntos importantes: a) Si la fecha que almacena cualquiera de las clases es menor a las 00:00:00 enero 1 de 1970 GMT.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. En resumen ambas clases. además como la clase intenta representar el "Tiempo Universal Coordinado" (UTC) suma 0.sql. b) La fecha es susceptible a la zona horaria. podemos llegar a tener problemas al confiar en los milisegundos que se tienen. mes y año. peor aún.

Se puede pasar de java.sql.Date hereda de java. java.util.Date con parámetros iniciales java.Date necesita un parámetro en el constructor: el tiempo en milisegundos. utilDate = sqlDate.Date(0).util.Date(1000).Date otraFecha = new java. así que las siguientes instrucciones son válidas: java. //Fecha actual del sistema java.util. si la imprimes tendrá el formato de java.util.util.sql. pero la clase java.util.sql.Date.util. //El primer segundo a partir del inicio Prueba a imprimir cada uno de estos valores y fíjate en la diferencia de formatos entre java.Date a java.Date y java. //Milisegundo cero //también se puede crear una instancia de java.Date. Ambas clases se pueden instanciar directamente mediante new().Date.sql. CIVIL.sql.Date().ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.Date utilDate = null.Date sqlDate = new java. COMPUTACIÓN Y SISTEMAS milisegundos no son ni siquiera iguales para la misma fecha en la misma zona horaria.Date inicioLocal = new java.util.Date fechaActual = new java.sql. recordemos que java. /* aunque es java.sql.Date de dos fomas.sql. una de ellas es con una asignación simple: java.util.Date */ Página 18 .Date(0).util.sql.

util.sql.sql.Date se deben tomar los milisegundos de la primera y pasarlos al constructor de la segunda: java.println("IGUALES").util.Date utilDate = new java. }else{ Página 19 .println(utilDate).compareTo(sqlDate) == 0){ System.getTime()).Date sqlDate = new java.util. utilDate = new java.Date().ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.Date: java.util.sql.sql.Date(utilDate.util.println(sqlDate). Para pasar de java.Date(utilDate. //esta vez se mostrará con el formato de java.out.Date y pasarlos al constructor de java. Para comparar fechas usamos el método compareTo() que internamente compara los milisegundos entre ellas usando directamente los métodos getTime() de ambas clases.Date System. java.Date utilDate = null.util.sql.Date(). COMPUTACIÓN Y SISTEMAS System. java.Date(sqlDate.Date sqlDate = new java.Date sqlDate = new java.sql.getTime()).util. CIVIL.sql.println(utilDate).Date System.getTime()). java.util.out.Date a java.util.Date utilDate = new java. java.sql. if (utilDate. //Con formato de java.out.Date(0). También se pueden tomar los milisegundos de java.out.sql.

util. Como ambas clases heredan del java.Date sqlDate = new java. tanto Time como Timestamp se pueden instanciar directamente y su constructor tiene como parámetro el número de milisegundos.out. Esto no quiere decir que no se puedan usar con otros fines. if (utilDate.out.sql. Ambas clases pertenecen al API JDBC y son la encargadas de representar los campos de estos tipos en una base de datos.println("DIFERENTES"). java. Al igual que java.getTime() == sqlDate.out. CIVIL.sql. }  Las clases Time y Timestamp.Date.Date para representar los datos que consisten de horas. de acuerdo a las especificaciones del lenguaje SQL para campos de tipo TIMESTAMP. como es de Página 20 .getTime()){ System.getTime()). COMPUTACIÓN Y SISTEMAS System.Date. } O lo que es equivalente: java.util.sql.Date.sql.println("IGUALES").util.Date(utilDate. segundos y milisegundos. mientras Timestamp representa estos mísmos datos más un atributo con nanosegundos.Date.println("DIFERENTES"). es decir.Date().util. }else{ System.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. es muy fácil pasar de un tipo de dato a otro. minutos.util. su núcleo son los milisegundos.Date utilDate = new java. son hijas (heredan) de java. similar a la clase java. La clase Time es un envoltorio de la clase java.

//fecha actual long lnMilisegundos = utilDate. System. La clase Time sólamente muestra la hora. java.util. Para convertir entre tipos de datos diferentes debemos usar los milisegundos de una clase y asignarlos a las instancias de las otras. Con este código: java.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. minutos y segundo. CIVIL.util. a una instancia de esta podemos asignar cualquiera de las otras. java. System.Date().out.Date(lnMilisegundos).Timestamp sqlTimestamp = new java.Date: "+utilDate).out.sql.println("sql. es decir. java. al imprimir se verá el mismo formato de la clase Time.Date es superclase de todas.util.Date sqlDate = new java.Date. manteniendo los métodos de la clase asignada.println("sql.sql.Timestamp: "+sqlTimestamp). cuando se muestra alguna de las clases mediante su método toString() se ven los datos que intentan representar.getTime().out.sql.out. si asignamos un Time a una java.println("util. mientras timestamp agrega fracciones de segundo a la cadena.sql.sql. System. COMPUTACIÓN Y SISTEMAS imaginarse.Time: "+sqlTime). Se obtiene la siguiente salida: Página 21 . System.Date utilDate = new java.Time sqlTime = new java.println("sql.Timestamp(lnMilisegundos).Time(lnMilisegundos). y como la clase java.Date: "+sqlDate).util.sql.

Date apuntando a sql. System. al mostrar a través de la consola se invocará el método toString() de la clase time: utilDate = sqlTime.Time: [19:29:47] util.Date: 2004-05-20 sql.Timestamp: [2004-05-20 19:29:47.Date Página 22 .Date se le asigne uno del tipo Time.util.Timestamp: 2004-05-20 19:01:46.Time: 19:01:46 sql.Time: ["+sqlTime+"]"). System.out.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.out.println("util.Date apuntando a sql. CIVIL.Date: Thu May 20 19:01:46 GMT-05:00 2004 sql. utilDate = sqlTimestamp.println("util.Timestamp: ["+sqlTimestamp+"]").593 Note que aún cuando todos los objetos tienen los mismos milisegundos el formato con el que se muestran dependen de la clase que realmente los contiene. Es decir.Date apuntando a sql. no importa que a un objeto del tipo java. Note que lo verdaderamente importante ocurre cuando creamos la instancia de java. Arroja: util. COMPUTACIÓN Y SISTEMAS util. creamos nuevas instancias con los milisegundos los formatos con que se muestran son los mismos.Date apuntando a sql.468] Pero si en vez de solo apuntar.util.

CIVIL.println("util. minutos y segundos.Date fecha2){ Página 23 .out.Time: ["+utilDate+"]"). pero cabe bien para mostrar de forma práctica todos los conceptos anteriormente estudiados. pues aunque este último únicamente muestra horas.println("util.Date con milisegundos de sql.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. siempre ha conservado todos los datos de la fecha con que se creó.util.getTime()).Date(sqlTimestamp.Date(sqlTime.Date con milisegundos de sql.util. utilDate = new java. java.Date con milisegundos de sql. COMPUTACIÓN Y SISTEMAS usando los milisegundos del objeto sqlTime.HashMap.Date con milisegundos de sql.Date fecha1.Time: [Thu May 20 19:54:42 GMT-05:00 2004] util. utilDate = new java. System.out.getTime()).util.util. minutos y segundos.Timestamp: ["+utilDate+"]").util.util. import java. Fíjese en el formato de salida: util. System.Timestamp: [Thu May 20 19:54:42 GMT-05:00 2004] Para finalizar esta primera entrega veamos el código para mostrar la diferencia entre dos fechas en horas. import java. Esta no es la mejor forma para hacerlo. public class Prueba { public static Map getDiferencia(java.Map.

CIVIL.getTime() fechaMenor.util. fechaMenor = fecha1. //restamos las horas para continuar con minutos segundos -= horas*3600. java. para no tener sorpresas al momento * de realizar la resta. */ if (fecha1.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. fechaMenor = fecha2. //obtenemos los segundos long segundos = diferenciaMils / 1000.getTime(). }else{ fechaMayor = fecha2. //obtenemos las horas long horas = segundos / 3600.util.Date fechaMenor = null. Map resultadoMap = new HashMap(). /* Verificamos cual es la mayor de las dos fechas. COMPUTACIÓN Y SISTEMAS java.compareTo(fecha2) > 0){ fechaMayor = fecha1.Date fechaMayor = null. } //los milisegundos long diferenciaMils = fechaMayor. Página 24 .

COMPUTACIÓN Y SISTEMAS //igual que el paso anterior long minutos = segundos /60. resultadoMap. //ponemos los resultados en un mapa :-) resultadoMap. return resultadoMap. Funciones Varias: Las funciones son similares a los métodos la diferencia es que estas retornan un resultado lo cual puede ser almacenado dentro de una variable o impreso directamente en pantalla.put("horas".put("minutos". segundos -= minutos*60.Long.put("segundos".toString(minutos)).Long.Long.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. } 5. FUNCIONES DEFINIDAS POR EL USUARIO Página 25 . mientras que los métodos no retornan ningún tipo de dato pero a si mismo podrían meterse variables al mismo método lo cual podría usarse como un tipo de retorno aunque no sería lo mismo.toString(segundos)). resultadoMap. CIVIL.toString(horas)).

también es posible que el programador defina y utilice sus propias funciones. Si se recuerda. Se utiliza antes de presentar la sintaxis formal de modo que nos podamos familiarizar con la terminología: double strut(double numero) { double cubo. uno de los objetivos del uso de las funciones es la descomposición de problemas complejos y el trabajo en grupo. } Página 26 . Definición de Funciones Las funciones definidas por el programador se escriben “fuera” de la función main. COMPUTACIÓN Y SISTEMAS FUNCIONES DEFINIDAS POR EL USUARIO Las funciones que se han utilizado hasta ahora son funciones que el lenguaje de programación ha predefinido en sus bibliotecas o librerías. return cubo.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. CIVIL. cubo = numero * numero*cubo. Sin embargo. El siguiente es un ejemplo de una definición de una función.

b) El nombre de la función strut que puede se cualquier identificador válido en java. la lista de argumentos serían equivalentes a los datos que en un programa se introduciría a través de la instrucción cin. c) El tipo de valor que regresa la función como resultado.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. double Página 27 . Es importante que observe que en la lista de argumentos se indican tanto la lista de los argumentos necesarios como el tipo de cada uno de ellos. COMPUTACIÓN Y SISTEMAS Esta definición de la función strut consiste de: 1) El encabezado de la función double strut(double numero) Observe que el encabezado no termina con punto y coma. a) Una lista de los argumentos de la función entre paréntesis: (double numero) Si se considera a la función como un programa pequeño. Las partes del encabezado de una función son los siguientes. CIVIL.

} El cuerpo de la función se encierra entre llaves y en él se escriben las sentencias que se necesitan ejecutar para lograr el objetivo de la función. El valor de dicha variable (o el valor de dicha constante) constituye el valor de regreso de la función. COMPUTACIÓN Y SISTEMAS 2) El cuerpo de la función { double cubo. return cubo. en este ejemplo. al igual que el tipo de valor de regreso especificado en el encabezado. Página 28 . Observe que. La sentencia return va seguida del nombre de una variable o de un valor constante. El tipo del valor que regresa la función debe ser consistente con el tipo del valor de regreso especificado en el encabezado de la función. cuadrado = numero * numero*numero. return cubo. CIVIL. Contiene al menos una sentencia return. el valor de regreso de la función (tipo de la variable llamada cubo) es double.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL.

package app. CIVIL.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS Llamado de Funciones El llamado de las funciones definidas por el usuario se realiza de la misma forma que el llamado a funciones predefinidas.0.n.0). las transforme en mayúsculas.Programa que escribiendo cualquier palabra en minúsculas. los siguientes serían llamados válidos a la función: double m. n = strut(12. Por ejemplo. Asimismo.p. m=3. public class FuncionesUsuario { Página 29 . Note que no es necesario que los argumentos con que la función es llamada se nombren igual que los identificadores usados en el encabezado de la función. a la variable y se le asigna el valor de regreso de la función strut(12. Esto es correcto porque el valor de regreso de la función es de tipo double y la variable y también es de tipo double. Observe que los argumentos que se pasan a la función (12. si un programador ha definido la función strut de este ejemplo.0). y las mayúsculas en minúsculas. Ejemplos: 1.. p = strut(m+n).0 en el primer caso y m+n en el segundo caso) son del tipo double y coinciden con el tipo definido para el argumento de la función.

Programa que nos permita ingresar un número y ese sea el número que permita la suma de esa cantidad en la serie de fibonaci.charAt(i)).length().toUpperCase(cadena. i++) { if(Character. COMPUTACIÓN Y SISTEMAS public String convertirMinusculaMayuscula(String cadena){ String res = "". package app.1) + fibonacci(n . else return fibonacci(n ..2).charAt(i)))//si es mayuscula res += Character.toLowerCase(cadena. public class FuncionesUsuario { public String convertirMinusculaMayuscula(String cadena){ public long fibonacci(long n){ if(n <= 1) return n. i < cadena.isUpperCase(cadena. CIVIL. } 2 .//lo convierte a mayuscula } return res.charAt(i))) res += Character.//lo convierte a minuscula else if(Character. for (int i = 0.isLowerCase(cadena.charAt(i)).ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. } } Arrays Página 30 .

además de ser consecutivas y tienen un único nombre de variable para todos los elementos. todos sus elementos son cadenas.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Los arreglos puedes ser de una dimensión. y el último es el tamaño del arreglo disminuido en uno. a) Unidimensional. El primer elemento tiene índice cero (0). agrupadas bajo un mismo nombre. El primer elemento se ocupara en la posición 0. es decir que en un array de X elementos. el último elemento en la lista ocupará la posición X-1. a las cuales accedemos mediante un índice. podemos construís de más dimensiones pero no es usual. de dos dimensiones. en este caso los nombres de mis amigos. Amigos 0 Manuel 1 Mateo 2 Alonso 3 Kelly 4 Karen 5 Kristel Figura … Ejemplo de arreglo En la figura… tenemos un ejemplo de lo que sería un arreglo tipo String. el primer elemento tendrá índice 0 y el último tendrá índice 5. se les denomina matrices. COMPUTACIÓN Y SISTEMAS Un arreglo (array en inglés) es una estructura de datos conformada por un conjunto de variables del mismo tipo. Si tenemos un arreglo de tamaño 6. CIVIL. El formato de un array unidimensional es: Página 31 . se les denomina vectores.Es una colección de datos que son del mismo tipo.

X : Es el número de elementos que contendrá el arreglo Ejemplo. Nombre de array: Indica el nombre en común que tendrán todos los datos. ejemplo int.g.swing. String Alumno [ ]. float.JOptionPane. Tipo [] Nombredearray = new Tipo [X] Ejemplo. • Creación: Para la cración del array se hace de la siguiente forma. double [] nota= new double [10].etc. int []Notas= new int[10] String[]Alumno= new String[30] Ejemplo N°1: package Trabajo. public class intro { public static void main(String arg[ ]) { int i.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Ejemplo: double [ ] Notas. CIVIL. import javax. Tipo: Se indica el tipo de datos que contendrá. Nombredearray= new Tipo[X] Tipo: Es el tipo de dato. Tipo NombredeArray [ ]. COMPUTACIÓN Y SISTEMAS • Declaración: Un array puede declararse de dos formas Tipo [ ] NombredeArray. Notas=new int [5] Alumno= new String [30] Dato: Las instrucciones de Creación y declaración pueden ser una misma instrucción. doublé. Página 32 .

parseDouble(JOptionPane. for ( i = 0. pro[8]= n*9.showInputDialog("Ingrese el número")). pro[2]= n*3. nota[4]= 19. public class Tr3 { public static void main(String arg[ ]) { int i.5. pro[3]= n*4. nota[9]= 07. nota[7]= 05. pro[0]= n. import javax. pro[1]= n*2. double [] pro= new double [12]. nota[8]= 10.JOptionPane. pro[7]= n*8. pro[4]= n*5. i++) { g=i+1. Página 33 . nota[6]= 14. pro[10]= n*11. nota[2]= 17. nota[5]= 20. pro[6]= n*7. COMPUTACIÓN Y SISTEMAS nota[0]= 12."nota"+g+"\n" +nota [i]). nota[1]= 14. pro[9]= n*10.showMessageDialog(null. double n. CIVIL. nota[3]= 04. JOptionPane.g. i < 10. n=Double.swing.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. pro[5]= n*6. } }} Ejemplo N°2 package Trabajo.

i++) { g=i+1.  Declaración de Arreglos Bidimensionales: Tipo variable_arreglo[]. 0 1 2 3 45 67 80 45 67 89 23 67 12 87 72 54 Fig… Representación de un Arreglo Bidimensional. } }} b) 0 1 2 Bidimensional.Un arreglo Bidimensional se representa por un conjunto de filas y columnas. Tipo [][] variable_arreglo. CIVIL. para acceder a un elemento en particular se necesita conocer la fila y columna en donde se encuentra. Ejemplo: Página 34 . tal como se muestra en la figura…. Nombre de array: Indica el nombre en común que tendrán todos los datos. JOptionPane. Tipo: Se indica el tipo de datos que contendrá. i < 12. ejemplo int.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. doublé."El número"+n+"multiplicado por"+g+"\nDa como producto" +pro[i] ). COMPUTACIÓN Y SISTEMAS pro[11]=n*12. etc. for ( i = 0.showMessageDialog(null. float.

Mat 4 [3] =new int [5].j<mat2[i].j++) mat2[i][j]=(int)(Math. Mat3 [0] =new int [5].i++) for(int j=0. int mat2[][]=new int[4][5].j++) mat1[i][j]=(int)(Math.i<mat2.length.length. Mat3 [1] =new int [5]. Ejemplo N°1: Este ejemplo trata de la suma de matrices.random()*20+10). que se encarga de imprimir una matriz que se pasa como parámetro int mat1[][]=new int[4][5].j<mat1[i]. int suma[][]=new int[4][5].ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. String mat2 [ ].random()*20+10).length. La matriz se genera de manera aleatoria.i<mat2.length.i++) Página 35 .i<mat1. Es necesario haber declarado la variable variable_arreglo previamente. Para imprimir las matrices se ha creado el método sayMatriz. for (int i=0. for (int i=0. CIVIL. Mat 3 [2] =new int [5].i++) for(int j=0.length. Int mat3 [] [] =new int [4] [].  Creación de Arreglos: Para la creación del arreglo debemos utilizar el operador new. Variable_arreglo=new tipo [filas] [columnas]. Veamos algunos ejemplos: Mat1=new int [10] [5]. for (int i=0. para lo cual es necesario que ambas matrices tengan las mismas dimensiones. Mat2=new String [5] [10]. COMPUTACIÓN Y SISTEMAS Int mat1 [ ].

for(int i=0. lo más recomendable es hacerlo en un bucle.length.out.println(titulo + "\n").length.out.length.length. para encontrar prod [3] [4].ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. } private static void sayMatriz(String titulo. System.length. la operación sería asi: Prod[3][4]=mat1[3][1]*mat2[1][4]+mat1[3][2]*mat2[2][4].random()*10). sayMatriz("\nMatriz 1". Ejemplo N°2: Este ejemplo trata del producto de dos matrices. for(int i=0. for(int i=0. mat1).print(mat[i][j] + "\t").length.length.j++) mat1[i][j]=(int)(Math.j<mat2[i].i<mat.i<mat1.j<mat[i]. tal como se muestra en el siguiente programa.j<mat1[i].i++) { for(int j=0. para poder multiplicar dos matrices se debe cumplir: Prodj=mat1ik*mat2kj Por lo tanto. int mat[][]){ System.i++) Página 36 .i<prod. sayMatriz("\nMatriz 2". por ejemplo un for.i++) for(int j=0.i<mat2.length.j++) mat2[i][j]=(int)(Math. mat2). } . Aplicando este mismo razonamiento se calcula todos los elementos del matriz producto. int[][] mat1= new int[4][2].j++) suma[i][j]=mat1[i][j]+mat2[i][j]. for(int i=0. por lo tanto deben ser 2 filas de mat2.out. int[][] mat2= new int[2][3]. CIVIL. int[][] prod= new int[4][3]. se opera con la fila 3 de la mat1 y con la columna 4 de mat2 suponiendo que son 2 columnas de mat1.i++) for(int j=0. sayMatriz("\nMatriz Suma".random()*10). COMPUTACIÓN Y SISTEMAS for(int j=0. suma).j++) System.println("").j<mat2[i].

Un arreglo Tridimensional se representa por un conjunto de filas. sayMatriz("\nMatriz Producto".i++) { for(int j=0.j<prod[i].j++) System. for(int k=0.i<mat. prod[i][j]=suma.out.out. sayMatriz("\nMatriz 2".length. tal como se muestra en la figura….ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. int mat[][]){ System.k<2. columnas y profundidad. para acceder a un elemento en particular se necesita conocer la fila.print(mat[i][j] + "\t"). System. } } } c) Tridimensional.length. for(int i=0.println(titulo + "\n"). mat2).length. columna y la profundidad en donde se encuentra. prod). } sayMatriz("\nMatriz 1". mat1). System.k++) suma+=mat1[i][k]*mat2[k][j].j<mat[i]. CIVIL.println("").j++) { int suma=0. Página 37 . COMPUTACIÓN Y SISTEMAS for(int j=0.println("\n\t-----------Fin------"). } private static void sayMatriz(String titulo.out.out.

ejemplo int. float. Nombre de array: Indica el nombre en común que tendrán todos los datos.  Creación de Arreglos: Para la creación del arreglo debemos utilizar el operador new. CIVIL. Variable_arreglo=new tipo [filas] [columnas] [profundidad]. etc.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS  Declaración de Arreglos Bidimensionales: Tipo variable_arreglo []. doublé. Página 38 . Es necesario haber declarado la variable variable_arreglo previamente. Tipo: Se indica el tipo de datos que contendrá. Tipo [] [] [] variable_arreglo.

fecha[0][1]= 02.Un array multidimensional está basado de la siguiente forma: Tipo [] [] Nombre=new Tipo [x] [y] Tipo: Es el tipo de variable Nombre: Nombre en común que tendrán todos los datos del array X: Número de filas Y: Número de columnas Ejemplo N°1: Imprimir las cuatro fechas en de revisión técnica del auto. fecha[1][2]= 2001. fecha[2][1]= 04. fecha[3][2]= 2006. fecha[3][1]= 12. fecha[0][0]= 12. fecha[4][0]= 03.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. fecha[2][0]= 15. CIVIL. int [][] fecha= new int [5][3].c. fecha[2][2]= 2004. fecha[3][0]= 17. fecha[4][1]= 05. COMPUTACIÓN Y SISTEMAS Ejemplo N°1: d) Multidimensional. Página 39 . fecha[0][2]= 1999. El orden es de la siguiente forma: Día/ Mes/ Año int i. fecha[1][0]= 23. fecha[1][1]= 10.

out. i++) { for (c=0. } }} Ejemplo N°2: Imprimir el número de partidos ganados.length.length.c.println(). CIVIL.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. for ( i = 0.c++){ System. i < par.{12.{15. } System.out.06.10}.14. } System. perdidos y empatados de cinco equipos de futbol int i. COMPUTACIÓN Y SISTEMAS fecha[4][2]= 2008.10}.length.println().05}}. c<par[i].10.11}.9.{13.out.length.13. i++) { for (c=0. i < fecha. } }} Página 40 .13}. int [][]par = {{14.print(fecha[i][c]+"\t"). c<fecha[i].out.c++){ System. for ( i = 0.print(par[i][c]+"\t").{10.

ya que uno mismo puede crear sus programas para las diferentes necesidades que tengamos. El curso de programación nos facilita y hace más simple el trabajo del hombre al momento de organizar diferentes aspectos de la vida cotidiana.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Página 41 . muy utilizado para escribir los programas que trabajan en internet y no sólo para eso. finalmente. COMPUTACIÓN Y SISTEMAS Conclusiones Hemos hecho un resumen de algunas partes del famoso lenguaje Java. empezando por las bases hasta llegar a las interfaces gráficas y. CIVIL. Éstos son todos aspectos más avanzados de la programación. Cada programa que creamos es diferente y nos permite minimizar tiempo y costos. al sonido.

que lean la información que brindamos nosotros. Página 42 . COMPUTACIÓN Y SISTEMAS Recomendaciones Les recomendamos a todas las personas que tienen acceso a esta monografía. ya que a nuestro parecer es muy comprensible y hemos tratado de poner ejemplos que las personas puedan comprender. CIVIL.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. Así mismo a nuestros compañeros y profesor a que revisen el material que tenemos y obtener sus críticas constructivas de nuestra monografía.

(Sin duda muy interesante.sun. (Tutorial completo en Inglés en formato PDF). Presindent MindView Inc.APOGEO (en inglés)  Javatm 2D Graphics. CIVIL.3.3 Relase Candidate 1. C++.2. 334 páginas. 1. SAMS Publishing .2. Knudsen. Wesley Iberoamericana. "Coding Standards for C. 1. 1. 1996] Jeff Johnson.2". 1997. 14 páginas. 1996. 1999.  Documentación oficial de la Sun Microsystems de Java Development Kit Versioni 1. 1. 2nd Edition. sobre todo por su actualidad al tratar con Java 2. 1. "El lenguaje de Programación Java".3 Beta. Addison-Wesley/Domo.2 . y por su extensión al tratar todas las bibliotecas de Java). [Eckel.Special Edition Using Java. J. Addison-Wesley Primera edición.3 Relase Candidate 3. "Hands -on Java Seminar".3 Relase Candidate 2. COMPUTACIÓN Y SISTEMAS Bibliografía     [Arnold y Gosling. Jaworski. (Consejos para el formato de los fuentes Java.com  Java Didáctica y Programación. C y C++). (Muy básico. 1999] Mike Morgan. Gosling. Prentice Hall. O'REILLY (en inglés) Página 43 . escrito por el desarrollador del lenguaje). 577 páginas. "Descubre Java 1. (en italiano) Marzo de 1997  Manual QUE . J. K. [Johnson. 1997. versión encontrada en internet (en inglés). and Java". Disponible en la red en el sito oficial de Java: http://java.1.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. 1997] Ken Arnold y James Gosling. 675 páginas.Arnold e J. 1. Vision 2000 CCS Package and Application Team.  Java2 Todo&Más. [Morgan. 1997] Bruce Eckel.

Tesina en Informática.ESCUELAS PROFESIONALES DE INGENIERIAS: INDUSTRIAL. COMPUTACIÓN Y SISTEMAS  Ambiente para explorar los micromundos en competición. Pietro Castellucci. CIVIL. (en italiano) Página 44 .