Vous êtes sur la page 1sur 20

PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Capítulo 2 Indroducción a las aplicaciones en Java

Datos generales

Texto base [DD2008] Introducción a las aplicaciones Java

Capítulo
Páginas 34 - 65 Horas de estudio empleadas para el desarrollo del contenido 14 horas

Propósito:

El propósito de éste capítulo es compreder los conceptos claves que existen en los lenguajes
de programación en general, reconocer la importancia que tienen los conceptos de legibilidad
de cualquier programa que construya y aplicar las convenciones de código recomendadas
para el lenguaje de programación Java.

Conceptos clave:

Dentro de éste capítulo se iniciará en la creación de aplicaciones (programas) pequeños


escritos en lenguaje Java; dentro de los cuales aprenderá a leer datos8 a través del
teclado y a presentar resultados en pantalla. Se familiarizará con algunos operadores
matemáticos y con su precedencia.

* Aplicación Java: Es un programa que se ejecuta utilizando el intérprete Java. Existen 2 tipos de
programas en Java: aplicaciones y applets.

* Comentarios: Líneas de texto insertadas en un programa que sigue un formato determinado.


Se emplean para documentar los programas y mejorar su legibilidad. Son ignorados por el
compilador. En Java existen varios tipos de comentarios:

¸ //Comentario de fin de línea o de una sola línea

¸ /*Comentario de bloque o múltiples líneas*/

¸ /**Comentario de documentación. Visite el entorno virtual de aprendizaje para conocer


su funcionamiento */

* Declaración de clase: Todo programa en Java consiste de, cuando menos, una declaración de
clase definida por el programador.

* Salida formateada: Permite mostrar datos con formato. En Java se utiliza la sentencia printf. El
capítulo 29, que se encuentra en el CD del libro base puede encontrar una explicación detallada
de éste tema.

* Palabra clave (keyword) o palabra reservada: Son de uso exclusivo para lenguaje de programación
y no pueden ser empleadas por el programador para declaración de: clases, variables, constantes,
interfaces, etc.

8. Los tipos de datos serán cubiertos a detalle en el siguiente capítulo

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 21


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

* Sentencia: Una expresión que puede es parte de un programa y que cumple con una tarea
determinada. También suele llamarse instrucción.

* Identificador: Una serie de caracteres que pueden ser letras, dígitos, guiones bajos (_) y signos de
dólar ($) que sirven para identificar las entidades de un programa (clases, variables, constantes,
interfaces, etc.). En Java no puede iniciar con un número, ni con espacios en blanco en alguna
posición. Java es sensible a mayúsculas y minúsculas es decir considera identificadores diferentes
a estudiante y Estudiante, aunque ambos son válidos.

* API: Interfaz de programación de aplicaciones. Conjunto de clases predefinidas que los


programadores puede utilizar. Estas clases se agrupan en paquetes que tienen nombres.

* Secuencias de escape: Una combinación del carácter de escape (en Java: \) con un carácter para
imprimir “algo” especial.

* GUI: Interfaz gráfica de usuario

* Variable: Una ubicación de la memoria de un computador, en donde puede guardarse un valor


para que sea utilizado por un programa. Toda variable tiene un nombre, un tipo, un tamaño y
opcionalmente un valor inicial. Cuando un valor se asigna a una variable, el nuevo valor reemplaza
al anterior.

* Declaraciones de variables: Especificación de los nombres y tipos de las variables

* Operador de asignación: Sirve para asignar un valor a una variable. En Java el signo igual (=).
Se evalúa primero todo lo que está a la derecha del signo igual y se asigna a la variable que se
encuentra a la izquierda.

* Operadores aritméticos: Permiten realizar cálculos matemáticos.

* Operadores de igualdad y relacionales: Permite comparar y evaluar expresiones. Se utilizan en


las condiciones de las instrucciones if.

* Precedencia de operadores: Orden según el cual todos los operadores son ejecutados. Todos
los operadores se evalúan de izquierda a derecha.

Recuerde:

¸ El nombre del archivo en el cual almacene un programa escrito en Java debe ser igual al
nombre de la clase pública que ha definido.

¸ Toda instrucción en Java termina con un punto y coma (;)

¸ Una llave izquierda { y una llave derecha } delimitan el cuerpo de una declaración de:
una clase y de un método.

¸ Los tipos de datos primitivos en Java son: bolean, char, byte, short, int, long, float y
double.

¸ String es un tipo de dato complejo.

¸ Recuerde utilizar tabuladores para indentar su código.

22 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Temas adicionales:

El método main. Este método se utiliza como punto de entrada para la ejecución de programas escritos
en Java, esto no implica de ninguna manera, que todas las clases (programas Java) deban incluir éste
método; únicamente aquellas clases que son ejecutables deben hacerlo. Existen otro tipo de clases que
no contendrán este método, pero que son clases útiles para realizar otro tipo de tareas internas dentro
de una aplicación. Igual sucede con la GUI no todas las clases contienen interfaz gráfica de usuario.

