,. zs~ - biblioteca.unac.edu.pebiblioteca.unac.edu.pe/biblioteca_virtual/archivos/textos/25.pdf ·...
TRANSCRIPT
,. zs~
UNIVERSIDAD NACIONAL DEL CALLAO ~ FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
INSTITUTO DE INVESTIGACIÓN DE LA FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
INFORME FINAL DEL TEXTO
"TEXTO: LENGUAJE DE PROGRAMACIÓN TI- JAVA"
. AUTOR: MG. ING. ERIKA JUANA ZEVALLOS VERA
(PERÍODO DE EJECUCIÓN: Del 01/08/2013 al31/07114)
RESOLUCION DE APROBACION No 797- 2013-R
CALLA0-2014
.F6e 2015
INDICE
l. INDICE .................................................................................... J
11. RESUMEN ..................... , ......................................................... 3
111. INTRODUCCIÓN ....................................................................... 4
IV. MARCO TEÓRICO ..................................................................... 6
V. MATERIALES Y MÉTODOS ......................................................... 8
VI. RESULTADOS .......................................................................... 9
6.1 CAPÍTULO 1: CONCEPTOS BÁSICOS ....................................... 10
6.1.1 Concepto del lenguaje de programacion Java ......................... 1 O
6.1.2 Características de Java ................................................... 10
6.1.3 Los tipos de ejecucion de java .......................................... 11
6.1.4 La máquina virtual de java .............................................. 12
6.1.5 Concepto de una variable ................................................ 12
6.1.6 Tipos de datos Tipos de datos .......................................... 13
6.1. 7 Operadores aritmeticos .................................................. 13
6.1.8 Operadores de Java ....................................................... 13
6.2 CAPÍTULO 11: MANEJO Y DOMINIO DEL ENTORNO DEL
SOFTWARE ....................................................................... 15
6.3 CAPÍTULO 111: ESTRUCTURAS LÓGICAS DE CONTROL. ........... 15
6. 3.1 Estructura secuencial. ................................................... 15
6.3.2 Estructura lógica de decisión simple (si .. finsi) ...................... 18
6.3.3 Estructuras de decisión (if. .. [else]) .................................... 20
6.3.4 Estructuras de decisión múltiples si anidados (if-else
anidados) ................................................................... 22
5.3.5 Estructuras de decisión múltiple con anidados
(switch ... case ... brake ... default) ....................................... 25
6.3.6 Estructuras de control mientras (while) ............................... 30
6.3.7 Estructuras de control hacer- mientras( do ... while) ................ 31
6.3.8 Estructura lógica de repetición (desde o para) ........................ 33
6.4 CAPÍTULO IV: ARREGLOS ................................................... 36
6.4.1 Arreglos ................................................................... 36
Página:l
6.4.2 Arreglos bidimensionales .............................................. .40
6.5 CAPÍTULO V: SWINGS Y APPLETS ....................................... .44
6.5.1 Paquete Swing ........................................................... .44
6.5.2 Componentes Swing ..................................................... 44
6.5.3 Contenedores de propósito general. .................................. .45
6.5.4 Interfaz grafica del usuario- manejo de eventos ...................... 45
6.6 CAPÍTULO VI: CONEXIONES A BASES DE DATOS .................. 58
6.6.1 Base de datos .............................................................. 58
6.6.2 Acceso a base de datos con java ........................................ 58
6.6.3 Arquitecturajdbc ......................................................... 59
6.6.4 Fundamentos de los drivers jdbc ....................................... 59
6.6.5 Tipos de controladores .................................................. 60
6.6.6 Introducción a la tecnología web ....................................... 63
VII. DISCUSIÓN ........................................................................... 65
VIII. REFERENCIALES .................................................................... 66
IX. APÉNDICE ............................................................................. 67
X. ANEX0 ................................................................................. 72
10.1 Tecnología servlets ............................................................. 72
10.2 El hospedaje ..................................................................... 74
Página:2
ll. RESUMEN
En la elaboración de la investigación se ha realizado el texto de: "Texto: Lenguaje
de Programación II-Java", Como resultado de la investigación, se ha elaborado un
libro de teórico y practico que permite al estudiante conocer y dominar las
herramientas para programar; esta basado en el uso y desarrollo del Lenguaje de
Programación Java, se ha utilizado uno de los entornos de desarrollo integrado
(Integrated Development Environment- IDE ECLIPSE versión 4.2.
Para escribir un programa en java se necesita el Kit de desarrollo JDK. En la
actualidad uno de los entorno de desarrollo integrado mas usado es el eclipse.
Los JDK y los IDEs son libres para sus descargas.
Java necesitara el entorno de ejecución de java (JRE). Si se ha instalado JDK,
entonces se contara con JRE.
Eclipse es un entorno de desarrollo integrado (Integrated Development
Environment- IDE; compuesto por un conjunto de herramientas de programación
de código abierto multiplataforma para desarrollar lo que el proyecto llama
"Aplicaciones de Cliente Enriquecido", Esta plataforma, se usa para desarrollar
entornos de desarrollo integrados, entorno web y aplicaciones de escritorios.
El texto está compuesto por cinco capítulos servirá a los estudiantes para dotarles
del marco teórico y práctico como de los aspectos principales de la programación.
El texto nos brinda las bases fundamentales de programación orientada a objetos,
el manejo, dominio del entorno del Software, estructuras lógicas de control,
swings, applets y conexiones a bases de datos.
El texto: "Texto: Lenguaje de Programación II-Java" nos permite conocer las
herramientas básicas y principales para crear sistemas más complejos, creación de
programas visuales, construcción de prototipos. Usted encontrara la informacion
detallada de como integrar al mundo de Java de una manera muy censílla,
desarrollando inicialmente aplicaciones básicas para terminar en aplicaciones de
base de datos.
Página:3
m. INTRODUCCIÓN.
Este "Texto: Lenguaje de Programacion II-Java"; tine como objetivo dar a
conocer el uso, dominio del entorno de desarrollo integrado (Integrated
Development Enviromnent- IDE eclipse; código abierto popular para el desarrollo
de diversas aplicaciones. Maneja las tareas básicas, tales como la compilación de
códigos y la configuración de un entorno de depuración, para que pueda centrase
en escribir y probar códigos. Además, puede usar !DE-Eclipse para organizar
archivos de códigos de origen en proyectos, compilar y probar esos proyectos y
almacenar archivos de proyectos en cualquier cantidad de repositorios de origen.
Necesita tener instalado un JDK para usar Eclipse para el desarrollo Java.
Java hace referencia constantemente a la documentación API de Java; el lenguaje
Java tiene su propia estructura, reglas de sintaxis y paradigma de programación.
El paradigma de programación del lenguaje Java se basa en el concepto de
programación orientada a objetos, que las funciones del lenguaje soportan.
Java es un producto libre y gratuito sin restricciones de uso, es un proyecto de
código abierto de gran éxito.
JVM están disponibles para plataformas principales como Linux y Windows y se
han implementado subconjuntos del lenguaje Java en las JVM para teléfonos
móviles y aficionados de chips.
El Java Runtime Environment (JRE, también conocido como el Java Runtime)
incluye las bibliotecas de códigos de la JVM y los componentes que son
necesarios para programas en ejecución escritos en el lenguaje Java. Está
disponible para múltiples plataformas.
La importancia de Java es un lenguaje independiente de la plataforma; esta
independencia de plataforma se logro usando un formato especial en; los
programas compilados en java. Este formato de archivo. Llamado "byte-code"
puede ser leído y ejecutado por cualquier computadora que tenga un interprete
java, este interprete java, por su puesto debe ser escrito especialmente para el
sistema en el que correra.
En 1993, después de que internet se transformo en un ambiente basado en texto a
un ambuiente grafico, el equipo de Java se dio cuenta de que el guíale sería
Página:4
perfecto para la programación en el Web, asi nacio la idea de los applets, que son
pequeños programas que pueden ser incluidos en paginas web, y también surgio la
idea de escribir un navegador de Web que demostraría el poder del lenguaje, este
navegador es el HotJava.
Java es orientado a objetos, java usa clases para organizar el código en modulos,
en tiempo de ejecución, un programa crea objetos a partir de las clases. Las clases
en java pueden heredar de otras clases, pero la multiherencia, donde una clase
hereda métodos y datos de varias clases, no esta permitida.
Java tiene cuatro componentes principales: Espacio de trabajo, Proyectos,
Perspectivas, Vistas; permite trabajar en consola, desktop, web y aplicaciones
para dispositivos móviles con generación de reportes y gráficos estadísticos.
Este texto de Lenguaje de Programacion II-JA V A; nos brinda a las herramientas básicas,
principlaes; en el capítulo 1: Conceptos básicos y fundamentales, capítulo 2:
Manejo y dominio del entorno del Software, capítulo 3: Estructuras lógicas de
control, capítulo 4: Swings y applets, capítulo 5: Conexiones a bases de datos.
Java es simple, orientado a objetos, distribuido, interpretado y compilado a la vez,
robusto, seguro, multiplataforma, multitarea, dinámico.
Página:5
' IV. MARCO TEÓRICO
En el año 1992 se aplico el primer proyecto llamado Green; consisteia en un
sistema de control completo de los aparatos electrónicos y en el entorno de un
hogar. Posteriormente se aplicó otro proyecto "Video on Demand"que se
empleaba como interfaz para la trelevision interactiva, fueron desarrollados en
java primitiva.
En el año de 1994; Bill Joy cofundador de Sun y uno de los desarrolladores de
UNIX, Juzgo que internet podría llegar a ser el campo de juego adecuado para
disputar a Microsoft tras un cambio de nombre y modificaciones de diseño el
lenguaje Java fue presentado en sociedad en agosto de 1995.
Java es un lenguaje de programación 100% orientado a objetos, cuyas
aplicaciones se pueden ejecutar en cualquier plataforma. Java ha sido creado por
la empresa SUM MicroSystem y lo define como simple, orientado a objetos,
distribuido, portable, de altas prestaciones, multitarea y dinámico.
En la actualidad existen diversos libros de java, en la biblioteca especializada de
la Facultad de Ingeniería Industrial y de Sistemas. Según el estudio realizado; no
existen textos relacionado al Lenguaje de programación ll-Java. En este texto se
brinda las bases teóricas, prácticas; el entornos de desarrollo integrado (Integrated
Development Environment- IDE eclipse.
Hoy en día nos encontramos en un mundo globalizado; donde los lenguajes de
programación están evolucionando constantemente con nuevas herramientas para
solucionar los problemas de mayor complejidad. Los constantes cambios de
normativa y de versiones pueden dejar obsoletos los programas que usamos.
"La herencia consiste en que una clase puede heredar sus atributos o propiedades
y métodos a varias sub clases. "1
La mayoría de las aplicacione GUI requieren interfaces de usuarios personalizadas
y más elaborada. La mayoría de los componentes de Swing son componentes
puros de Java. Esra escritos, se manipulan y se muestran completamente en Java.
1 Alfredo Roncal{2012).
Página:6
"Cuando una aplicación de java con una Gill del A WT se ejecuta en distintas
plataformas, los componentes de la Gill de la aplicación se muestra de manera
distinta en cada plataforma." (Deitel, 2008).
La invocacion del manejo de eventos; todo componente de la Gill soporta varios
tipos de eventos, incluyendo eventos del raton, eventos de teclas y otros mas.
Cuando ocurre un evento, este se despacha solamente a los componentes de
escucha de evento tipo apropiado. Nos permite conocer como implementar el
manejo de eventos, clases internas y dialogos JOptionPane para obtener datos de
entrada de texto de usuarios.
Los componentes Gill en cada plataforma tiene distinta apariencia, lo cual puede
requerir de distintas cantidades de espacios para mostrarse en pantalla.
"Swing tambien proporciona flexibilidad de personalizar la apariencia visual,para
que un programa tenga la apariencia visual al estudio Microfost Windows (en el
sistemas Windows), tambien podemos utilizar la plataforma de software libre; al
estilo de Iinux, al estilo del sistema Mac" (Deitel, 2008).
Las aplicaciones web con acceso a base de datos son hoy en día es una de las
aplicaciones más utilizadas, tenemos actualmente tres tecnologías cada una con
características, ventajas y desventajas: PHP, ASP y con el lenguaje Java tenemos
a JSP (Java Server Page).
"el Apache Tomcat (llamado también Jakarta Tomcat o simplemente Tomcat)
funciona como un contenedor de servlets desarrollado bajo el proyecto jakarta en
la Apache Software Fundation" (Galindo, Programacion java con Oracle y
software libre, 2012).
El JSP es una tecnología que permite generar contenidos dinámicos para intemet
en forma de documentos HTML
"Las paginas JSP permiten la utilización de código mediante Script. Además es
posible utilizar algunas acciones de JSP predefinidas mediante etiquetas."
(Galindo, 2012).
Página:7
V. MATERIALES Y MÉTODOS.
La investigación es de carácter teórico-práctico y de tipo básico, intennedio y
avanzado. La presente investigación pretendió resolver el problema. Existe un
Texto de Lenjuaje de Programaciónii-Java, IDE Eclipse; que permita orientar
adecuadamente el desarrollo de la Teoría y de las Prácticas de Laboratorio de la
asignatura Lenguaje de Programación TI.
Teniéndose entendido que el tema de investigación es elaborar un texto, no se
determina el universo ni técnicas estadísticas.
La metodología empleada fue descriptivo analítico con el objeto de identificar los
temas más necesarios para la formación profesional del ingeniero de sistemas.
Para la elaboración del presente texto con el título: "Lenguaje de Programación
Java JI-Java", se han utilizado como fuente principal, la sumilla del silabo del
curso de Lenguaje de Programación II, los textos citados en el capítulo de
referenciales.
Los textos fuente del trabajo en mención, fueron sistematizados, según el avance
del trabajo de investigación.
Página:8
VI. RESULTADOS.
El resultado de la investigación, fue la elaboración del texto de Lenguaje de
Programación TI-Java, que será de mucha utilidad para los estudiantes y
profesionales de Ingeniería de Sistemas, a fin de ser más competitivos en el
mundo globalizado en que nos encontramos. El texto desarrollado consta de seis
capítulos; el contenido de los capítulos es el siguiente:
Capítulo 1: Conceptos básicos.
Capítulo 2: Manejo y dominio del entorno del Software.
Capítulo 3: Estructuras lógicas de control
Capítulo 4: Arreglos
Capitulo 5: Swings y applets
Capítulo 6: Conexiones a bases de datos.
Página:9
6.1 CAPÍTULO 1: CONCEPTOS BÁSICOS.
6.1.1 Concepto del lenguaje de programacion Java.
Java es un lenguaje de programación, una plataforma informática
comercializada por primera vez en 1995 por Sun Microsystems. Hay
muchas aplicaciones y sitios web que no funcionarán a menos que
tenga Java instalado y cada día se crean más.
Java es rápido, seguro y fiable. Desde portátiles hasta centros de
datos, desde consolas para juegos hasta súper computadoras, desde
teléfonos móviles hasta Internet, Java está en todas partes.
La descarga de Java es gratuita. Sun describe a Java como "simple,
orientado a objetos, distribuido, interpretado, robusto, seguro, de
arquitectura neutra, portable, de altas prestadones, multitarea y
dinámico".
El software del plugin de Java es un componente de Java Runtime
Environment: JRE permite applets escritos en el lenguaje de
programación de Java para ejecutar en varios exploradores.
6.1.2 Características de java.
Las características de java respecto a otros lenguajes de
Programación son las siguientes:
a) Simple.- Java ofrece toda la funcionalidad de un lenguaje potente, y
a la vez elimina las cosas más confusas y menos usadas de otros
lenguajes
b) Orientado a objetos.- Fue diseñado como un lenguaje orientado a
objetos desde el principio, a diferencia de C++, que fue una
extensión de C. En java, cada objeto se agrupa en estructuras
encapsuladas con sus datos y métodos que manipulan esos datos.
e) Distribuido.- Java proporciona una colección de clases para uso en
aplicaciones de red, que permite abrir sockets y establecer y aceptar
conexiones con servidores o clientes remotos. Lo que facilita la
creación de aplicaciones distribuidas.
Página:lO
d) Interpretado y compilado a la vez: Java es compilado ya que su
código fuente se transforma en una suerte de código de máquina
(bytecodes) semejantes a instrucciones en Assembler. Es
interpretado ya que dichos bytecodes se pueden ejecutar
directamente en cualquier máquina en que se haya instalado el
intérprete.
e) Robusto.-Java fue diseñado para crear sistemas fiables. Para ellos
proporciona muchas comprobaciones en compilación y en tiempo
de ejecución.
f) Seguro.- Ya que por naturaleza es distribuido, la seguridad es vital.
Implementa barreras de seguridad en el lenguaje y en el sistema de
ejecución en tiempo real.
g) Multiplataforma.- Como esta diseñado para soportar aplicaciones
distribuidas, y considerando lo heterogéneo de las redes, como
Internet, necesitaba ser independiente de la plataforma. Den esta
manera una aplicación se puede ejecutar desde un PC a un celular.
h) Multitarea.- Soporta sincronización de múltiples hilos de ejecución
(multithreading) a nivel de lenguaje.
i) Dinámico.- El lenguaje y su sistema de ejecución en tiempo real
son dinámicos en la fase de enlazado.
6.1.3 Los tipos de ejecucion de java.
Un programa en java puede ejecutarse de la siguiente manera:
a) Stand Alone.-Aplicación independiente.
b) Applet.-Una aplicación especial que se ejecuta en el navegador
del cliente.
e) Servlet.-Una aplicación especial sin Interfaz que se ejecuta en
servidor.
También se distribuye gratuitamente desde su página web, el entorno
de desarrollo Java llamado indistintamente con estas siglas: JDK,
SDK o J2SE. Este paquete incluye el API de Java. También incluye
el compilador de Java y lo que permite a Java funcionar en nuestro
Página:ll
ordenador: el JRE (Java Runtime Enviroment).
El JRE incluye los elementos necesarios para hacer funcionar
programas java en nuestro ordenador. Principalmente nos instala la
Máquina Virtual de Java y los plugins necesarios para el/los
navegador/es instalados en nuestro sistema. El JRE también se puede
descargar independientemente del entorno de desarrollo, pues se
distribuye en un paquete llamado J2RE.
6.1.4 La máquina virtual de java.
Java está pensado para ser independiente de la arquitectura sobre la
que funcione y la manera que tiene Java para conseguirlo es a través
de la emulación de una máquina software sobre la que funcionan los
programas compilados con Java. Es decir, un programa compilado
con Java no tiene código comprensible por ningún procesador, ese
código solo lo entiende la Máquina virtual de Java y lo traduce a
código que si pueda ser comprensible por el procesador sobre el que
funciona y además lo puede hacer funcionar sobre el sistema
operativo sobre el que está instalada. Por tanto lo único dependiente
del Hardware es la máquina virtual, pues tiene que conocer lo que
tiene por debajo para llevar a cabo la traducción, pero los programas
en java siempre pueden funcionar sobre una máquina virtual esté
donde esté instalada.
6.1.5 Concepto de una varible.
Una variable es una estructura de datos (lineal-estática) que permite
reservar un espacio con la finalidad de almacenar temporalmente los
datos. Una variable sólo puede almacenar un solo dato a la vez y del
mismo tipo; Declaración, Almacenamiento de datos e inicialización
se compone de la siguiente manera:
a) Declaración.- Significa definir el nombre de la variable y el tipo
de dato que podrá almacenar.
tipoDato nombreDe Variable
Página:12
b) Inicialización.- Significa asignar un valor inicial a la variable, el
cual luego puede ser modificado mediante el almacenamiento de
datos.
nombreDe Variable = valor inicial
e) Asignación.- Significa dar un valor a la variable durante el desarrollo del programa.
6.1.6 Tipos de datos.
Tenemos los siguientes tipos de datos
int 1 long Un numero entero
float /doublé Un numero real (Con decimales)
char
String
boolean
Un solo carácter
Una cadena de caracteres
Un valor VERDADERO o FALSO
6.1. 7 Operadores aritmeticos.
+ Suma
* 1
%
Resta
Multiplicar
Di vis ion
Resto modulo
6.1.8 Operadores de Java.
Los operadores pueden dividirse en siete grupos, a continuación
podemos visualizar la tabla con los operadores de cada grupo.
a) Operadores aritméticos.
Operador Descripcion ++/-- Incrementa o decrementa en uno la variable a la que
+!-
* 1
%
+/-
se le ponga como sufijo.
Invierte el signo de una variable
Multiplicación
División
Resto de la división
Suma/Resta
Página:13
b) Operadores lógicos.
Operador Descripcion
Invierte el valor de un bolean
& Operador AND (Y lógico) a nivel de bits
" XOR a nivel de bits
Operador OR (O lógico) a nivel de bits
&& Operador AND condicional
11 Operador OR condicional
e) Operadores de asignación:
Operador Descripcion
Asignación simple de derecha a izquierda
+= Evalúa a la derecha y suma a la izquierda
*=
/=
Evalúa a la derecha y resta a la izquierda
Evalúa a la derecha y multiplica a la izquierda.
Evalúa a la derecha y divide a la izquierda
d) Operadores de comparación.
Operador Descripcion
< Menora
> Mayora
<= Menor o igual a
>= Mayor o igual a
Igual a
!= Distinto a
Página:14
6.2 CAPÍTULO ll: MANEJO Y DOMINIO DEL . ENTORNO DEL
SOFTWARE.
V amos a conocer el entorno de desarrollo integrado (Integrated
· Development Environment- IDE ECLIPSE; desarrollo por excelencia se
llama "ECLIPSE", Con la aparición de Java en la década de los 90, IBM
desarrolló una máquina virtual válida tanto para Smalltalk y Java.
La rápida expansión de Java y sus ventajas con miras a una Internet en plena
expansión obligaron a IBM a plantearse el abandono de esta máquina virtual
dual y la construcción de una nueva plataforma basada en Java desde el
pnnc1p10.
Las Herramientas de trabajo se necesitan como mínimo los siguientes:
a) Lenguaje de Programación: Java IDE Eclipse.
b) Contenedor Web: Tomcat
e) Motor de BD: MySql
6.3 CAPÍTULO ID: ESTRUCTURAS LÓGICAS DE CONTROL.
6.3.1 Estructura secuencial.
El código se ejecuta secuencialmente por defecto Hay que señalar que
un bloque de instrucciones se encontrará encerrado mediante llaves
{ ........ } si existe más de una instrucción.
Ejemplo 01:
package domApli;
class PrgSuma {
public static void main (String [ ] args) {
11 declaración
int dato 1 ,dato2, suma;
11 asignación
datol=IO;
dato2=15;
11 operación
suma= datol +dato2;
Página:15
11 Visualización de resultados
System.out.print (suma);
}}
Ejemplo 02:
class PrgAreaCuadrado { public static void main (String [ ] args) {
11 declaración int lado, area;
11 asignación lado= 10;
11 operación area = lado * lado;
11 Visualización de resultados System.out.print ("El area es:"+ area);
}}
Ejemplo 03:
package domApli;
import biblioteca.Lectura ;
class PrgMostrarNombre {
public static void main (String [] args) {
String nombre;
/!Ingreso de datos
System.out.print ("Ingrese el nombre: ");
nombre= Lectura.leerString();
System.out.print ("El nombre es:"+ nombre);
}} Ejemplo 04:
public class suma {
public static void main(String[] args) {
float valor,igv, precioventa;
System.out.println("ingrese el valor de venta");
valor=Lectura.leerFloat();
Página:16
}}
igv=(float) (valor*0.19);
precioventa=valor+igv;
System.out.println("El resultado es:"+ igv);
System.out.println("El resultado es:"+ precioventa);
Ejemplo 05:
public static void main(String[] args) {
floatPI=(float) 3.14159;
float radio= O,area;
System.out.println("ingrese el radio:");
radio=Lectura.leerFloat();
area=(float)(PI*(Math.pow((double)radio,2.0)));
System.out.println("El area del cirulo es:"+ area);
}} Ejemplo propuestos:
l. Construir un algoritmo que calcule el monto mensual que adeuda
un cliente que compra un equipo de sonido al crédito, sabiendo que
el monto de compra recibe un incremento dell9% de impuesto, así
como, de 5% de interés mensual por cada letra que fracciona.
2. Un hospital a recibido una donación especial que será repartida de
la siguiente manera: 45% para Medicina General, 30% para
Cardiología, 15% para Pediatría y el resto para Traumatología.
Diseñe un algoritmo que determine cuanto recibirá cada área.
3. Tres personas deciden invertir su dinero para fundar una empresa.
Cada una de ellas invierte una cantidad distinta. Obtener el
porcentaje que cada quien invierte con respecto a la cantidad total
invertida.
4. Diseñe un algoritmo que determine el porcentaje de varones y de
mujeres que hay en un salón de clase.
5. En una tienda se ha puesto en oferta la venta de cierto tipo de
producto ofreciendo un descuento fijo del 11% del monto de la
Página:17
compra. Diseñe un algoritmo que determine el monto original de la
compra, el monto del descuento y el monto a pagar por la compra
de cierta cantidad de unidades del producto.
6. Diseñe un algoritmo para convertir una cantidad dada en pulgadas a
pies, yardas y centímetros. Se sabe que:
1 yarda= 3 pies
1 pie = 12 pulgadas
1 pulgada= 2.54 centímetros
1 metro = 100 centímetros
7. Dada la capacidad de un recipiente en galones, diseñe un algoritmo
que exprese dicha capacidad en litros, metros cúbicos y pies
cúbicos. Considere que:
1 pie cúbico= 0.0283 metros cúbicos
1 galón = 3. 79 litros
1 metro cúbico = 1000 litros
8. Diseñe un algoritmo que lea la capacidad de un disco duro en
gigabytes y lo convierta a megabytes, kilobytes y bytes.
1 kilo bytes = 1024 bytes
1 megabytes = 1024 kilobytes
1 gigabytes = 1024 megabytes
6.3.2 Estructura lógica de decisión simple (si .. finsi)
Una estructura de decisión simple "SI... FIN SI" permite alterar el
flujo secuencial (o pasos secuenciales) de una solución ejecutando
un conjunto de pasos adicionales si el resultado de una condición
lógica es verdadero.
Sintaxis:
if (condición) {
Sentencias ...
}
Página:18
Ejemplo 06:
Calcular la nota final (nf) de un alumno, sabiendo que tiene sólo
dos notas. Si el alumno obtiene una nota final mayor a 13 se deberá
visualizar un mensaje de felicitaciones.
Package domApli~
import biblioteca.Lectura~
class PrgNotaFinal {
public static void main (String [] args) {
String mensaje=" "~
int notal, nota2, nf~
System.out.print ("Ingrese la notal: ");
notal = Lectura.leerlnt();
System.out.print ("Ingrese la nota2: ")~
nota2 = Lectura.leerlnt()~
nf= (notal + nota2) 1 2;
//Estructura de Decisión Simple
if(nf> 13){
Mensaje= "Felicitaciones";
}
System.out.print ("Su promedio es: "+ nf + mensaje)~
}}
Ejemplo 07:
Calcular la nota final (nf) de un alumno, sabiendo que tiene sólo
dos notas. Si el alumno obtiene una nota final mayor a 13 se
deberá visualizar un mensaje de felicitaciones.
public static void main(String[] args) {
String mensaje=" "~
int notal, nota2, nf~
S ystem. out. println("Ingresar un numero")~
notal =Lectura.leerlnt();
Página:19
}}
System.out.println("Ingresar un numero");
nota2=Lectura.leerlnt();
nf= (notal + nota2) /2;
if(nf> 13){
mensaje= "Felicitaciones";
}
System.out.println(" el mensaje es:"+ mensaje);
6.3.3 Estructuras de decisión (if ... [else])
La más común de todas, permite ejecutar una instrucción (o
secuencia de instrucciones) si se da una condición dada (o, mediante
la cláusula else, ejecutar otra secuencia en caso contrario).
Sintaxis:
if (condición) {
sentencias ...
} else {
sentencias ...
}
Ejemplo 08:
Ingrese un número y determine si el número ingresado es un número
par o un número impar.
Import bibioteca.Lectura;
class PrgNumPar {
public static void main (String[] args ) {
String mensaje;
intnumero;
System.out.print ("Ingrese un numero: ");
numero = Lectura.leerlnt();
if (numero % 2 = O) {
mensaje= "Numero par";
Página:20
} else {
mensaje = "Numero impar";
}
System.out.print ("Usted ingreso el numero:"+ numero+" ,es
un " + mensaje");
}}
Ejemplo 09:
Ingresar un número por teclado y determinar si es entero, positivo o
neutro.
public static void main(String[] args) {
intn;
String r = ''";
System.out.println("ingrese un numero:");
n=Lectura.leerlnt();
if(n>O){
r="posutivo";
}
if(il<O){
r="negativo";
}
if(n=O){
r="neutro";
}
System.out.println("El numero es:"+r);
}}
Ejemplo 10:
Calcular y mostrar la nota final de un alumno. Si la nota final (nf) es
menor a 14 se deberá mostrar el mensaje "Desaprobado", caso
Página:21
contrario se mostrará el mensaJe "Aprobado". Fórmula: nf =
(nl+n2+n3) 13.
public static void main(String[] args) {
String mensaje=" ";
int notal, nota2, nf;
System.out.println("Ingresar un numero");
notal =Lectura.leerlnt();
System.out.println("Ingresar un numero");
nota2= Lectura.leerlnt();
nf= (notal + nota2) 1 2;
if(nf<l4){
mensaje= "Desaprobado";
} else {
mensaje= "Aprobado";
}
System.out.print("La nota final es:"+nf+" el mensaje es:"+
·mensaje);
}}
6.3.4 Estructuras de decisión múltiples si anidados (if-else
anidados).
En muchas ocasiones, se anidan estructuras alternativas if-else, de
forma quese pregunte por una condición si anteriormente no se ha
cumplido otra sucesivamente.
Sintaxis:
if (condición 1) {
sentencias l ...
} else {
if ( condición2) {
sentencias2 ...
} else {
Página:22 ·
if(condición3) {
sentencias3 ...
} } }
Ejemplo 11:
Calcular el área de un rectángulo conociendo su base y altura. Si el
área es menor que 100, se deberá visualizar el mensaje "rectángulo
pequeño"; si el área es mayor o igual a 100 y menor que 1000, se
visualizará el mensaje "rectángulo mediano"; y si el área es mayor
o igual que 1000, el mensaje será "rectángulo grande".
public static void main(String[] args) {
doublé base, altura, área;
String mensaje;
System.out.println("Ingresar un numero");
}}
notal =Lectura.leerlnt();
System.out.println("lngresar la base del rectángulo:");
base:;=Lectura.leerDouble();
System.out.println("Ingresar la altura del rectángulo:");
altura=Lectura.leerDouble();
área=base*altura;
if(area <100) {
mensaje= "Rectangulo pequeño";
}el se{
if (area >=1000) {
mensaje= "Rectangulo grande";
}else{
mensaje= "Rectangulo mediano";
System.out.println("El área es:"+ area);
System.out.println(" y es un mensaje:"+ mensaje);
}}
Página:23
Ejemplos propuestos:
1) Una institución social tiene un centro de salud, un comedor de
niños, una escuela y· un asilo de ancianos. La institución recibe
anualmente una donación que los reparte de la siguiente forma:
25 % para la implementación del centro de salud
35 % para el comedor de niños
25 % para la escuela
Y el resto para el asilo de ancianos
2) Diseñe un programa que ingrese las ventas realizadas por un
vendedor y que muestre la comisión y un mensaje de acuerdo a
las ventas:
ventas comisión
Menos 500 2%, "mal vendedor"
500<=venta<= 1000 6% "regular vendedor"
venta>lOOO 9% "buen vendedor"
3) Diseñe un programa para calcular la suma de la serie tal como
se muestra, la cantidad de N términos se ingresa por teclado
32 62 92 S=-+-+-+
22 42 62
4) Ingrese un número entero de 3 dígitos, luego muestre la suma
de los cuadrados del digito mayor y digito menor en caso que
la suma sea par y si es impar la suma que muestre la diferencia
(resta) de sus cuadrados.
5) lngres~ un numero de 5 dígitos y mostrar el producto del
primer y el ultimo dígito
Por ejemplo : 12345 -> 1 * 5 sera 5
Página:24
6.3.5 Estructuras de decisión múltiple con anidados
(switch ••• case .•• brake ••• default).
Permite ejecutar una serie de operaciones para el caso de que una
variable tenga un valor entero dado.
La ejecución saltea todos los case hasta que encuentra uno con el
valor de la variable, y ejecuta desde allí hasta el final del case o hasta
que encuentre un break, en cuyo caso salta al final del case. El
default permite poner una serie de instrucciones que se ejecutan en
caso de que la igualdad no se da para ninguno de los case.
Sintaxis:
switch (variable) {
case valor 1 :
sentencias ...
break
}
case valor 2 :
sentencias ...
break
case valor n:
sentencias ...
break
default:
sentencias ...
Ejemplo 12:
Ingresar la categoría (categoría) y el sueldo (sueldo) de un
trabajador, y calcular su aumento de sueldo teniendo en cuenta la
siguiente mostrada. Mostrar el nuevo sueldo del trabajador (sueldo).
Las categorías som: 1, 2, 3, 4,5, y los aumentos respectivos son:
38%,21%,12%,08%.
Página:25
Solución:
class PrgSueldo {
public static void main (String[] arg) {
int categoria;
double sueldo=O;
System.out.print ("Ingrese la categoría");
categoría = Lectura.leerlnt();
System.out.print ("Ingrese el sueldo");
sueldo = Lectura.leerlnt();
switch (categoría) {
case 1: sueldo = sueldo * 1.38;
break;
case 2: sueldo= sueldo* 1.21;
break;
case 3: sueldo= sueldo* 1.12;
break;
case 4: sueldo= sueldo* 1.08;
break;
default: sueldo = sueldo
} System.out.print (Su sueldo es: "+sueldo);
}}
Ejemplo 13:
Ingresar un número y devolver el día de la semana de acuerdo a la
siguiente tabla.
NUMERO DIA DE SEMANA
1 LUNES 2 MARTE 3 MIÉRCOLES
4 JUEVES
5 VIERNES 6 SABADO
7 DOMINGO
Página:26
Solución:
public static void main(String[] args) {
11 TODO Auto-generated method stub
int categoria;
String diasemana = null;
categoría =LE.leerlnt("ingresar el numero de dia de semana");
switch (categoría) {
}
case 1: diasemana ="lunes";
break;
case 2: diasemana = "Martes";
break;
case 3: diasemana= "Miercoles";
break;
case 4: diasemana ="Jueves";
break;
case 5: diasemana ="Viernes";
break;
case 6: diasemana = "Sabado";
break;
case 7: diasemana ="Domingo";
break;
LE.mostrarResultado(" el mensaje es:"+ diasemana);
}} Ejemplo 14:
Ingresar el número del mes, devolver la estacio]} del año de acuerdo
a la siguiente tabla.
NUMERO DIA DE SEMANA 1,2,3 VERANO
4,5,6 OTOÑO
7,8,9 INVIERNO
10,11,12 PRIMAVERA
Página:27
Solución:
public static void main(String[] args) {
int mes;
String estacionn =" ";
mes =LE.leerlnt("ingresar el numero del mes");
switch (mes) {
case 1:
case 2:
case 3:
estacionn = "VERANO";
break;
case 4:
case 5:
case 6:
estacionn = "OTOñO";
break;
case 7:
case 8:
case 9:
estacionn= "INVIERNO";
break;
case 10:
case 11:
case 12:
estacionn ="PRIMAVERA";
break; }
LE.mostrarResultado("LA ESTACIONES:" +estacionn);
}}
Página:28
Ejemplo 15:
Calcular los operadores básicos suma, resta, multiplicación y
división.
package com.admin.clases;
public class Calculadora {
public static void main(String args[]) {
double nl =O, n2 = O;
int opcion =O;
String valor = '"';
do {
System.out.println("[l]:SUMA");
System.out.println("[2]:RESTA");
System.out. println("[3] :MULTIPLICACION");
System.out.println("[4]:DIVISION");
System.out.println("Ingrese su opción: ");
opcion = Lectura.leerlnt();
if ( opcion < 5 && opcion > O) {
System.out.println("Ingrese Nl: ");
nl = Lectura.leerDouble();
System.out.println("lngrese N2: ");
n2 = Lectura.leerDouble();
switch ( opcion) {
case 1:
System.out.println("La suma es:"+ (nl+ n2));
break;
case 2:
System.out.println("La resta es: "+ (nl - n2));
break;
case 3:
System.out.println("La multiplicación es: " + (nl * n2));
break;
Página:29
case 4:
System.out.println("La división es: "+ (n1 1 n2));
}}
} }else{
System. out. println("Opciónno válida!!!");
}
System.out. println("Desea continuar?");
valor=Lectura.leerString();
} while (valor.equalslgnoreCase("s"));
6.3.6 Estructuras de control mientras (while)
Permite ejecutar un grupo de instrucciones mientras se cumpla una
condición dada:
Sintaxis:
while (condición) {
sentencia 1
sentencia 2
sentencian
}
Ejemplo 16:
Calcular la nota final de todos los alumnos del curso utilizando la
siguiente fórmula: nf= ( n1 + (n2 *2)) 13
Solución:
Public class promedio {
public static void main (String[] arg) {
int numalum,nota 1 ,nota2, cont= 1;
double nf=O;
System.out.print ("Ingrese el numero de alumnos;");
numalu=Lectura.leerint();
Página:30
System.out.print ("Ingrese el numero de alumnos;");
numalu=Lectura.leerint();
while (cont<=numalu){
System.out.print ("Ingrese la primera nota;");
n 1 = Lectura.leerint();
System.out.print ("Ingrese la segunda nota;");
n2= Lectura.leerint();
nf=(n1 +(n2*2))\3;
System.out.println("La nota final del alumno"+(cont)+":"+nf+\n);
cont=cont+ 1;}
System.out.println("*****gracias por usar el programa*****");
}}
Ejemplo 17:
public class suma{
public static void main(String argv[]){
inti=1;
while(i<lO){
System.out.println(i);
i = i + 2;
}
System.out.println("no hay mas números impares");
}} 6.3. 7 Estructuras de control hacer- mientras( do ... while)
Similar al anterior, sólo que la condición se evalúa al final del ciclo y
no al principio:
Sintaxis:
do {
sentencia 1
Página:31
sentencian
} while (condición) ;
Ejemplo 18:
public class numero {
public static void main(String argv[]){
int i =O;
while(i<6){
System.out.println(i);
i++;
}}}
Ejemplo 19:
package arreglos;
import biblioteca.*;
public class equipodevoley {
public static void main(String[] args) {
11 TODO Auto-generated method stub
int i,n,acep=O,Nacep=O,pruSelec=O;
double totalprop;
do{
n=LE.leerlnt("lngrese el numero de postulantes:");
}while(n<=O);
do{
double estatura[]=new double[n];
for(i=O;i<n;i++ ){
estatura[i]=LE.leerDouble("Ingrese la estatura del postulante
"+(i+ 1 )+" : ");
if(estatura[i]<1.60 11 estatura[i]>2){
LE.mostrarlnformacion("Esta postulante no esta permitida");
}} while(estatura[i]<1.60 11 estatura[i]>2);
if(estatura[i]>=l.6 && estatura[i]<=1.69){
Página:32
Nacep+=1~}
else if( estatura[i]>=1.7 && estatura[i]<=l. 75){
pruSelec+= 1;}
else{
acep+=l~} }
LE.mostrarResultado("El total de postulantes es: "+n);
LE.mostrarResultado("las que no pasan la prueba son: "+Nacep)~
LE.mostrarResultado("Las que pasan a la prueba de seleccion son :
"+pruSelec );
LE.mostrarResultado("Las que pasan directamente son : "+acep );
if(Nacep>0.5*n){
LE.mostrarlnformacion("Mas de la mitad de postulantes no
califica");}
totalprop=acep*200;
LE.mostrarlnformacion("El club tendra que pagar: "+totalprop+" por
concepto de propinas");
}}
6.3.8 Estructura lógica de repetición (desde o para).
Una estructura de repetición "DESDE ... FINDESDE" permite repetir
una instrucción, o un bloque de instrucciones, un número
determinado de veces o hasta que una condición se cumpla. Una
estructura lógica de repetición "DESDE... FINDESDE" con
frecuencia se utiliza para iteraciones sencillas en donde se repite un
bloque de instrucciones un cierto número de veces y después se
detiene.
Sintaxis:
PARA (cont=l, cont <= 5, cont++) HACER
instrucción 1
Página:33
instrucción n
FINPARA
Ejemplo 20:
public class numeros{
public static void main(String argv[]){
int i;
for(i = O; i<6; i++ ){
System.out.println(i);
}}} Ejemplo 21:
Calcular y mostrar la nota final de 1 O alumnos utilizando la siguiente
fórmula:nf= (nl+n2))/2. Ingrese las notas a través del teclado.
public static void main(String[] args) {
int i;
double nl =O,n2=0,nf=O;
for (i=l; i<=5; i++) {
nl =LE.leerDouble("ingresar notal ");
nl =LE.leerDouble("ingresar nota2");
nf= ( nl + n2) 1 2;
}
LE.mostrarResultado(" el promedio es:"+ nf);
}}
Ejemplo 22:
Calcular y visualizar la suma de los números pares comprendidos
entre los números 20 y 400.
Solución:
package dominioDeLaAplicacion ;
class PrgSumaPares {
Página:34
public static void main (String[] arg) {
int num, sumaPares = O ;
}}
for ( num=22 ; num<399 ; num++) {
if ( num % 2 = O) {
sumaPares = sumaPares + num;
}} System.out.println ("La suma de los numeros pares
entre 20 y 400 es:"+ sumaPares);
Ejemplo 23:
package domApli;
public class PrgFiguraCuadrado {
public static void main(String[] args) {
int i, j ;
}
}
}
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
System.out. print( " * " ); }
System. out. println();
Ejemplo 24:
Permita ingresar las notas de la practica ,determianar promedio de
alumnos.
public static void main(String[] args) {
int i,numPra;
double sumaNotas=O,notaMenor=20,promAlu;
System.out.print("Ingrese el numero de practicas del alumno: ");
numPra=Lectura.leerlnt();
double notas[]=new double [numPra];
Página:35
for(i=O;i<numPra;i++ ){
System.out.print("Ingrese la nota de la practica ["+(i+l)+"]: ");
notas[i]=Lectura.leerDouble();
}
for(i=O;i<numPra;i++ ){
sumaNotas=sumaNotas+notas[i];
}
for (i=O;i<numPra;i++ ){
if(notaMenor>notas[i]){
notaMenor=notas[ i];
}
}
}
}
prom.Alu=( sumaNotas-notaMenor)/( numPra-1 );
System.out.print("El pomedio es: "+promAlu);
6.4 CAPÍTULO IV: ARREGLOS.
6.4.1 Arreglos.
Los arreglos son estructuras de datos que almacenan datos del mismo
tipo. Los arreglos son entidades estáticas en cuanto a que su tamaño no
cambia una vez que han sido creadas.
Cada uno de los elementos de los que consta un arreglo tiene asignado
un indice que indica la posición en la que se encuentra almacenado.
El primer elemento del arreglo tiene indice cero (O) y el último tiene
indice tamaño_ del_ arreglo - l.
Los arrays de Java (vectores, matrices, hiper-matrices de más de dos
dimensiones) se tratan como objetos de una clase predefinida. Los
arrays son objetos, pero con algunas caracteristicas propias.
Los arrays pueden ser asignados a objetos de la clase Object y los
métodos de Object pueden ser utilizados con arrays.
Página:36
Algunas de sus características más importantes de los arrays son las
siguientes:
a) Los arrays se crean con el operador new seguido del tipo y número
de elementos.
b) Se puede acceder al número de elementos de un arra y con la
variable miembro implícita length (por ejemplo, vect.length).
e) Se accede a los elementos de un array con los corchetes [] y un
índice que varía de O a length-1.
d) Se pueden crear arrays de objetos de cualquier tipo. En principio un
array de objetos es un array de referencias que hay que completar
llamando al operador new.
e) Los elementos de un array se inicializan al valor por defecto del
tipo correspondiente (cero para valores numéricos, el carácter nulo
para char, false para boolean, null para Strings y para referencias).
f) Como todos los objetos, los arrays se pasan como argumentos a los
métodos p·or referencia.
g) Se pueden crear arrays anónimos (por ejemplo, crear un nuevo
array como argumento actual en la llamada a un método).
· h) Inicialización de arrays:
Los arrays se pueden inicializar con valores entre llaves { ... } separados
por comas. También los arrays de objetos se pueden inicializar con
varias llamadas a new dentro de unas llaves { ... }.
Creación de una referencia a un array. Son posibles dos formas:
vector
1 n d 1 e e --. rO'----,-----y------,.----r'=--"' m:....:•:...::•..:..• .:..:.· •-, 1 1
Declaración de un arreglo unidemsional.
tipoDeDato nombreDelArreglo [];
double[] x; //preferible
(unidimensional)
double x[];
Creación del array con el operador new:
Página:37
---
nombreDelArreglo = new tipoDeDato[ tamaño] ;(unidimensional)
x = new double[lOO];
por ejemplo:
double[] x = new double[lOO];
Ejemplo 25:
package domApli;
public class PrgFiguraCuadrado {
public static void main(String[] args) {
for ( int i=O; i< nombresJength; i++ ) {
}}}
System.out print ("Ingrese el nombre");
nombres[ i ] = Lectura.leerString ( );
Ejemplo 26:
package arreglos;
import biblioteca.*;
public class ejemplo22 {
public static void main(String[] args) {
int i,numAlu;
double sumaNota=O,prom;
do{
System.out.print("Ingrese el numero de alumnos:");
numAlu=Lectura.leerlnt();
if(numAlu<=O){
System.out.print("El numero de alulmnos no es valido .... mgresa
nuevamente:");
}}
while(numAlu<=O);
double notas[]=new double [numAlu];
for(i=O;i<notas.length;i++ ){
do{
System.out.print("lngrese la nota final del alumno "+(i+ 1 )+": ");
Página:38
notas[i]=Lectura.leerDouble();
if(notas[i]<O 11 notas[i]>20){
System.out.print("La nota ingresada no es valida:. vuelva a ingresar:");
} }while(notas[i]<O 11 notas[i]>20);
}
for( i=O;i<notas.length;i++) {
swnaNota=sumaNota+notas[i];
}
prom=sumaNota/numAlu;
System.out.print("El promedio es: "+prom);}}
Ejemplo 27:
Determinar si un nuemro es palíndromo.
package AntesdelParcial;
import biblioteca.*;
public class palabraAlreves {
public static void main(String[] args) {
String cad;
String aux="";
System. out. println("Ingresa una frase o palabra");
cad=Lectura.leerString();
for(int i=cad.length()-l;i>=O;i--) {
aux=aux+cad.charAt(i);
}
System.out.print(aux);
String num;
String auxl="";
System.out.println("Ingresa un nwnero");
num=Lectura.leerString();
for(int i=num.length()-l;i>=O;i--){
auxl =auxl +num.charAt(i);
}
Página:39
if (num:equals(auxl )){
}
else{
}}}
System.out.println("Es palíndromo!!!");
System.out.println("no es palindromo");
6.4.2 Arreglos bidimensionales.
Los arrays bidimensionales de Java se crean de un modo muy similar al
de C++ (con reserva dinámica de memoria). En Java una matriz es un
vector de vectores fila, o más en concreto un vector de referencias a los
vectores fila. Con este esquema, cada fila podría tener un número de
elementos diferente. Una matriz se puede crear directamente en la
forma, int [][] mat = new int[3][4];o bien se puede crear de modo
dinámico dando los siguientes pasos:
l. Crear la referencia indicando con un doble corchete que es una
referencia a matriz, int[][] mat;
2. Crear el vector de referencias a las filas, mat = new int[nfilas][];
3. Reservar memoria para los vectores correspondientes a las filas,
for (int i=O; i<nfilas; i++ );
mat[i] = new int[ncols];
A continuación se presentan algunos ejemplos de creación de arrays
bidimensionales:
11 Crear una matriz 3x3, se inicializan a cero.
double mat[][] = new double[3][3];
int [][] b = { { 1, 2, 3.}, { 4, 5, 6}, 11 esta coma es permitida};
int e= new[3][]; //se crea el array de referencias a arrays
c[O] = new int[5];
c[l] = new int[ 4 ];
c[2] = new int[8t
En el caso de una matriz b, b.length es el número de filas y b[O].length
es el número de columnas (de la fila 0). Por supuesto, los arrays
Página:40
bidimensionales pueden contener tipos primitivos de cualquier tipo u
objetos de cualquier clase.
Ejemplo 28:
public static void main(String[] args) {
11 Declaracion de variables
String nombre[]=new String[100];
int edad[]=new int[100];
int conta=O; //Contador de ingresos
String lista='"';
int posM=-1,mayor=O;
1 /Ingreso de datos
int op;
do{
nombre[ conta ]=LE.leerString("Ingrese nombre ");
edad[ conta ]=LE.leerlnt("Ingrese edad");
conta++;
do{
op=LE.leerlnt("Desea inscribir a otro alumno (S=1/N=O)");
} while( op<OIIop> 1 );
} while( op== 1 );
1 /Listado de datos
String listado="";
for(int i=O;i<conta;i++ ){
listado+=nombre[i]+" "+edad[i]+"\n";}
LE.mostrarlnformacion("Alumnos inscritos\n\n"+listado );
1 /Listado de nombres de los alumnos mayores a 18
for(int i=O;i<conta;i++ ){
if( edad[i]> 18)
lista+=nombre[i]+"\n"; }
LE.mostrarlnformacion("Alumnos mayores a 18 años\n\n"+lista);
1 /Datos del alumno con mayor edad
Página:41
for(int i=O;i<conta;i++ ){
if( edad[i]>mayor){
mayor=edad[i];
posM=i; } }
LE.mostrarlnformacion("Los datos del alumno con mayor edad es:
"+nombre[posM]+" "+edad[posM]);
}} Ejemplo 29:
Diseñe una matriz que almacene para "n" alumnos sus 3 notas y
calcule para cada uno de ellos lo siguiente:
l.-Mostrar el promedio de notas de de. cada alumno.
2.- Mostrar la mayor y la menor nota de cada alumno.
Tome en cuenta lo siguiente: cada fila representa a un alumno y
cada columna una nota.
public static void main(String[] args) {
int nalu,nnot=3;
int nota[][];
iht suma,mayor,menor;
double prom;
System.out.println("lngrese cantidad de numeros ");
n=Lectura.leerlnt();
nota=new int[n][nnot];
11 ingreso los datos
for(int i=O;i<nalu;i++) {
for(int j=O;j<nnot;j++ ){
do{
System.out.println("Ingrese nota");
nota[i][j]=Lectura.leerlnt();
}
while(nota[i][j]<OIInota[i][j]>20);
}}
Página:42
11 Muestro el promedio
for(int i=O;i<nalu;i++) {
suma=O;
for(int j=O;j<nnot;j++)
suma=suma+nota[ i] fj];
System.out.println("El promedio del alumno es:"+ suma/nnot);
}
11 Muestro el el mayor y el menor
for(int i=O;i<nalu;i++) {
menor=mayor=nota[ i] [O];
for(int j=O;j<nnot;j++ ){
}
if( nota[ i]fj]>mayor)
mayor= nota[i][j];
if(nota[i][j]<menor)
menor= nota[i][j];
System.out.println("La mayor nota es:"+ mayor);
System.out.println("La menor nota es:"+ menor);
}}}
Página:43
6.5 CAPÍTULO V: SWINGS Y APPLETS.
Acceder al entorno swings y applets. Debemos crear un proyecto, un paquete,
seleccioanr la opción de Visual Class.
Mostrara una ventana donde prmita seleccionar el estilo del contenedos.
Asignar un nombre, luego le damos aceptar y creara automáticamente el
entorno visual.
6.5.1 Paquete Swing.
Los componentes de Swing utilizan la infraestructura de A WT,
incluyendo el modelo de eventos A WT, el cual rige cómo una
componente reacciona a eventos tales como, eventos de teclado, mouse,
etc... Es por esto, que la mayoría de los programas Swing necesitan
importar dos paquetes A WT: java.awt. * y java.awt.event. *.
El paquete Swing es parte de la JFC (Java Foundation Classes) en la
platafonna Java. La JFC provee facilidades para ayudar a la gente a
construir GUis. Swing abarca componentes como botones, tablas,
marcos, etc. Las componentes Swing se identifican porque pertenecen
al paquete javax.swing.
6.5.2 Componentes Swing.
Tenemos la siguiente clasificación.
a) Administradores de diseño.
• Flowlayout
• Borderlayout
• Gridlayout
• Cardlayout
• Gridbaglayout
b) Contenedores.
• JApplet
• JFrame
• JPanel
Página:44
• JDialog
e) Componentes.
• JButton
• JLabel
• JText
• JMenu
• Etc ...
6.5.3 Contenedores de propósito general.
Tenemos los siguientes:
• JPanel
• JScrollPane
• JTabbed.Pane
• JTollBar
• Botones:
• JCheckBox
• JRadioButton
• JButton
• JTextField
• JPasswordField
• JTextArea con JScrollpane
• JMenuBar,JMenu,JMenultem
• JRadioButtonMenultem
• JCheckBoxMenultem
6.5.4 Interfaz gráfica de usuario- manejo de eventos.
Manejo de eventos.
a) ActionListener
b) AdjustmentListener
e) F ocusListener
Página:45
d) ItemListener
e) KeyListener
t) MouseListener
g) MouseMotionListener
h) WindowListener
Ejemplo 30:
lmport javax.swing. *;
public class AppPrueba extends JApplet implements
ActionListener {
}
JButton btnl;
public void init(){
btnl=new JButton("Saludo");
btn l.addActionListener( this );
add(btnl);
public void actionPerfonned(ActionEvent e) {
if( e. getSource()=btn 1)
Joption.showMessageDialog(null, "Bienvenido");
}}
Como resultado tenemos la siguiente ejecución nos muestra el
resultado.
Q). · Bienvenidos
started.
Página:46
Ejemplo 31: Diseñar utilizando los controles de Tiabel, JtextField,
JtextArea, JButton. Ingresar el código, nombre. Debe realizar la
palicacion de ingreso, buscar, modificar, elimianr, mostrar ordenar
en forma ascendente, salir.
Solucion:
public class Empleado {
prívate int codigo;
prívate Stríng nombre;
public Empleado() {
} public int getCodigo() {
return codigo; }
public void setCodigo(int codigo) {
this.codigo = codigo; }
public String getNombre() {
return nombre; }
public void setNombre(Stríng nombre) {
this. nombre = nombre;
}} import dompro. *;
public class Arreglo {
Empleado objE[];
int conta;
public Arreglo() {
}
public Arreglo(int n) {
objE=new Empleado[n];
conta=O;
}} import dompro. *;
Página:47
public class Arreglo {
Empleado objE[];
int conta;
public void agregarElemento(int cod, String nom){
objE[ conta ]=new Empleado();
objE[conta].setCodigo(cod);
objE[ conta]. setN ombre(nom );
conta++;
}} import dompro. *;
public class Arreglo {
Empleado objE[];
int conta;
public String sacarElemento(int i){
return objE[i].getCodigo()+" "+
objE[i].getNombre()+" ";
}
public String sacarTodo(){
String listado="";
for(int i=O;i<conta;i++)
}}
listado+=objE[ i]. getCodigo()+ "\t"+
objE[i].getNombre()+"\n";
return listado;
import dompro. *;
public class Arreglo {
Empleado objE[];
Página:48
int conta;
public int buscarCodigo( int cod) {
for(int i=O;i<conta;i++)
if( cod==objE[ i]. getCodigo())
return i;
retum -1; } }
import dompro.*;
public class Arreglo {
Empleado objE[];
int conta;
public void ordenarXCodigo(){
for(int i=O;i<conta-1 ;i++)
for(int j=i+ 1 j<conta;j++ ){
if( objE[ i]. getCodigo()>objE[j]. getCodigo()) {
11 Intercambio
Empleado tmp=objE[i];
objE[ i]=objE[j];
import dompro. *;
public class Arreglo {
Empleado objE[];
int conta;
}
objE[j]=tmp;
public void eliminar(int pos){
if(pos!=-1)
for(int i=pos;i<conta;i++)
objE[i]=objE[i+ 1 ];
conta--;
}}
import dompro. *;
}}}
Página:49
public class Arreglo {
Empleado objE[];
int conta;
public String eliminarXCodigo(int cod){
int pos=buscarCodigo( cod);
if(pos=-1)
retum "No se puede eliminar, no existe";
else{
}
for(int i=pos;i<conta;i++)
objE[i]=objE[i+ 1];
conta--;
retum "Se Eliminó correctamente";
Ejemplo 32: Diseñar el ingreso de pasword, utilizando los controles de
JTexfild, JLabel, JButton. Ingresar el código, pasword,
Solución:
El Botón Salir:
void fileExit_ ActionPerformed(ActionEvent e) {
System.exit(O);
}
El Boton Aceptar:
prívate void jButton 1_ actionPerformed(ActionEvent e) {
String usuario= jTextFieldl.getText();
String codigo = jPasswordFieldl.getText();
if((usuario.equals("ERIKA")&&codigo.equals("l2345"))){
new COMPRA().show();
dispose();
}else{
Página:SO
JOptionPane. showMessageDialog( null, 'ílngrese nuevamente sus
datos!!!", "Contraseña incorrecta",JOptionPane.ERROR _ MESSAGE);
jTextFieldl.setText("");
jPasswordField l. setText(" ");
}
}
priva te void jButton2 _ actionPerformed( ActionEvent e) {
System.exit(O);}
Ejemplo 33: Diseñar la siguiente aplicación utilizando los siguientes
controles: JTexfild, JLabel, JButton. Que permita ingresar un producto,
cantidad y precio, devolver el subtotal y el total a pagar.
Solución:
prívate void jButtonl_ actionPerformed(ActionEvent e) {
int producto=Integer. parselnt(jTextField l. getT ext() );
int cantidad=Integer. parselnt(jT extField2.getText() );
int precio=Integer.parselnt(jTextField3.getText());
double prec,subtotal,totaligv;
prec=Double.parseDouble(jTextField3.getText());
subtotal=cantidad *precio;
totaligv=subtotal+ 1.8*subtotal;
jTextField5.setText(Double.toString(subtotal));
jTextFiéld4.setText(Double.toString(totaligv));
}
prívate void jButton3 _ actionPerformed(ActionEvent e) {
jTextFieldl.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextFieldl.requestFocus(); }
Página:Sl
Ejemplo 34: Diseñar la siguiente aplicación utilizando los siguientes
controles: JTexfild, JLabel, JButton. Ingresar dos números y determinar
la suma.
Solucion:
prívate voidjButton1_actionPerformed(ActionEvent e) {
int
suma=Integer.parselntGTextField1.getText())+Integer.parseintGTextFíe
ld2. getText() );
jTextField3.setText("La suma es:+suma");
}
private void jButton2 _ actionPerformed( ActionEvent e) {
System.exit(O);
}
Ejemplo 35:
Diseñar la siguiente aplicación utilizando los siguientes controles:
JTexfild, JLabel, JButton, JRadioButton para los colores, JradioButton
para la opción negrita; Ingresar un texto, que permita cambiar de color.
Solución:
prívate void jRadioButton2 _ mouseClicked(MouseEvent e) { Color
c=new Color(255,0,0);
if GRadioButtonl.isSelected() ){
jTextField1.setForeground(c);
} } prívate void jRadioButton 1_ mouseClicked(MouseEvent e) {
Color c=new Color(0,0,255);
if GRadioButton2.isSeJected() ){
jTextFieldl.setForeground( e);
} } private void jCheckBox l_ mouseClicked(MouseEvent e) {
Font fl=new Font(Font.SANS_SERIF,Font.BOLD,12);
Font f2=new Font(Font.SANS _ SERIF ,Font.PLAIN, 12);
Página:S2
}
íf (jCheck:Boxl.ísSelected()){
jTextFieldl.setFont(fl );
}else{
jTextFíeldl.setFont(f2);
} }
SE USA: Jpanelljpanel2, JradíoButtonl, JradioButton2,Jcheckbox. Y
se ha trabajado con mouseClicked, para cada uno.
Ejemplo 36.
Diseñar la siguiente aplicación utilizando los siguientes controles:
JTexfild, JLabel, JButton, Jlist Crear una lista de productos y
determinar el monto a pagar. Se debe ingresar el producto, cantidad,
precio, calcular el total.
Solución.
prívate void this _ windowOpened(WindowEvent e) {
DefaultListModel m=new DefaultListModel();
}
jList l. setl\1odel( m);
m.addElement("Monitor");m.addElement("Impresora");
m.addElement("Teclado");m.addElement("CD");
prívate void jList 1_ mouseClicked(MouseEvent e) {
String z=(String)jListl.getSelectedValue();
jTextFieldl.setText(z);
}
prívate void jButtonl_ mouseClicked(MouseEvent e) {
}
prívate voidjButtonl_actionPerformed(ActionEvent e) {
double cantidad,precio,total;
cantidad=Double. parseDouble(jTextField2 .getText() );
precio=Double. parseDouble(j TextField3. getText() );
Página:53
}}
total=cantidad*precio;
jTextField4.setText(" "+total);
Ejemplo 37 Diseñar la siguiente aplicación utilizando los siguientes
controles: JTexfild, JLabel, JTextArea, JButton: se pide ingresar el
código, nombre, siyueldo; debe realizar la aplicación de mantenimiento:
agregar, mostrar, reporte, ordenar, eliminar.
Solución:
public class Empleado{
private int codigo;
private String nombre;
private double sueldo;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public void setSueldo( double sueldo) {
this. sueldo = sueldo;
}
public double getSueldo(){
Página:54
return sueldo;
}
import dompro.*;
public class Elemento {
public Empleado info;
public Elemento sig,ant;
}
public Elemento(){
}
info = new Empleado();
ant=sig=null;
. d * tmport ompro. ;
public class ListaDoble{
public Elemento cab;
public ListaDoble(){
cab=null;
}} public void agregarElementoFinal(int codigo,String n,double s){
Elemento nuevo:=new Elemento();
nuevo.info.setCodigo( codigo );
nuevo.info.setNombre(n);
nuevo.info~setSueldo( s );
if( cab-null)
else{
}}
cab=nuevo;
Elemento aux=cab;
while( aux. sig!=null)
aux=aux. stg;
aux.sig=nuevo;
nuevo.ant=aux;
Página:SS
public Elemento buscarCodigo(int e){
for(Elemento aux=cab;aux! =null;aux=aux. sig)
if(aux.info.getCodigo()=c)
return aux;
return null;}
public String sacarTodos(){
String listado="";
Elemento aux=cab;
while(aux!=null){
listado+=aux.info.getCodigo()+" "+
aux.info.getNombre()+"
"+aux.info.getSueldo()+"\n";
aux=aux.stg;
} return listado;
} . . * tmport Java.awt. ;
import domapli. *;
public class FrmListaDoble extends JFrame {
ListaDoble objListaDob;
}
prívate void initialize() {
objListaDob = new ListaDoble();
}
public void agregar(){
String c=txtCodigo.getText();
String nombre=txtNombre.getText();
String sueldo=txtSueldo.getText();
if( c. equals(" ")!!nombre. equals(" ")11 sueldo. equals(" "))
JOptionPane. showMessageDialog( null, "Campos vacíos");
else{
Página:56
int codigo=Integer. parselnt( e);
if( objListaDob. buscarCodigo( codigo )=null) {
double s=Double. parseDouble( sueldo);
objListaDob.agregarElementoFinal( codigo,nombre,s );
} else
JOptionPane.showMessageDialog(null,"Codigo repetido");
}
}
11 limpiar cajas de texto
txtCodigo. setText(" ");
txtNombre. setText(" ");
txtSueldo.setText("");
txtCodigo.requestF ocus();
public void mostrar()
{
String aux3 = objListaDob.muestra();
textArea.setText(aux3);
}public void salir()
{ System.exit(O);
}
Página:57
6.6 CAPÍTULO VI: CONEXIONES A BASES DE DATOS.
6.6.1 Base de datos.
Una base de datos en un sistema relacional está compuesta por un
conjunto de tablas, que corresponden a las relaciones del modelo
relacional. Prácticamente, la creación de la base de datos consiste en
la creación de las tablas que la componen.
6.6.2 Acceso a base de datos con java.
Elegir la arquitectura de la aplicación; es uno de los pasos más
importantes al crear una aplicación, se caracteriza por el número de
capas que componen la aplicación tradicionalmente, se ha optado por
los modelos de dos capas y el de n-capas.
Es el marco de trabajo tradicional cliente-servidor requiere que el
cliente tenga cuidado específico de la B.B.D.D. Esto genera un fuerte
acoplamiento de las capas.
Ventajas:
• Tiempo de desarrollo menor (mayor simplicidad)
• Mayor rendimiento del sistema (aprovechando fun-cionalidades
específicas del servidor)
Desventajas:
• Dificultad en el mantenimiento del sistema.
• Los cambios en el servidor afectan al cliente.
• Cambios en la B.B.D.D. requieren modificar código en el cliente.
• La propagación de los cambios puede ser muy dificil.
Uso recomendado:
• LAN corporativa.
• Evaluación de opciones en prototipo de proyecto.
Tiene las siguientes capas:
• Capa cliente.
• Al menos una capa servidor.
• Al menos una capa intermedia.
Página:58
La API de JDBC proporciona una serie de interfaces para manejar la
B.B.D.D. Los vendedores de drivers JDBC nos proporcio-nan la
implementación real de las interfaces, S un mantiene una base de datos
de drivers;
La filosofia de JDBC es proporcionar transparencia al desarrollador
frente al gestor de BD. JDBC utiliza un Gestor de Controladores que
hace de interfaz con el controlador específico de la BD.
6.6.3 Arquitectura jdbc.
La filosofia de JDBC es proporcionar transparencia al desarrollador
frente al gestor de base de datos. JDBC utiliza un Gestor de
Controladores que hace de interfaz con el controlador específico de la
base de datos.
La Arquitectura Odbc; conponde de apicaciones java, los Drives Manager de
JDBC. Los controladores Oracle, controlador JDBC-ODBC, controlador
DB2; cada uno con su sistema de gestión de base de datos. Oracle, acces,
SGB2.
6.6.4 Fundamentos de los drivers jdbc.
Hay dos clases principales responsables del establecimiento de una
conexión con base de datos.
a) DriverManager.
• Proporcionada por el API JDBC
• Responsable de manejar un almacén de drivers registrados.
• Abstrae los detalles de uso de un driver.
b) Clase real del Driver JDBC.
• Proporcionada por vendedores independientes.
• Responsable de establecer la conexión y maneJar todas las
comunicaciones con la base de datos.
Página:59
6.6.5 Tipos de controladores.
JDBC es una especificación que establece dos tipos de interfaces:
• Interfaz de aplicación, que permite acceder a una base de datos
independientemente de su fabricante.
• Interfaz del controlador, al cual se deben adaptar los
desarrolladores de controladores.
Actualmente en el mercado existen gran cantidad de controla~ores que
varían en su arquitectura. Sun ha clasificado estos controladores en
cuatro tipos.
a) Controlador Tipo 1, Puente JDBC-ODBC.
b) Controlador Tipo 2, Controlador utilizando APis nativas.
e) Controlador Tipo 3, Controlador JDBC-NET Java puro.
d) Controlador Tipo 4, Controlador Java puro y protocolo nativo.
Ejemplo 38: coneccion a base de datos.
Ubicar en el panel de Control la opción Herramientas administrativas
seleccionar el icono del conector para la Base de datos (ODBC)
Dentro de las herramientas administrativas ubique la opción Orígenes
de datos (ODBC). Hacer clis en la opción de administrative tolos,
seleccionar el icono de Data Sourses (ODBC), dar docle clik mostrata
una ventana de dialogo que indica ODBC Data Sourse Administrator,
dar clik en Add.
Se mostrara una ventana de dialogo que indica; Regístrelo en DSN del
sistema, Microsoft Accses Driver (*mdb ), Finish.
Mostrara otra ventada de dialogo, dar click System Database.
Implementación Frm Empleado
import java.awt.GridLayout;
importjava.sql.*; //importar este paquete
Página:GO
public class FrmEmpleado extends JFrame {
prívate JButtonjButton3 = null;
}
public void cargaData(){
try{
11 ---Registrando el driver java
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
11--- Obteniendo una conexiona la base de datos
Connection
cn=DriverManager.getConnection("jdbc:odbc:dsnFia","sa","sa");
11 ---Creamos el objeto statement
Statement st=cn. createStatement();
11 ---Ejecutamos la consulta
ResultSet rs=st.executeQuery("select codigo,nombre,sueldo from
TEmpleado");
muestraData( rs );
cn.close();
}catch(Exception ex){
txtASalida.setText("La conexión fracasó : \n\n");
txtASalida. append( ex. toString() );
}} public void muestraData(ResultSet r) throws Exception {
11 ~-~Obteniendo el objeto ResultSetMetaData
ResultSetMetaData rmeta=r.getMetaData();
int numColumnas=rmeta.getColumnCount();
txtASalida.setText("");
for(int i=l;i<=numColumnas;++i){
if(rmeta.getColumnName(i).equals("codigo")){
Págína:61
txtASalida.append(rmeta.getColumnName(i)+"\t");
}else
txtASalida.append(rmeta.getColumnName(i)+"\t");
}
txtASalida.append("\n");
while(r.next()){
for( int i= 1 ;i<=numColumnas;++i)
txtASalida.append(r.getString(i)+"\t");
txtASalida.append("\n" );
}
}
public void insertaData(){
String c=txtCodigo.getText();
String n=txtNombre.getText();
double s=Double.parseDouble(txtSueldo.getText());
11--- Registrando el driver java
try{
Class.forName("sun.jdbc.odbc.JdbcüdbcDriver");
11--- Obteniendo una conexiona la base de datos
Connection
cn=DriverManager.getConnection("jdbc:odbc:dsnFia","sa","sa");
11--- Creamos el objeto statement
Statement st=cn. createStatement();
11 ---Ejecutamos la consulta
st.executeUpdate("insert into templeado(codigo," +
"nombre,sueldo) values('"+ e+"',' "+n+" ',"+s+")");
}catch(Exception e){
System.out.println( e);
}
xtCodigo.setText("");
txtNombre. setText(" ");
Página:62
txtSueldo.setText("");
txtCodigo.requestFocus();
}
6.6.6 Introducción a la tecnología web.
El protocolo de transferencia de hipertexto es usado en cada
transacción de la Web (WWW). El hipertexto es el contenido de las
páginas web, y el protocolo de transferencia es el sistema mediante el
cual se envían las peticiones de acceder a una página web, y la
respuesta de esa web, remitiendo la información que se verá en
pantalla.
HTTP es un protocolo sin estado, es decir, que no guarda ninguna
información sobre conexiones anteriores. Al finalizar la transacción
todos los datos se pierden.
El protocolo HTTP está basado en el modelo cliente-servidor: Un
cliente HTTP abre una conexión y realiza su solicitud al servidor, el
cual responde generalmente el recurso solicitado y la conexión se
cierra.
a) Modelo Request-Response.
Existe comunicacion entre file.html y browswe; el browser atiende
la solicitud de file.html. lo que envía es un requt file.html.
b) Un servidor web.
Es un programa que implementa el protocolo HTTP. Este
protocolo está disefíado para transferir lo que llamamos
hipertextos, páginas web o páginas HTML: textos complejos con
enlaces, figuras, formularios, botones y objetos incrustados como
animaciones o reproductores de sonidos.
Un servidor web se encarga de mantenerse a la espera de
peticiones HTTP llevada a cabo por un cliente HTTP que solemos
conocer como navegador.
El navegador realiza una petición al servidor y éste le responde
Página:63
con el contenido que el cliente solicita.
Sobre el servicio web clásico podemos disponer de aplicaciones
web. Éstas son fragmentos de código que se ejecutan cuando se
realizan ciertas peticiones o respuestas HTTP liS y Apache son los
más conocidos.
e) Tipos de Aplicaciones:
• Aplicaciones en el lado del cliente: el cliente web es el
encargado de ejecutarlas en la máquina del usuario. Son las
aplicaciones tipo Javascript: el servidor proporciona el código
de las aplicaciones al cliente y éste, mediante el navegador, las
ejecuta. Es necesario, por tanto, que el cliente disponga de un
navegador con capacidad para ejecutar aplicaciones (también
llamadas scripts ).
• Aplicaciones en el lado del servidor: el servidor web ejecuta la
aplicación; ésta, una vez ejecutada, genera cierto código
HTML; el servidor toma este código recién creado y lo envía
al cliente por medio del protocolo HTTP.
• Las aplicaciones de servidor suelen ser la opción por la que se
opta en la mayoría de las ocasiones para realizar aplicaciones
web. La razón es que, al ejecutarse ésta en el servidor y no en
la máquina del cliente. Algunos con~eptos relacionados con las
aplicaciones web son:
PHP, ASP, Perl, CGI, .NET, JSP (Tecnología Java)
Página:64
Vll. DISCUSIÓN
Para la elaboración del texto: "Texto: Lenguaje de Programacion II- Java" se ha
realizado un análisis documental y bibliográfico que permita establecer analogías
con nuestra realidad, determinar los conceptos básicos de programación y
comenzar a desarrollar sus propios programas.
Está basado en tratado de bases o metodología de programación, en un compendio
de conocimientos y guía práctica.
El texto está dirigido a estudiantes y docentes de nivel superior y universitario,
está orientado a promover una enseñanza equilibrada teórico-práctico.
Su carácter práctico busca que el lector pueda desarrollar programas en un plazo
corto.
Haciendo uso de una computadora, el lenguaje de programación Java IDE Eclipse.
En conclusión se ha cumplido con el problema de investigación, con los objetivos
a desarrollar el texto: "Texto: Lenguaje de Programación II- Java".
Página:65
VIII. REFERENCIALES
l. CASTAÑEDA LEÓN, JUAN, Desarrollo de aplicaciones en Java, lima;
Risisa Graff, primera edición, 2007.
2. DEITEL, M. HARWEY M. Como programar en Java. Mexico: Editorial
Prentice Hall,'? edision, 2008
3. GALINDO, ALFREDO RONCAL, Programacion Java con Oracle y
Software libre, Peru: Risisa GraffS.R.L. ,2012.
4. JOY ANES AGUILAR, LUIS, Fundamentos de programacion algoritmos,
estructuras de datos y objetos, Madrid: Me Graw-Hill/InterAmericana de
España s.a.u.L.4ta edición, 2008.
5. LIMA DIAZ, MARCELO, Manual Avanzada de Java 6, Madrid:
Edisiones Anaya Multimedia s.a., Madrid, 2010.
6. MARCELO VILLALOBOS, RICARDO, Fundamentos de programacion
Java mas 100 algoritmos codificados, Peru: Marco E.I.R.L. primera
edición, 2008.
7. V ALENTIN HUIZA, HANDZ, Desarrollo de aplicaciones con Java, Pero:
Risisa Graff. 1ra edición, 2013.
Página:66
IX. APÉNDICE
Silabo de la Asignatura de Lenguaje de programación ll, de acuerdo al Plan de
Estudios de la Escuela Profesional de Ingeniería de Sistemas de la Universidad
Nacional del Callao.
Página:67
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
Escuela Profesional de Ingeniería de Sistemas - EPIS
SYLLABUS
1. INFORMACIÓN GENERAL
l. l. Nombre de la Asignatura: LENGUAJE DE PROGRAMACIÓN JI
N' y Código del Curso : 21 PC043
1.2. Carácter
1.3. Pre-requisito
1.4. Número de créditos
Horas Semanales
Teoría
Practica
1.5. Ciclo Académico
1.6. Semestre Académico
2. SUMILLA
: Obligatorio
: Lenguaje de Programación I
:3
:Cuatro (04)
:02 Hrs.
:02 Hrs.
: Cuarto Ciclo
: 2014-A
En el curso se trata los fundamentos de la metodología orientada a objetos
y se estudia la programación que implementan esta metodología, se
contemplan temas referentes a las clases, objetos encapsulamiento,
herencia de clases, sobrecarga de funciones y de operadores,
polimorfismo, funciones virtuales, plantillas, manejo de excepciones,
interfaces visuales, desarrollo de aplicaciones.
3. OBJETIVOS
GENERALES
• Que el estudiante comprenda y maneje los conceptos inherentes a la
metodología orientada a objetos.
• · Que el estudiante adquiera destrezas y estilos al desarrollar programas
utilizando lenguajes de programación orientados a objetos.
• Que el estudiante desarrolle aplicaciones usando la metodología
orientada a objetos.
Página:68
ESPECÍFICOS
• Que el estudiante comprendas la necesidad de utilizar tecnologías de
desarrollo de Software capaces de soportar la complejidad de los
problemas de los sistemas de información actuales.
• Comprender y utilizar los conceptos de clases, objetos,
encapsulamiento, métodos y mensajes en el desarrollo de programas.
• Introducir al estudiante en el modelamiento de datos usando la
metodología orientada a objetos.
• Comprender los conceptos de constructores, destructores, herencia,
sobrecarga de funciones y de operadores, funciones virtuales y
polimorfismo como soportes fundamentales de la programación
orientada a objetos.
• Que el estudiante adquiera destrezas y estilos al desarrollar programas
utilizando lenguajes de programación orientados a objetos.
• Que el estudiante desarrolle aplicaciones usando la metodología
orieJ.?.tada a objetos.
4. CONTENIDO TEMÁTICO
Ira. Semana Introducción a la Metodología Orientada a Objetos (MOO).
2da. Semana Clases y Objetos.
3ra. Semana Clases y Objetos (Continuación).
4ta. Semana Manejo de controles, Menús y cuadros de dialogo.
5ta. Semana Creación de interfaces graficas
6ta. Semana Gestión de Datos
7ma. Semana Características del Java
8va. Semana EXAMEN PARCIAL Y PRESENTACION DE TRABAJO N° 1
9na. Semana Java y la MOO
lOma. Semana Tipos de datos en Java
11 va. Semana Interfaces y clases internas
12va. Semana Clases para interfaz gráfica al usuario.
13va. Semana Applets y Aplicaciones
14va. Semana Manejo de errores y excepciones
Página:69
15va. Semana Hilos y Sincroniozación
16va. Semana Beans y programación visual
17va. Semana EXAMEN FINAL Y SUSTENTACION DE TRABAJO N° 2
5. ESTRATEGIAS DE ENSEÑANZA
Clases teóricas y prácticas mediante el uso de métodos inductivo y
deductivo mediante ejemplos concretos y trabajos determinados
relacionados con la unidad en estudio. Teniendo como método la
enseñanza dialogada incentivando así la participación continua y activa de
los alumnos.
6. MEDIOS Y MATERIALES
Para el desarrollo de las clases se recomienda:
• Uso de computadores en red local
• U so de retroproyector
• Uso de proyector multimedia
• Uso de bibliografia especializada, Internet.
• Uso de pizarra, tizas, mota.
• Uso de software orientado a objetos.
7. SISTEMA DE EVALUACIÓN
• Las fechas de evaluación serán fijadas con anterioridad y serán carácter
impostergable.
• La inasistencia, no justifica a una evaluación se calificara con la nota
cero, se aceptaran justificaciones documentadas solo hasta 48 horras
después de realizada la evaluación.
• Se tomara un examen parcial (EP) y un examen final (EF).
• Se tomaran opcionalmente prácticas calificadas según el avance del
curso y la naturaleza del tema.
• Se encargaran trabajos para que sean realizados, presentados y
sustentados por los alumnos.
• Todos los trabajos encargados por el profesor y las practicas se
promediaran aritméticamente y darán la nota de TAREA
ACADÉMICA (TA).
Página:70
• Todos los trabajos encargados por el profesor y las practicas se
promediaran aritméticamente y darán la nota de TAREA
ACADÉMICA (TA).
• La nota fi:qal del curso (NF) se obtepdrá del .promedio ponderado de las
notas obtenidas con el siguiente criterio:
NF = 6* TA + 2 * EP + 2 * EF 1 1 O
• La escala de calificaciones es la vigesimal y en cualquier evaluación el
medio punto es a favor del alumno.
• La nota final aprobatoria (NF) es 11
8. BffiLIOGRAFÍA
l. ALONSO AMO, F., SEGOVIA PEREZ, F.J. Entorno y Metodologías
de Programación., Ed. Paraninfo, 2005.
2. GALINDO:, A.R., Programacion Java con Oracle y Software libre,
Peru: Risisa GraffS.R.L. ,2012.
3. GULBRANSEN, DA VID. RA WLINGS, KENRICK, Cree sus
Applets para WEB con Java. Prentice Hal, México 2006.
4. JOYANES AGUILAR, LUIS, Fundamentos de programacion
algoritmos, estructuras de datos y objetos, Madrid: Me Graw
Hill/InterAmericana de España s.a.u.L.4ta edición, 2008.
5. JOYANES AGUILAR, LUIS, C++ a su alcance: Un enfoque
orientado a objetos., Ed. Addison- Wesley Iberoamericana, 2006
6. HAL VORSON, MICHAEL. Aprenda Visual Basic YA 6.0,Ed.
McGraw Hill, España, 2009., IBM, OOP con Java, Lima 2009.
7. MARCELO VILLALOBOS, RICARDO, Fundamentos de
programacion Java mas 100 algoritmos codificados, Peru: Marco
E. l. R. L. primera edición, 2008.
8. V ALENTIN HUIZA; HANDZ. Desarrollo de aplicaciones con Java,
Pero: Risisa Graff. lra edición, 2013.
Página:71
X. ANEXO
10.1 Tecnología servlets.- Necesidad de mecanismos para desarrollar
aplicaciones web, contenido dinámico cuando escribes una URL en tu
navegador:
• El navegador establece una conexión TCP/IP con el servidor.
• El navegador envía una petición al servidor.
• El servidor devuelve una respuesta al cliente.
• El servidor cierra la conexión.
• Los mensajes intercambiados entre el cliente y el servidor son HTTP.
• Características de los Servlets.
• Pensados para reemplazar a los CGis.
Ventajas:
• Rendimiento.- cada petición es procesada por un único proceso en el
contenedor de servlets
• Portabilidad.- heredado de Java
• Rápido desarrollo.- acceso a las riquísimas librerías de Java
• Robustez.- gestionados por la máquina virtual de Java (garbage
collection)
• Amplio soporte.-muchos desarrolladores y compañías utilizan esta
tecnología
• Arquitectura
• Servlet Container= servidor web capaz de ejecutar servlets
• En una aplicación JSP, el contenedor se corresponde a un JSP
container.
Seis pasos para crear tu primer servlet:
• Crear una estructura de directorios bajo Tomcat para tu aplicación
• Escribir el código del servlet
• Compilar el código
• Crear un descriptor de explotación ( deployment descriptor)
• Ejecutar Tomcat
• Invocar el servlet desde un navegador
Página:72
Ejemplo:
Código del Servlet . . . * tmport Java.to. ;
import java.text. *;
import java. util. *;
import javax.servlet. *;
import javax.servlet.http. *;
public class Hello World.Example extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
ResourceBundle rb =
ResourceBundle. getBundle("LocalStrings ",request. getLocale() );
response. setContentType("text/html ");
PrintWriter out= response.getWriter();
out. println("<html>");
out. println("<head>");
String title = rb.getString("helloworld.title");
out.println("<title>" + title + "</title>");
out. println("</head>");
out. println("<body bgcolor=\"white\">");
out.println("<hl>" + title + "</hl>");
out. println("</body>");
out. println("</html>"); } }
El navegador por la API de Java. "es posble descargar la documentación
de la API de java en 1 disco, o verla en línea. Para descargarla, vaya a
www.orcle.com/technetwork/javaljavase/downloads/index.html,
desplácese hasta la sección additional resources y haga clik en el botón
download a la derecha de java SE 6 documentation." (DEITEL, 2012)
Página:73
10.2 El hospedaje.
"Por lo tanto, cuando esta listo para situar su sitio en la web, va a necesitar
algo de especio en un servidor web. Cientos de empresas le rmitiran situar
su sitio web en sus servidores y por su puesto, cobrarle por el serviciose
conoce como hospedaje web por la empresa le hospeda el sitio"
(DUCKETT, 2009).
Página:74