,. zs~ - biblioteca.unac.edu.pebiblioteca.unac.edu.pe/biblioteca_virtual/archivos/textos/25.pdf ·...

75
,. 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

Upload: doannguyet

Post on 30-Sep-2018

220 views

Category:

Documents


0 download

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