El API de Java. Este conjunto de clases predefinidas y empaquetadas con el JDK las podemos utilizar
en cualquier momento. Existe una gran variedad de clases ya pre-construidas que facilitan la vida a
los programadores, deben emplearse y no tratar de inventar la rueda. Existe una documentación sobre
el API, que se conoce como la especificación del API que se ha adjuntado al CD que acompaña a
ésta guía. La puede encontrar en: <UNIDAD_CD>\JDK6\jdk-1_6_0_doc.zip, en posteriores capítulos
estudiaremos brevemente dicha documentación.

Durante estos primeros capítulos se mencionará en varias ocasiones los términos: objetos y métodos,
que serán cubiertos en el segundo bimestre, pero es necesario que se familiarice con ellos por lo que
es recomendable realizar el estudio del caso práctico que se desarrolla en el libro guía, que en un
resumen muy breve se trata de la construcción de un simulador utilizando técnicas de análisis, diseño
y construcción orientada a objetos.

Documentación adicional:

Descripción del Medio Archivo disponible en CD


Ahora que ha comenzado a escribir sus primeros programas en un lenguaje de
programación es importante que se relacione con conceptos como: legibilidad
de un programa y convenciones de código, para lo cual en la sección de
anexos encontrará en detalle las convenciones de código que se emplean en
el lenguaje Java. Al trabajar con un IDE como NetBeans, algunas convenciones ConvencionesCodigoJava.pdf
de programación son ya implementadas, especialmente lo relacionado con la
indentación. Si por algún motivo su código no cumple con las convenciones de
indentación NetBeans le ayudará presionando de manera simultánea las teclas
alt.+ shift + F
Temas finales de cada uno
Dentro del texto base se desarrolla un ejemplo práctico utilizando POO, es
de los capítulos del libro base
necesario que lo lea y estudie a detalle terminando cada capítulo.
[DD2008]

Interacción con el entorno virtual de aprendizaje:

Dentro del entorno virtual de aprendizaje encontrará lo siguiente:

¸ Foro. El tema puede encontrarlo en las evaluaciones a distancia del primer bimestre y se
planteará en el foro en el momento adecuado.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 23


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

Actividades

Resuelva los ejercicios de Auto evaluación (pag. 68) del Capítulo 2 del libro base
[DD2008]

1. Suponga que existe un programa que contiene una clase pública denominada Estudiante. ¿Cuál
debe ser el nombre y la extensión del archivo en donde se almacenará?

a. ( ) Estudiante.txt

b. ( ) Estudiante.class

c. ( ) Estudiante.java

2. Señale los identificadores que son válidos en Java para clases y variables. En caso de no ser válidas
indique el porqué:

a. Clases:

i. ( ) Estudiante
ii. ( ) GerenteGeneral
iii. ( ) $Persona
iv. ( ) Cuentas_Por_Cobrar
v. ( ) Public

b. Variables:

i. ( ) B
ii. ( ) Area
iii. ( ) montoTotal
iv. ( ) __
v. ( ) Class

3. Señale con una R para los operadores relacionales y de igualdad, con una A para los operadores
aritméticos que maneja Java y con una X si no aplica ninguno de los anteriores:

a. ( ) x

b. ( ) %

c. ( ) =

d. ( ) ¡=

e. ( ) ==

f. ( ) ≤

g. ( ) >=

24 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

4. Suponga que tiene un programa escrito en Java que declara 2 variables de tipo entero a y b que
se les asigna los valores 10 y 3 respectivamente. Existe una tercera variable c que se le asigna el
siguiente valor: c = a / b; ¿Cuál es el valor de c?

a. ( ) 3.33

b. ( ) 3

c. ( ) 0

5. Analice el siguiente programa y señale los números de líneas en donde existan errores.

1 public class EncuentraErrores{


2 public static void main (Strign args {
3 int a = 5;
4 int b = 2
5 int c = 0;
6
7 c = 5 % 2;
8 System.out.println(’‘El módulo es: ‘’ c);
9 }
10 )

Ilustración 11 Programa de ejercicio con errores

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 25


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

Capítulo 3 Instrucciones de control

Datos generales

Introducción a los applets de Java.


Texto base Instrucciones de control: Parte 1
Instrucciones de control: Parte 2
Capítulo
76 - 111
Páginas 113 - 163 Horas de estudio empleadas para el desarrollo del contenido 20 horas
165 - 210

Propósito:

El propósito de éste capítulo es aplicacar flujogramas y pseudocódigo como herramientas


que ayuden a resolver problemas, aprender a utilizar las estructuras de control existentes en
la mayoría de lenguajes de programación y ejercitarse en la resolución de problemas que
serán implementados como programas computacionales.

Conceptos clave:

Para éste capítulo es necesario que realice una lectura del capítulo 3 del libro, en donde
se hace una introducción a las clases y los objetos. Es fundamental que lea y comprenda
los conceptos que se muestran en el capítulo 3, debido a que son fundamentales para
el desarrollo dela materia.

El propósito de este capítulo es aprender a resolver problemas y verlos plasmados como un programa
escrito en Java. Para lo cual es necesario aprender a utilizar técnicas de programación estructura,
especialmente las estructuras de control, ciclos repetitivos y demás artilugios de programación que nos
ayudarán a resolver problemas de bajo y mediano nivel de complejidad (los de complejidad alta, serán
abordados en próximas materias). Las técnicas de programación estructurada le ayudarán en un futuro
en la construcción y manipulación de Objetos.

* Cuadros de dialogo: Son utilizados por muchos programas y son ventanas pequeñas que sirven
para mostrar mensajes al usuario o solicitar ingreso de información. Revise la página 96 del libro
base.

* Algoritmos: Es una serie de acciones que se ejecutan en un orden específico para resolver un
problema. Existe algoritmos no computacionales y computacionales.

* Pseudocódigo: Lenguaje informal que ayuda a los programadores a desarrollar algoritmos sin
tener que preocuparse por la sintaxis de un lenguaje. No es un lenguaje de programación de
computadoras, pero ayuda al programador a organizar un programa antes de intentar escribirlo
en un lenguaje de programación.

* Control del programa: Es el orden en el que se ejecutan las instrucciones (acciones) en un


programa. Generalmente las instrucciones se ejecutan una después de otra en el orden que están
escritas. Las estructuras de control ayudan a especificar este orden.

26 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

* Ejecución secuencial: Las sentencias de un programa se ejecutan una después de otra en el


orden en que están escritas.

* Tipos de datos primitivos: Java cuenta con los siguientes tipos de datos primitivos9:

Tipo Tamaño en bits Valores


boolean true o false
char 16 ‘\u0000’ a ‘\uFFFF’ (0 a 65535)
byte 6 -128 a +127
short 16 -32768 a +32767
int 32 -2147483648 a +2147483647
-9223372036854775808 a
long 64 +9223372036854775807

Rango negativo:
-3.4028234663852886E+38 a
-1.40129846432481707E-45
float 32
Rango positivo:
1.40129846432481707E-45 a
3.4028234663852886E+38

Ranto negativo:
-1.7976931348623157E+308 a
-4.94065645841246544E-324
double 64
Rango positivo:
4.94065645841246544E-324 a
1.7976931348623157E+308

Tabla 1 Tipos de datos primitivos en Java

* Transferencia de control: Consiste en especificar que la siguiente instrucción a ejecutarse tal vez
no se la siguiente en la secuencia. Se consigue con tres sentencias de control:

¸ Estructura de secuencia. Esta estructura está integrada en Java, la computadora ejecuta las
instrucciones de Java una después de otra, en el orden que están escritas.

¸ Estructura de selección. Se utilizan para elegir entre los cursos alternativos de acción. Java
cuentas con tres estructuras de este tipo: if, if…else y switch.

¸ Estructura de repetición. Java cuenta con tres10 estructuras de este tipo: for, while,
do…while.

Todos los programas pueden escribir utilizando éstas tres estructuras, combinándolas de
las dos maneras apilándolas (escribir estructuras después de otras) y anidándolas (escribir
estructuras dentro de otras).

9. También existen los tipos de datos complejos haciendo referencia a las clases de la POO.
10. En la última versión de Java existe una variación que simplifica el ciclo for, que suele llamarse for in.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 27


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

* Diagrama de actividad: Modelo el flujo de trabajo de una parte de un sistema de software.


Existen otras herramientas que realizan el mismo trabajo que los diagramas de actividad. Es
recomendable que utilice los diagramas de flujo que son descritos en la materia de Metodología
y Tecnología de la Programación, que es parte de su pensum de estudio actual.

* Bloque de código: Una o más sentencias que están encerradas entre llaves ({ y })

* Estructura de selección if simple: Ejecuta las instrucciones que están dentro del bloque if si
la condición es verdadera, si la condición se cumple. Caso contrario se ignora el bloque if y se
ejecuta en orden la siguiente instrucción.

* Estructura de selección if…else: Permite especificar una acción a realizar cuando la condición es
verdadera y otra distinta cuando la condición es falsa. Es decir ejecuta el bloque if si la condición
se cumple, caso contrario se ejecuta el bloque else. Cuidado con el problema del else suelto,
para evitarlo siempre se debe emplear llaves, aunque exista una sola sentencia, para delimitar
cada bloque.

Existe el operador condicional (?:) también llamado if…else de una sola línea, es un operador
ternario.

* Estructura de repetición while: Permite al programador especificar que un programa debe


repetir un bloque de código mientras cierta condición se cumpla. Cuando deje de cumplirse la
condición, en este punto la repetición terminará y se ejecutará la primera instrucción que esté
después de la estructura de repetición. Traducido del inglés la palabra while significa mientras así
que podríamos decir: “mientras la condición se cumpla repetir”. Para utilizar este ciclo repetitivo
se suele trabajar con:

¸ Contador: También llamado variable de control, que permite controlar el número de veces
que debe repetirse la ejecución del bloque de instrucciones del while. A esta repetición
controlada comúnmente se la llama repetición definida. Cuando se trabaja con un contador
se debe considerar lo siguiente: existe una variable que es de control, el valor inicial de
la variable de control, la cantidad de incremento / decremento con la que se modifica la
variable de control y la condición que evalúa el valor final de la variable de control.

¸ Valor centinela: También llamado valor de señal, valor de prueba o bandera. Se utiliza
para indicar el fin de la introducción de pasos. A ésta repetición se la llama repetición
indefinida.

* Formato de números: Especificar la forma en que se presentarán los números, es decir, cuántos
decimales se presentaran, cuántos dígitos de la parte entera se presentan, como mínimo. En Java
se utiliza el objeto DecimalFormat que se encuentra en el paquete java.text para dar formatos a
números basándose en un patrón determinado.

* Conversión de tipos: Transformar de un tipo de dato hacia otro tipo de dato, utilizando el
operador unario de conversión de tipo, el mismo que se forma colocando paréntesis alrededor
del nombre de un tipo. Éste operador se asocian de izquierda a derecha. Ejemplo es necesario
transformar un entero a un número real, En Java se puede hacer así: (double)valorEntero, de
donde (double) es el operador de conversión y valorEntero es una variable de tipo int.

28 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Para la conversión de tipos es necesario considerar lo siguiente:

¸ Conversión explícita, cuando es el programador quién señala la conversión que debe


realizarse, utilizando el operador de conversión de tipo. Es necesario ser cuidadoso con
cuando se trata de convertir valores reales a enteros, porque Java hace un truncamiento
(eliminación) de la parte decimal del valor real no realiza un redondeo.

¸ Promoción o conversión implícita, cuando es el lenguaje de programación que realiza


la conversión de tipos de datos, generalmente esta promoción se realiza cuando existen
operandos de diferentes tipos de datos y siempre el resultado será del tipo de dato más
grande11 o de tipo real. Ejemplo si existen dos variables, una de tipo entero y otra de tipo
long y se hace una operación de suma, el resultado será de tipo long, por que el valor
entero fue promovido a long. Si existen un par de variables, una de tipo short y otra de tipo
float y se las multiplica, el valor resultante será de tipo float.

* Operadores de asignación compuestos: Java cuenta con varios operadores de asignación


compuestos para abreviar las expresiones de asignación.

* Operadores de incremento y decremento: Operadores unarios que incrementan / decrementan


en una unidad a una variable.

¸ Prefijo: Si el operador se coloca antes de la variable. Primero incrementa / decrementa el


valor de la variable y después el nuevo valor de la variable se utiliza en la expresión que
aparece.

¸ Postfijo: Si el operador se coloca después de la variable. Primero se utiliza el valor actual


de la variable en la expresión y luego se incrementa / decrementa.

* Instrucción de repetición for: Es un ciclo repetitivo que implementa los detalles de la repetición
controlada por contador en una sola línea de código. La variable de control se declare e inicializa,
a continuación, el programa comprueba la condición de continuación de ciclo, después de
ejecutar el cuerpo del ciclo, el programa incrementa la variable de control y realiza la prueba de
control de ciclo nuevamente, hasta que la variable de control no pase la prueba.

* Instrucción for in (for mejorado): Es un ciclo repetitivo que no utiliza un contador. Su uso es
indicado para colecciones de objetos, como por ejemplo: arreglos, matrices, listas, etc. En el
punto 7.6 puede ver un detalle de éste “nuevo” ciclo repetitivo..

* Configuración regional: Es característica que permite los números, monedas, etc. se presenten
según las normas y reglas propias de cada país. En Java se utiliza la clase Locale.

* Instrucción de repetición do…while: Evalúa la condición de continuación de ciclo después de


ejecutar el cuerpo del ciclo; por lo tanto, el cuerpo del ciclo siempre se ejecutará cuando menos
una vez.

* Instrucción de selección múltiple switch: Se utiliza para realizar distintas acciones, con base
a posibles valores de una variable o expresión entera. Consiste en un bloque que contiene una
secuencia de etiquetas case y caso default opcional. Cuando el flujo de control llega a switch el
programa evalúa la expresión que va después de la palabra switch. Lo compara con cada una

11. Según el tamaño en bits que se mostró en la Tabla 1 Tipos de datos primitivos en Java

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 29


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

de las etiquetas case y si encuentra alguna se ejecuta las sentencias de esa etiqueta case, sino se
ejecuta la etiqueta default. Cada etiqueta case contiene una sentencia break que hace que el
bloque switch termine y se continúe con la siguiente instrucción.

* Bloques etiquetados: Se denominada de esta manera a un grupo de sentencias encerradas entre


llaves ({}) precedidas de una etiqueta.

* Sentencias break y continue: Estas sentencias alteran el flujo de control especialmente en los
ciclos repetitivos.

¸ break: Permite que un programa se salga de los ciclos while, for, do…while o switch en
el cual aparece. Existe sentencias break etiquetadas que permite salir de estructuras de
control anidadas, pasando el control del programa a la instrucción que se encuentra luego
de la llave de cierre del bloque etiquetado.

¸ continue: Procede con la siguiente iteracción (repetición) del ciclo while, for o do…while,
saltándose las sentencias que se encuentran luego de la sentencia continue. De igual forma
existen sentencias continue etiquetadas que permiten saltar las sentencias que están bajo
ella y el control del programa se ubica al inicio de la etiqueta.

* Operadores Lógicos: Permiten formar condiciones más complejas combinando simples


soluciones. Los operadores que Java posee son: y lógico (&&), o lógico (||), o exclusiva (^) y
negación lógica (!). Tenga presente la evaluación de corto circuito en condiciones complejas.

Cuándo utilizar cada uno de los ciclos repetitivos

Es en verdad muy complejo el tratar de determinar cuando utilizar uno u otro ciclo repetitivo,
especialmente porque existen equivalencias entre ellos. Lo que existen son recomendaciones y
nociones generales de cuando usar alguno de ellos. Así se puede decir: Un ciclo for se puede utilizar
cuando se sabe a ciencia cierta cuántas iteracciones son necesarias realiza y sobre todo cuando la
variable que hace las veces de contador no debe ser modificada en alguna sentencia que forma el ciclo
repetitivo. Se recomienda usar el ciclo while, cuando la variable de control de ciclo debe incrementarse/
decrementarse según una o varias condiciones. Debe utilizar un ciclo do...while, cuando necesita
ejecutar, las sentencias del ciclo repetitivo, por lo menos una vez. Finalmente utilizará el for in para
tareas de consulta de datos, más no para asignación.

Recuerde:
¸ Cuando trabaje con ciclos repetitivos while do…while, debe utilizar una variable de
control. Debe ser precavido con ella, especialmente con el incremento o decremento que
debe sufrir ésta variable para que el ciclo pueda terminar.

¸ No olvide incluir en cada bloque de las etiquetas case de una sentencia switch la instrucción
break.

¸ En una estructura de selección o de repetición pueden anidarse una o varias sentencias,


si solamente existe una instrucción se puede obviar el uso de las llaves, caso contrario las
llaves son obligatorias. Por claridad es recomendable siempre incluir las llaves.

¸ Los operadores relacionales de igualdad no se aplican a las variables de tipo String. Si


necesita comparar 2 cadenas de caracteres (2 String) debe utilizar el método equals de la
clase String.

30 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Temas adicionales:

¸ Para resolver cualquier problema es necesario entender lo siguiente:

¸ Cuáles son las entradas que el usuario ingresará. Datos de entrada

¸ Cuál es el proceso que se debe realizar. Proceso

¸ Cuál es el resultado que el usuario espera. Datos de salida.

Gráficamente:

DATOS
DATOS SALIDA
ENTRADA

PROCESO

Existen diferentes técnicas que permiten determinar de distinta manera estas partes esenciales
de cualquier problema. Algunos usarán diagramas de actividades, otros diagramas de flujo, etc. Lo
importante es que entendiendo estas partes es posible analizar, diseñar, construir en un lenguaje de
programación cualquier problema.

Una vez que se ha construido el diagrama de flujo es necesario realizar pruebas de la solución, estas
pruebas se realizan de manera manual y generalmente se las denomina: prueba manual o corrida en
frío. Para realizar el programador escoge un conjunto de datos de entrada, ejecutando manualmente
cada sentencia del programa fuente (escrito en pseudocódigo o diagrama de flujo) y verificando que los
resultados obtenidos son los esperados de acuerdo al conjunto de datos de entrada.

Series numéricas, comúnmente se utilizan este tipo de problemas para realizar prácticas de los conceptos
de estructuras aprendidas. Para poder resolver este tipo de problemas se debe aplicar el principio de
divide y vencerás, es decir hacer más pequeño el problema, generalmente debemos analizar a detalle
cada miembro de la serie e identificar que operaciones debo realizar para obtener ese elemento,
generalmente operaciones como determinar si es primo, perfecto, factorial, potenciación, etc.

Documentación adicional:

Descripción del medio Archivo disponible en Cd


Los pasos para dar solución a un problema se anexan también, son descripciones
sencillas, que de ninguna manera pretenden reemplazar los contenidos de la GUIApoo.pdf
materia de metodología de la programació
Para comenzar a familiarizarnos con todos los conceptos expresados en este
capítulo, es necesario realizar muchos ejercicios, es así que en la sección de
anexos encontrará varios problemas planteados y su implementación de Java.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 31


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

Interacción con el entorno virtual de aprendizaje:

Foro. El tema se encuentra especificado en los trabajos a distancia y se planteará en el


EVA en el momento adecuado.

Actividades

Resuelva los ejercicios de Auto evaluación (pag. 155 y 205) de los Capítulos 4 y 5 del
libro base [DD2008]

Construya elementos de interfaz gráfica de usuario como se muestra en los ejercicios desarrollados en
el libro.

1. Construya un programa que permita a un usuario ingresar 3 números y determinar cual de ellos
es mayor.
2. Construya un programa que le presente en pantalla las fórmulas para calcular el área y perímetro
de un triángulo, rectángulo, y círculo. El programa debe presentar un menú y debe permitir al
usuario ingresar un número que corresponda a la figura seleccionada.
3. Elabore 3 programas distintos que permitan presentar en pantalla los primeros 25 números pares.
Cada programa debe ser desarrollado utilizando los ciclos for, while y do…while.
4. Diseñe un programa para convertir una longitud dada en metros a sus equivalentes en
centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 centímetros, 1 pulgada =
2.54 centimetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.
5. Una institución benéfica europea ha recibido tres donaciones en soles, dolares y marcos. La
donación será repartida en tres rubros: 60% para la implementación de un centro de salud,
30% para un comedor de niños y el resto para gastos administrativos. Diseñe un algoritmo y un
programa que determine el monto en euros que le corresponde a cada rubro. Considere que: 1
dólar = 3.52 soles, 1 dólar = 2.08 marcos, 1 dólar = 1.07 euros.
6. En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas
de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo y un programa para
determinar la velocidad promedio de un atleta en km/hr. Considere que: 1 hora = 60 minutos, 1
minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.
7. Calcular el tiempo equivalente en horas, minutos y segundos a un número de segundos leído
8. Construya un programa que permita ingresar un número y luego presente en pantalla si el número
es perfecto.
9. Elabore un programa que genere los 12 primeros elementos de la serie de fibonacci. Para generar
los elementos de la serie de fibonacci considere lo siguiente:
a. El siguiente elemento de la serie depende de la suma de los 2 anteriores.
b. Los primeros elementos no se generan según (a) sino que son valores iniciales.

10. Calcule el resultado de sumar los n primeros términos de las siguientes series:

S = 1/2 + 2/4 + 3/6 + 4/8 + 5/10 + ...


S = 1/2 + 2/4 + 3/6 + 5/8 + 7/10 + 11/12 + 13/14
+ ...
S = (1!)/1 + (2!)/3 + (3!)/5 + (4!)/7 + (5!)/9 + ...

32 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


PRIMER BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Capítulo 4: API Básica de Java, métodos de la calse Math

Datos generales

[DD2008] Métodos, específicamente el punto 6.3 Métodos static, campos static y la clase
Texto base
Math
Capítulo
Páginas 214 - 219 Horas de estudio empleadas para el desarrollo del contenido 7 horas

Propósito:

El propósito de éste capítulo es aprender a utilizar la documentación que Java posee y explorar
las herramientas incorporadas en Java que ayudan a los programadores en sus labores.

Conceptos clave:

Antes que un capítulo completo esta sección hablará y mostrará el uso de varios métodos
que permiten trabajar con valores numéricos.

¸ Clases estáticas: Clases que pueden llamarse sin la necesidad de crear una instancia de
las mismas. Ejemplo: la clase Math.

¸ Métodos estáticos: Métodos que pertenecen a una clase estática.

¸ Argumentos: Son los valores que se pasan a los métodos y que van encerrados entre
paréntesis.

Recuerde:
* No invente la rueda, utilice los métodos ya creados.

* Para llamar a un método debe utilizar el operador punto (.).

* Debe incluir los argumentos en el orden especificado por el método, caso contrario se produce
un error de compilación.

Temas adicionales:

Las variables de tipo String corresponden a un tipo de dato complejo, es una clase. Cuando se trabaja
con este tipo de variables algunos operados no funcionan de la manera esperada, ejemplo el operador
de igualdad. Para comparar dos variables String debemos emplear un método que está presente en
dicha clase, éste método se llama equals.

Para conocer el API, Java ha desarrollado una documentación utilizando comentarios de documentación
y la herramienta javadoc. Los comentarios de documentación sirven para la generación de este tipo de
documentación, que no es más que un conjunto de páginas Web que muestran en un formato estándar
las clases y los métodos que estas poseen.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 33


Guía didáctica: Lenguaje de Alto Nivel PRIMER BIMESTRE

Documentación adicional:

Descripción del medio Archivo disponible en CD

API Java, es un anexo que muestra la manera cómo se debe utilizar la documentación
Jdk-1.6_10-doc.zip
existente del API

Interacción con el entorno virtual de aprendizaje:

En la sección de material encontrará una clase que contiene varios métodos generalmente
utilizados cuando se trabaja con series numéricas.

Actividades

1. Elabore un programa que calcule la raíz cuadrada de un número.

2. Elabore un programa que permita sumar los primeros n términos de la siguiente serie:

3. Busque en la documentación del API de Java información sobre la clase NumberFormat, liste
sus atributos. También busque información sobre la clase Locale y mencione la información que
considere relevante sobre esta clase.

34 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SEGUNDO BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

SEGUNDO BIMESTRE
Objetivos específicos
1. Aprender crear y trabajar con m{etodos propios de Java y m{etodos creados por el
programador.

2. Comprender el funcionamiento y manejo de los arreglos cmmo estructura de datos.

3. Comprender algunos conceptos fundamentales de programación orientada a objetos.

Contenidos
CAPÍTULO V: MÉTODOS

5. CAPÍTULO 5: Métodos
5.1 Propósito................................................................................................................................37
5.2 Conceptos clave.....................................................................................................................37
5.3 Documentación adicional......................................................................................................38
5.4 Interactividad a través de los Foros del Entorno virtual de aprendizaje....................................38
5.5 Actividades.............................................................................................................................38

CAPÍTULO VI: ARREGLOS

6. CAPÍTULO 6: Arreglos
6.1 Propósito:..............................................................................................................................39
6.2 Conceptos clave.....................................................................................................................39
6.3 Declaración y acceso a los elementos.....................................................................................39
6.4 Recorrer un arreglo................................................................................................................40
6.4.1 Como recorrer un arreglo multidimensional............................................................................41
6.5 Documentación adicional......................................................................................................44
6.6 Interactividad en el Entorno Virtual de Aprendizaje................................................................44
6.7 Actividades.............................................................................................................................44

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 35


Guía didáctica: Lenguaje de Alto Nivel SEGUNDO BIMESTRE

CAPÍTULO VII: Programación basada en objetos

7.CAPÍTULO VII: Programación basada en objetos


7.1Propósito....................................................................................................................................45
7.2Conceptos clave.........................................................................................................................45
7.3Conceptos básicos......................................................................................................................45
7.3.1Objeto.....................................................................................................................................45
7.3.2Clase.......................................................................................................................................47
7.3.3Atributos..................................................................................................................................47
7.3.4Operaciones............................................................................................................................48
7.3.5Ligas y Asociación....................................................................................................................50
7.4Símbolos UML básicos para representar objetos..........................................................................51
7.5Documentación adicional...........................................................................................................57
7.6Interactividad en el Entorno Virtual de Aprendizaje.....................................................................58
7.7Actividades.................................................................................................................................58

CAPÍTULO VII: Herencia

8.CAPÍTULO 8: Herencia
8.1Propósito....................................................................................................................................59
8.2Conceptos clave.........................................................................................................................59
8.3Interactividad en el Entorno Virtual de Aprendizaje.....................................................................60
8.4Actividades.................................................................................................................................60

36 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SEGUNDO BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Desarrollo del aprendizaje

Capítulo 5: Métodos

Datos generales

Texto base [DD2008] Métodos: un análisis más detallado.


Capítulo
Páginas 212 - 259 Horas de estudio empleadas para el desarrollo del contenido 14 horas

Propósito

El propósito de éste capítulo es comprender el significado de método en el mundo real y


codificar métodos en el lenguaje de programación Java.

Conceptos clave

Como veremos más adelante los métodos representan el comportamiento u operaciones


de un objeto. Imagínese a usted como un objeto, en el contexto12 de locomoción o
movimiento, sus comportamientos u operaciones son: caminar, correr, saltar, inclinarse,
alzar un pie, alzar una mano.

Analicemos algunos de estos comportamientos para el objeto persona en el contexto de locomoción.

El comportamiento saltar; si a usted le ordenan ¡saltar!, seguramente se preguntara ¿hacia dónde? o


¿qué altura?; es decir, para poder ejecutar la acción requiere cierta información, en programación a
esto se le conoce como argumentos o parámetros.

El comportamiento caminar, ¿Qué necesita saber para caminar?, casi nada simplemente camina y ya,
claro esto no se aplica para los seres humanos, por que antes de dar un paso lo pensamos y establecemos
un rumbo. Pero si el objeto fuese un muñeco de cuerda, la acción caminar simple y llanamente se
ejecutaría y ya, sin necesidad de información previa. Para este caso no se requieren argumentos.

Algunos comportamientos devuelven un resultado o confirmación de ejecución. El comportamiento


inclinarse, podría devolver el ángulo de inclinación, o simplemente una confirmación de ejecución de
la acción.

Todo lo dicho se traduce a que los comportamientos o métodos de los objetos representan acciones
del mundo real que pueden o no recibir argumentos o parámetros y que pueden o no retornar un valor
como resultado o como confirmación de ejecución de la acción.

Los métodos en Java son el equivalente a los procedimientos y funciones en otros lenguajes, reciben
aquí el nombre de métodos en razón de que la filosofía que prima en Java es la de desarrollo orientado
a objetos.

12. Un espacio límite donde algo tiene validez

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 37


Guía didáctica: Lenguaje de Alto Nivel SEGUNDO BIMESTRE

En notación pseudo BNF, lo expuesto se expresaría como:

<modificador_acceso> <tipo_dato_retorno> <nombre_metodo> (<argumentos>);

Donde:

<modificador_acceso> := public, private, protected


<tipo_dato_retorno>:= int, double, char, String, Object, etc
<nombre_metodo>:= un identificador válido en Java
<argumentos>:=<tipo_dato> <identificador>
<tipo_data> := int, double, char, String, Object, etc
<identificador>:= un identificador válido en Java

Tenga siempre en mente la estructura de declaración de un método. Otro cosa importante que debe
tener en mente es la forma de invocar un método de alguna clase, bien sea del API de Java o definida
por el usuario. La forma correcta es Objeto.metodo. Mire la sección 6.4 en las páginas 190 y 191,
fíjese en las llamadas a los métodos de la clase Math. Ej.: Math.max(5, 6); donde Math es el objeto (en
realidad la clase), max es el método y 5 y 6 son los argumentos pasados al método.

Documentación adicional

Para ampliar la información del texto base, se dispone de bibliografÍa adicional, que
estará disponible como anexo en la guía de estudio o en digital, a éstos últimos recursos
podrá acceder a través del entorno virtual de aprendizaje.

Archivo disponible en el
Descripción del documento
EVA
En las primeras secciones del documento encontrará una explicación sobre
Metodos.pdf
métodos, sobrecarga y constructores.

Interactividad a través de los Foros del Entorno virtual de aprendizaje.

Foro. El tema se encuentra planteado en el trabajo a distancia y se planteará en el EVA,


en el momento adecuado.

Actividades

Resuelva los ejercicios de Auto evaluación (pag. 251) del capítulo 6 del libro base
[DD2008]

1. Cree una clase abstracta que contenga métodos para: determinar si un número es primo, par,
impar, obtener un elemento de la serie de Fibonacci dada su posición y un método que ingresado
un número busque y presente el primer número primo superior a ese número.

38 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja


SEGUNDO BIMESTRE Guía didáctica: Lenguaje de Alto Nivel

Capítulo 6 Arreglos

Datos generales

Texto base [DD2008] Arreglos


Capítulo
Páginas 261 - 324 Horas de estudio empleadas para el desarrollo del contenido 21 horas

Propósito:

El propósito de éste capítulo es comprender el significado de un arreglo de datos en el


mundo real y codificar arreglos de datos en el lenguaje de programación Java.

Conceptos clave

El manejo de arreglos en cualquier lenguaje de programación es un aspecto clave para


escribir software. El capítulo 6 del texto aborda de forma completa el manejo de arreglos
en java. Siga paso a paso cada ejemplo que se plantea y trate de hacer variaciones.
Transcriba todos los listados de código y ejecutes. Para saber más, siga la ejecución paso
a paso y vaya viendo como van cambiando los valores de las variables.

Declaración y acceso a los elementos

Las cosas importantes que debe tener siempre en mente son:

¿Cómo declarar arreglos?

¿Cómo establecer la dimensión de un arreglo?

¿Cómo accesar a un elemento del arreglo, bien sea para leer o modificar el valor?

Para ayudarle a mantener en mente las respuestas a estas preguntas, propongo el siguiente resumen en
notación pseudo BNF13, donde:

Símbolo Significado
<xxxxxx> Un elemento del lenguaje o valor a reemplazar
[] Opcional
xxxx Un elemento del lenguaje, obligatorio y fijo.

Declarar un arreglo

[<modificador_ambito>] <tipo_dato> <nombre_ arreglo>[]

= new <tipo_dato>[<dimension>|,<dimension>|,<dimension>|...];

13. BNF es un acrónimo para “Backus Naur Form”.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 39


Guía didáctica: Lenguaje de Alto Nivel SEGUNDO BIMESTRE

Ej.:

Una variable como arreglo unidimensional de enteros de longitud 10

// Una variable como arreglo unidimensional de enteros de longitud 10


int arregloEntero[] = new int[10];

Un atributo como arreglo bidimensional de cadenas de caracteres de longitud 10 x 20

// Un atributo como arreglo triidimensional de cadena de caracteres de longitud 10 x 20


private String arregloString[] = new int[10, 20];

Un atributo como arreglo tridimensional de Objetos de longitud 10 x 20 x 60

// Un atributo como arreglo triidimensional de Objetos de longitud 10 x 20 x 60


private Object arregloObjetos[] = new char[10, 20, 60];

Accesar al elemento en la posición 5 del arregloEntero anteriormente declarado e y mostrarlo en un


cuadro de dialogo.

int elemento = arregloEntero[4]; //El indice de los arreglos en Java empiezan en 0


JOptionPane.showMessageDialog(null, “El quinto elemento del arreglo: ” + elemento);

Establecer un nuevo valor para elemento en la posición 5 del arregloEntero anteriormente


declarado.

arregloEntero[4] = 1500; //El índice de los arreglos en Java empiezan en 0

Recorrer un arreglo

Los arreglos son estructuras de datos, donde cada elemento esta identificado por un índice de fila y un
índice de columna. La estructura de control natural para recorrer un arreglo es la sentencia for, aunque
se puede utilizar un while o cualquier variante de este.

La estructura de control for, describe un ciclo repetitivo o iterativo, que parte desde un valor inicial
hacia un valor final o límite. Los arreglos están limitados a sus dimensiones, un índice, bien sea de fila
o columna, no puede apuntar a un elemento más allá de la dimensión de fila o columna de un arreglo.
Si relaciona estos dos principios, encontrara una relación natural.

En java, al igual que C, los índices empiezan en cero. Esto significa que si la dimensión de un arreglo es
1000, los índices de sus elemento sólo podrán tomar valores entre 0 y 999. Esto traducido a un ciclo
iterativo for, quedaría expresado como:

for (int i = 0; i < 1000; i++)

La sentencia anterior sirve para generar números desde 0 hasta 999. Dentro del ciclo repetitivo, en
cada iteración la variable i va tomando valores entre 0 y 999, justamente lo que necesitamos para
recorrer las posiciones del arreglo.

0 1 2 3 4 ----------------- 997 998 999

Fig. ¿. Posiciones de un arreglo

40 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja