You are on page 1of 43

Fundamentos de

Programacin
Computacional
Vicerrectora Acadmica
Cuaderno de Apuntes

Estimado Estudiante de AIEP, en este Cuaderno de Apuntes, junto a cada Aprendizaje Esperado que se te
presenta y que corresponde al Mdulo que cursas, encontrars Conceptos, Ideas Centrales y Aplicaciones
que reforzarn el aprendizaje que debes lograr.

Esperamos que estas Ideas Claves entregadas a modo de sntesis te orienten en el desarrollo del saber, del
hacer y del ser.

Mucho xito.-

Direccin de Desarrollo Curricular y Evaluacin

VICERRECTORA ACADMICA AIEP.

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

I. UNIDAD DE APRENDIZAJE: ALGORITMOS Y PROGRAMACIN EN


PSEUDOLENGUAJE.

Aprendizaje Esperado 1

1. APLICAN EL LGEBRA DE CONJUNTOS EN LA RESOLUCIN DE


PROBLEMAS

1.1 lgebra: (del rabe: al-jebr) Es la rama de las matemticas que


estudia la cantidad considerada del modo ms general posible. Puede
definirse como la generalizacin y extensin de la aritmtica. A
diferencia de la aritmtica elemental, que trata de los nmeros y las
operaciones fundamentales, en lgebra -para lograr la generalizacin-
se introducen adems smbolos (usualmente letras) para representar
parmetros (variables) o cantidades desconocidas (incgnitas); las
expresiones as formadas son llamadas frmulas o ecuaciones
algebraicas, y expresan una regla o un principio general. El lgebra
conforma una de las grandes reas de las matemticas, junto a la
teora de nmeros, la geometra y el anlisis. (Tutellus, 2015).

1.2 Conjuntos: Coleccin de objetos bien definidos, de tal manera que se


puede decir siempre que si un objeto pertenece o no al conjunto al
cual se refiere. La nomenclatura de los conjuntos se determina entre
llaves { }. Los conjuntos se nombran con letras maysculas. Algunos
nombres de conjuntos seran A, B, C, , Z. Por ejemplo: A = {vocales}.
Los conjuntos tambin se representan por medio de Diagramas de
Venn-Euler que son formas grficas de representar conjuntos.
(Fuenlabrada de la Vega Trucios, 2000).

Figura 1: Diagrama de Venn-Euler que representa al Universo y


Conjuntos dentro del Universo.
Fuente: (Fuenlabrada de la Vega Trucios, 2000).

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

1.3 lgebra de Conjuntos: O Teora de Conjuntos, corresponde al estudio


de las operaciones bsicas que pueden realizarse con conjuntos, como
la unin, interseccin y complementacin.

1.4 lgebra booleana: Son reglas algebraicas, basadas en la teora de


conjuntos, para manejar ecuaciones de lgica matemtica.

ACTIVIDAD 1: El docente del mdulo de Introduccin a las Matemticas


desea crear una aplicacin que permita actualizar y organizar la
informacin bsica de sus estudiantes, como: nmero de matrcula,
nombres, apellidos, fecha de nacimiento y sexo. Para comenzar a
desarrollar este sistema, lo primero que debe hacer, es un estudio de los
requerimientos, y en particular, definir algunos criterios de bsqueda, para
lo cual, solicita a un estudiante de la Escuela TIC de AIEP, crear los
siguientes conjuntos en un diagrama de Venn-Euler:

Tabla 1: Requerimientos de conjuntos.


Conjunto Descripcin
A Conjunto formado por todos los estudiantes del curso.
B Conjunto formado por todos los estudiantes de sexo masculino.
C Conjunto formado por todos los estudiantes nacidos antes del ao 1997.
Fuente: (Cataln Carrasco, 2016).

La lista del curso con los datos de los estudiantes se muestra en la siguiente
tabla:

Tabla 2: Datos de los estudiantes del curso.


N Mat. Nombres Apellidos Fecha de Nacimiento Sexo
154678 Julio Florencio Vidal Hernndez 23/11/1990 Masculino
154658 Pamela Sofa Prez Ibez 09/09/1995 Femenino
154473 Daniel Alejandro Toro Daz 18/05/1999 Masculino
154281 Fernando Andrs Santander Hueche 01/03/1998 Masculino
154044 Rayn Anglica Calpucura Ran 20/12/1997 Femenino
154605 Valeria Priscilla Inostroza Salas 14/07/1998 Femenino
154502 Carlos Esteban Contreras Palacios 22/05/1999 Masculino
154700 Patricio Toms Barra Quilodrn 19/08/1997 Masculino
154643 Luis Anselmo Llanquileo Soriano 27/02/1995 Masculino
154662 Camila Daniela Gutirrez Ibez 10/08/1996 Femenino
Fuente: (Cataln Carrasco, 2016).

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

ACTIVIDAD 2:

Figura 2: Caracterizacin de consumidor de productos.


Fuente: (Galdmez, 2014).

En una encuesta realizada a 150 personas, sobre sus preferencias de tres


productos A, B y C, se obtuvieron los siguientes resultados: 82 personas
consumen el producto A, 54 el producto B, 50 consumen nicamente el
producto A, 30 slo el producto B, el nmero de personas que consumen
slo B y C es la mitad del nmero de personas que consumen slo A y C, el
nmero de personas que consumen slo A y B es el tripe del nmero de las
que consumen los tres productos y hay tantas personas que no consumen
los productos mencionados como las que consumen slo C.

A partir de esta informacin, determine lo siguiente:


a. El nmero de personas que consumen slo dos de los productos.
b. El nmero de personas que no consumen ninguno de los tres
productos.
c. El nmero de personas que consumen al menos uno de los tres
productos.

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Aprendizaje Esperado 2

2. CONSTRUYEN TABLAS DE VERDAD, UTILIZANDO LOS CONECTORES


LGICOS PARA LA RESOLUCIN DE PROBLEMAS PROPIOS DE LA
ESPECIALIDAD

2.1 Lgica matemtica: trata con proposiciones, elementos de circuitos de


dos estados, entre otros, que se encuentran asociados por medio de
operadores como Y, O, NO, EXCEPTO, SI, etc. Martn (2011).
(Martn Martnez, 2008).
2.2 Proposicin lgica: Una proposicin debe interpretarse como un
enunciado que siempre toma uno de los valores de verdad posibles:
verdadero (V) o falso (F). Carvajal (2013). Se representan con una letra
minscula, como por ejemplo: p1, p2, oq1, q2, entre otras. (Gonzlez
Gutirrez, 2005).

2.3 Proposicin simple y compuesta: Si las proposiciones simples p1, p2, . . . ,


pn, p2, . . . , pn. (Gonzlez Gutirrez, 2005)

2.4 Valor de verdad: Llamaremos valor verdadero o de verdad de una


proposicin a su veracidad o falsedad. El valor de verdad de una
proposicin verdadera es verdad y el de una proposicin falsa es falso.
(Gonzlez Gutirrez, 2005).

2.5 Conectivos lgicos: Sirven para construir nuevas proposiciones a partir


de proposiciones ya conocidas. El valor de verdad de la nueva
proposicin depender del valor de verdad de las proposiciones que la
forman. Esta dependencia se explicita a travs de una
tabla de verdad. (Carvajal Vieyte, 2013). Los conectivos lgicos son:

Tabla 3: Conectivos lgicos a utilizar en este documento.


Expresin en Ejemplo de proposicin en lenguaje
Conectivo Smbolos
lenguaje natural natural

Negacin NO No est lloviendo , ~ , NOT, !,


Conjuncin Y Est lloviendo y est nublado ^, & , && , AND

Disyuncin O Est lloviendo o est soleado V, | ,||, OR

Implicancia Si Entonces Si est soleado, entonces es de da , , IF ELSE


Equivalencia
Est nublado s y slo si hay nubes
o Si y slo si
visibles
, , , EQUAL
Bicondicional
Fuente: Cataln (2016).
Vicerrectora Acadmica
Cuaderno de Apuntes

2.6 Tablas de verdad: De una proposicin compuesta P enumera todas las


posibles combinaciones de los valores de verdad para las proposiciones
p1, p2, . . . , p. (Carvajal Vieyte, 2013). Las tablas de verdad para
satisfacer a los conectivos lgicos se muestran a continuacin:

Tabla 4: Tablas de verdad para los conectivos lgicos.


Negacin Conjuncin Disyuncin

Implicancia Equivalencia

Fuente: (Carvajal Vieyte, 2013).

2.7 Tautologa, Contradiccin y Contingencia: Sea P una proposicin


compuesta de las proposiciones simples p1, p2, . . . , pn.
P es una Tautologa si es verdadera para todos los valores de
verdad que se asignen a p1, p2, . . . , pn.
P es una Contradiccin si es falsa para todos los valores de
verdad que se asignen a p1, p2, . . . , pn.
Una proposicin P que no es Tautologa ni Contradiccin se
llama, usualmente, Contingencia. Fuente: (Carvajal Vieyte, 2013).

ACTIVIDAD 3: Identifique todas las expresiones que considere son


proposiciones lgicas simples, compuestas, y tambin las expresiones
que no son proposiciones del siguiente enunciado:

Si el incremento en las penas de prisin fuera suficiente para


disminuir los niveles de delincuencia, el ndice de colusin ira en
disminucin. Pero es un hecho que, en lugar de disminuir, el nmero
de colusiones va en aumento.

1. Para lograr esta identificacin, conviene reescribir el texto


resaltando los conectivos lgicos que no estn explcitos en la
expresin.

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

2. Declarar las proposiciones simples, asignando una de las ltimas


letras del alfabeto para identificarlas.
3. Finalmente, expresar en lenguaje simblico las proposiciones
simples, compuestas identificadas; y construir sus tablas de
verdad.
4. Determinar si la tabla de verdad es Tautologa, Contradiccin o
Contingencia.

Aprendizaje Esperado 3

3. IDENTIFICAN LOS ELEMENTOS BSICOS DE LA PROGRAMACIN


ESTRUCTURADA

3.1 Algoritmo: Secuencia de instrucciones que representan un modelo de


solucin para determinado tipo de problemas. O bien, como un conjunto
de instrucciones que realizadas en orden, conducen a obtener la solucin
del problema. Para realizar un programa es conveniente el diseo o
definicin previa del algoritmo. El diseo de algoritmos requiere
creatividad y conocimientos profundos de la tcnica de programacin.

Los algoritmos son independientes de los lenguajes de programacin. En


cada problema el algoritmo puede escribirse y luego ejecutarse en un
lenguaje diferente de programacin. El algoritmo es la infraestructura de
cualquier solucin, escrita luego en cualquier lenguaje de programacin.
Fuente: (Lpez Garca, 2009).

El proceso algortmico debe terminar despus de una


cantidad finita de pasos.
Se dice que un algoritmo es inaplicable cuando se
Realizable ejecuta con un conjunto de datos iniciales y el
proceso resulta infinito o durante la ejecucin se
encuentra con un obstculo insuperable sin arrojar
un resultado.

Debe ser claro lo que hace, de forma que quien ejecute


los pasos (ser humano o mquina) sepa qu, cmo y
Comprensible cundo hacerlo.
Debe existir un procedimiento que determine el proceso
de ejecucin.

El orden de ejecucin de las instrucciones debe estar


perfectamente indicado.
Preciso Cuando se ejecuta varias veces, con los mismos datos
iniciales, el resultado debe ser el mismo siempre.
La precisin implica determinismo.

Figura 3: Caractersticas generales de los algoritmos.


Fuente: (Lpez Garca, 2009).

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

3.2 Resolucin de problemas:


En programacin, para resolver un problema, es imprescindible seguir estas
sugerencias:

a) COMPRENDER EL PROBLEMA.
Leer el problema varias veces.
Establecer los datos del problema.
Aclarar lo que se va a resolver (Cul es la pregunta?).
Precisar el resultado que se desea lograr.
Determinar la incgnita del problema.
Organizar la informacin.
Agrupar los datos en categoras.
Trazar una figura o diagrama.
b) HACER EL PLAN.
Escoger y decidir las operaciones a efectuar.
Eliminar los datos intiles.
Descomponer el problema en otros ms pequeos.
c) EJECUTAR EL PLAN (Resolver).
Ejecutar en detalle cada operacin.
Simplificar antes de calcular.
Realizar un dibujo o diagrama
d) ANALIZAR LA SOLUCIN (Revisar).
Dar una respuesta completa.
Hallar el mismo resultado de otra manera.
Verificar por apreciacin que la respuesta es adecuada.
(Lpez Garca, 2009).

3.3 Programacin estructurada: La visin clsica de la programacin


estructurada se refiere al control de ejecucin. El control de su
ejecucin es una de las cuestiones ms importantes que hay que tener
en cuenta al construir un programa en un lenguaje de alto nivel. La
regla general es que las instrucciones se ejecuten sucesivamente una
tras otra, pero diversas partes del programa se ejecutan o no
dependiendo de que se cumpla alguna condicin. Adems, hay
instrucciones (los bucles) que deben ejecutarse varias veces, ya sea en
nmero fijo o hasta que se cumpla una condicin determinada.

Esta forma de programar se basa en un famoso teorema, desarrollado


por Edsger Dijkstra, que demuestra que todo programa puede escribirse
utilizando nicamente las tres estructuras bsicas de control siguientes:

Secuencia: el bloque secuencial de instrucciones, instrucciones


ejecutadas sucesivamente, una detrs de otra.

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Seleccin: la instruccin condicional con doble alternativa, de la


forma "if condicin then instruccin-1 else instruccin-2".

Iteracin: el bucle condicional "while condicin do instruccin",


que ejecuta la instruccin repetidamente mientras la condicin
se cumpla.

Cuando en la actualidad se habla de programacin estructurada, nos


solemos referir a la divisin de un programa en partes ms manejables
(usualmente denominadas segmentos o mdulos). Una regla prctica
para lograr este propsito es establecer que cada segmento del
programa no exceda, en longitud, de una pgina de codificacin, o
sea, alrededor de 50 lneas.

As, la visin moderna de un programa estructurado es un compuesto


de segmentos, los cuales puedan estar constituidos por unas pocas
instrucciones o por una pgina o ms de cdigo. Cada segmento tiene
solamente una entrada y una salida, asumiendo que no poseen bucles
infinitos y no tienen instrucciones que jams se ejecuten. Encontramos
la relacin entre ambas visiones en el hecho de que los segmentos se
combinan utilizando las tres estructuras bsicas de control
mencionadas anteriormente y, por tanto, el resultado es tambin un
programa estructurado.

Cada una de estas partes englobar funciones y datos ntimamente


relacionados semntica o funcionalmente. En una correcta particin
del programa deber resultar fcil e intuitivo comprender lo que debe
hacer cada mdulo. (Molina & Chamorro, 2006).

3.4 Lenguaje de programacin: Es un lenguaje diseado para describir el


conjunto de acciones consecutivas que un equipo debe ejecutar. Por
lo tanto, un lenguaje de programacin es un modo prctico para que
los seres humanos puedan dar instrucciones a un equipo.

Por otro lado, el trmino "lenguaje natural" define un medio de


comunicacin compartido por un grupo de personas (por ejemplo:
ingls o francs).

Los lenguajes que los equipos usan para comunicarse entre ellos no
tienen nada que ver con los lenguajes de programacin; se los conoce
como protocolos de comunicacin. Se trata de dos conceptos
totalmente diferentes. Un lenguaje de programacin es muy estricto:

A CADA instruccin le corresponde UNA accin de procesador.

10

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

El lenguaje utilizado por el procesador se denomina lenguaje mquina.


Se trata de datos tal como llegan al procesador, que consisten en una
serie de 0 y 1 (datos binarios).

El lenguaje mquina, por lo tanto, no es comprensible para los seres


humanos, razn por la cual se han desarrollado lenguajes intermediarios
comprensibles para el hombre. El cdigo escrito en este tipo de
lenguaje se transforma en cdigo mquina para que el procesador
pueda procesarlo.

El ensamblador fue el primer lenguaje de programacin utilizado. Es


muy similar al lenguaje mquina, pero los desarrolladores pueden
comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje
mquina que depende estrictamente del tipo de procesador utilizado
(cada tipo de procesador puede tener su propio lenguaje mquina).
As, un programa desarrollado para un equipo no puede ser portado a
otro tipo de equipo. El trmino "portabilidad" describe la capacidad de
usar un programa de software en diferentes tipos de equipos. Para
poder utilizar un programa de software escrito en un cdigo
ensamblador en otro tipo de equipo, a veces ser necesario volver a
escribir todo el programa.

Por lo tanto, un lenguaje de programacin tiene varias ventajas:


Es mucho ms fcil de comprender que un lenguaje mquina.
Permite mayor portabilidad, es decir que puede adaptarse
fcilmente para ejecutarse en diferentes tipos de equipos.
(CCM.net, 2016).

ACTIVIDAD 4: Aplicar las Sugerencias de Resolucin de Problemas


para el siguiente enunciado:

En un juego, el ganador obtiene una ficha roja; el segundo, una


ficha azul; y el tercero, una amarilla. Al final de varias rondas, el
puntaje se calcula de la siguiente manera: al cubo de la cantidad
de fichas rojas se adiciona el doble de fichas azules y se descuenta
el cuadrado de las fichas amarillas.

Si Andrs lleg 3 veces en primer lugar, 4 veces de ltimo y 6 veces


de intermedio, qu puntaje obtuvo?

11

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Aprendizaje Esperado 4

4. CONSTRUYEN ALGORITMOS DE PROGRAMACIN DE TIPO DIAGRAMA DE


FLUJO

4.1 Sistema de informacin: se puede definir tcnicamente como un


conjunto de componentes relacionados que recolectan (o recuperan),
procesan, almacenan y distribuyen informacin para apoyar la toma
de decisiones y el control en una organizacin.

Hay tres actividades en un sistema de informacin que producen la


informacin que esas organizaciones necesitan para tomar decisiones,
controlar operaciones, analizar problemas y crear nuevos productos o
servicios. Estas actividades son:

Entrada: captura o recolecta datos en bruto tanto del interior de


la organizacin como de su entorno externo.

Procesamiento: convierte esa entrada de datos en una forma


ms significativa.

Salida: transfiere la informacin procesada a la gente que la


usar o a las actividades para las que se utilizar.

Los sistemas de informacin tambin requieren retroalimentacin, que


es la salida que se devuelve al personal adecuado de la organizacin
para ayudarle a evaluar o corregir la etapa de entrada. (Peralta, 2015).

Figura 4: Esquema de un sistema de informacin.


Fuente: (Peralta, 2015).
4.2 Diagrama de flujo: Se utilizan tanto para la representacin grfica de las
operaciones ejecutadas sobre los datos a travs de todas las partes de
un sistema de informacin, diagrama de flujo del sistema, como para la
representacin de la secuencia de procesos necesarios para describir
un procedimiento particular, diagrama de flujo de detalle.
El diagrama de flujo utiliza unos smbolos normalizados, con los pasos del
algoritmo escritos en el smbolo adecuado y los smbolos unidos por
flechas, denominadas lneas de flujo, que indican el orden en que los
pasos debes ser ejecutados. (Joyanes Aguilar, Rodrguez Baena, &
Fernndez Azuela, 1996).
A continuacin, se presentarn los smbolos principales de un diagrama
de flujo de acuerdo con la versin del 20/09/2015 de PSeint:

Tabla 5: Smbolos principales de un diagrama de flujo en PSeInt.


Smbolo Descripcin
Comentario, es un texto que sirve al programador
para mencionar informacin o referencia
importante respecto de algn proceso o
procedimiento que es ignorado por el intrprete
de PSeint.

Proceso de datos, permite la asignacin y


definicin (declaracin e inicializacin) de
variables, constantes, arreglos (dimensin) y
operaciones.

Leer, instruccin para obtener entrada de datos


(input), desde la entrada estndar de un
computador (por ejemplo un dato ingresado por
el teclado).

Escribir, instruccin para generar la salida de


datos (informacin - output), a travs de la salida
estndar de un computador (por ejemplo la
visualizacin a travs de la pantalla).
Vicerrectora Acadmica
Cuaderno de Apuntes

Si-Entonces, representa a una estructura


condicional simple que permite tomar decisin
respecto de los valores de los datos, generando
alternativas o recorridos diferentes en el
algoritmo.

Continuacin:
Smbolo Descripcin

Segn, representa a una estructura


de seleccin mltiple.

Mientras, representa a una estructura


repetitiva, donde el proceso de
datos (Proceso1) se ejecuta luego de
que se cumpla la condicin. El
proceso de datos se ejecutar por lo
menos cero veces en el flujo
(depender de la condicin hasta
que rompa o cumpla la condicin
definida).

Repetir-Hasta que, representa a una


estructura repetitiva, donde el
proceso de datos (Proceso1) se
ejecuta antes de la condicin. El
proceso de datos se ejecutar por lo
menos una vez en el flujo (no
depender de la condicin).

Para, representa a una estructura


repetitiva controlada por una
variable de tipo contador (control),
un valor inicial, incremento o
decremento y un valor final.

Fuente: (Novara, 2015).

14

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
ACTIVIDAD 5: Disear un algoritmo de tipo Diagrama de Flujo que le
permita a un estudiante de Matemticas calcular y mostrar una
cantidad de nmeros primos. Recuerde que un nmero primo slo es
divisible por el mismo y por la unidad.

Aprendizaje Esperado 5

5. CONSTRUYEN ALGORITMOS DE PROGRAMACIN DE TIPO


PSEUDOCDIGO

5.1 Pseudocdigo: Se puede definir como el lenguaje intermedio entre el


lenguaje natural y el lenguaje de programacin seleccionado. Esta
notacin se encuentra sujeta a unas determinadas reglas que nos
permiten y facilitan el diseo de algoritmos. La notacin
pseudocodificada surge como mtodo para la representacin de
instrucciones en una metodologa estructurada y naci como un
lenguaje similar al ingls, que utilizaba palabras reservadas de este
idioma (start, end, stop, while, repeat, for, if, if-then-else, etc.) y que
posteriormente se fue adaptando a otros lenguajes de lengua hispana.
(Lpez & Quero Catalinas, 1998).

Figura 5: Captura de pantalla de la vista de un algoritmo de tipo


pseudocdigo en la aplicacin PSeInt.
Fuente: (Novara, 2015).
Vicerrectora Acadmica
Cuaderno de Apuntes

ACTIVIDAD 6: El Director de rea de Tcnico Deportes del Instituto


Profesional AIEP, se encuentra organizando una competencia de
atletismo en la cual participarn estudiantes de todas las sedes. Para
llevar a cabo este evento, requiere de un programa que le permita
calcular la velocidad, en metros por segundo, de los corredores de
una carrera de 1.500 metros. La entrada sern parejas de nmeros
(minutos, segundos) que darn el tiempo de cada corredor. Por
cada corredor, se imprimir el tiempo en minutos y segundos, as
como la velocidad media. El bucle se ejecutar hasta que se d una
entrada de 0,0 que ser la marca de fin de entrada de datos.

De acuerdo con esto, solicita a un estudiante de la Escuela de


Tecnologas de Informacin y Comunicacin, que disee el algoritmo
en Pseudocdigo correspondiente.

Aprendizaje Esperado 6

6. CONSTRUYEN FUNCIONES UTILIZANDO ALGORITMOS Y ESTRUCTURA DE


DATOS TIPO, PARA LA RESOLUCIN DE PROBLEMAS

6.1 Funcin: Es un mdulo (subprograma o subrutina) o unidad de


programacin constituido por comentarios, directivas, declaraciones de
datos y un bloque de instrucciones que representan operaciones a
ejecutar. Generalmente, las funciones tienen cuatro caractersticas que
describen su sintaxis y forma de llamada:
Nombre propio: Es la identidad de una funcin y sirve para
efectuar su llamado y retorno en programas diseados con dos o
ms funciones. Estos nombres o identificadores deben ser
exclusivos (deben ser distintos de los nombres de otras variables u
objetos del programa).
Tipo de dato: Es la definicin de tipo de dato empleada, en
algunos lenguajes de programacin (como es el caso de los
derivados de C), como prefijo del nombre de la funcin; sirve
para devolver datos de tipo especfico a la funcin que efecta
el llamado.
Lista de argumentos: Es la declaracin de los datos que sern
transferidos desde la funcin (proceso) que efecta el llamado a
la funcin.

16

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Contenido de la funcin: Es el bloque de comentarios, son las


declaraciones e instrucciones que definen el cuerpo de una
funcin. (Curiel & Larios, 2005).

Segn (Novara, 2015), las funciones en el pseudocdigo se utilizan de


forma similar a otros lenguajes. Se coloca su nombre seguido de los
argumentos para la misma, encerrados entre parntesis (por ejemplo
trunc (x)). Se pueden utilizar dentro de cualquier expresin, y cuando se
evale la misma, se reemplazar por el resultado correspondiente.
Actualmente, todas la funciones disponibles son matemticas (es decir
que devolvern un resultado de tipo numrico) y reciben un slo
parmetro de tipo numrico. A continuacin se listan las funciones
integradas disponibles:

Tabla 6: Funciones preestablecidas en PSeInt versin 20/09/2015.

Fuente: (Novara, 2015).

6.2 Variables de enlace: Todo programa utiliza unos datos de entrada y


produce unos resultados, los primeros provienen de las unidades de
entrada, y los segundos son enviados a las unidades de salida, siendo
ambas clases de unidades dispositivos externos.

17

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

En el caso de un subprograma, los datos de entrada y los resultados


provienen y son enviados del y al programa o subprograma llamante,
respectivamente.
Para esta labor se utilizan las variables de enlace o parmetros. Es decir,
cada vez que se realiza una llamada a un subprograma, los datos de
entrada le son pasados por medio de determinadas variables y,
anlogamente, cuando termina la ejecucin del subprograma los
resultados regresan mediante otras o las mismas variables.
Los subprogramas tambin pueden realizar operaciones de entrada y
salida con las unidades perifricas cuando sea necesario.
El proceso de emisin y recepcin de datos y resultados mediante
variables de enlace se denomina paso de parmetros. (Alcalde &
Garca, 1987).

6.3 Paso de parmetros: Los parmetros pueden ser de dos tipos:


Parmetros formales.
Parmetros actuales.
Se denominan parmetros formales a las variables locales de un
subprograma que son utilizadas para la emisin y recepcin de los
datos.
Se denominan parmetros actuales a las variables y datos enviados, en
cada llamada a subprograma, por el programa o subprograma
llamante.
Los parmetros formales son siempre fijos para cada subprograma,
mientras que los parmetros actuales pueden ser cambiados para
cada llamada. En cualquier caso, ha de haber una correspondencia
entre los parmetros formales y actuales en su nmero, colocacin y
tipo.
El paso de parmetros puede realizarse de dos maneras diferentes:
Por valor.
Por referencia.
El primero se utiliza para suministrar datos de entrada al subprograma, y
el segundo para entrada y salida indistintamente.
Un parmetro por valor es un dato o una variable global que contiene
un dato de entrada para el subprograma. Esta variable no puede ser
modificada por el subprograma, el cual copia su valor en parmetro
formal correspondiente para poder utilizarlo.
Un parmetro por referencia es una variable del programa o
subprograma llamante, que puede contener o no un dato para el
subprograma llamado, el cual coloca un resultado en esa variable que
queda a disposicin del llamante una vez concluida la ejecucin del
subprograma. (Alcalde & Garca, 1987).

18

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Para (Novara, 2015), si el perfil de lenguaje seleccionado lo permite, se


pueden declarar nuevas funciones o subprocesos en un algoritmo en
Pseudocdigo. La sintaxis para ello es la siguiente:

Figura 6: Sintaxis de un SubProceso en PSeInt.


PSeInt (2015).

Comienza con la palabra clave SubProceso (o Funcin, son


equivalentes) seguida de la variable de retorno, el signo de asignacin,
el nombre del subproceso y finalmente, la lista de argumentos entre
parntesis. Existen variantes para esta estructura. Si la funcin no retorna
ningn valor, pueden omitirse el identificador variable_de_retorno y el
signo de asignacin, es decir, colocar directamente el nombre y los
argumentos a continuacin de la palabra clave SubProceso. Si el
subproceso no recibe ningn valor pueden colocarse los parntesis
vacos u omitirse, finalizando la primera lnea con el nombre del
subproceso. Las reglas para los nombres de subprocesos, variables de
retorno y argumentos son las mismas que para cualquier identificador
en pseudocdigo.
Adems, opcionalmente pueden agregarse las palabras claves Por
Valor o Por Referencia para indicar el tipo de pasaje en cada
argumento. Si no se indica, los arreglos se pasan por referencia, las
dems expresiones por valor. El pasaje por referencia implica que si la
funcin modifica el argumento, se modificar en realidad la variable
que se utiliz en la llamada, mientras que el pasaje por valor implica
que la funcin opera con una copia de la variable (o el resultado de la
expresin) que se utiliz en la llamada, por lo que las modificaciones
que aplique la funcin no se vern reflejadas fuera de la misma.
(Novara, 2015).

19

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Figura 7: Ejemplo de algoritmo en Pseudocdigo que muestra el uso de


SubProceso en PSeInt.
Fuente: (Novara, 2015).

6.4 Arreglos: Antes de definir el concepto de arreglo es importante


mencionar que un conjunto de datos homogneos que se tratan
como una sola unidad se denomina estructura de datos.
Si una estructura de datos reside en la memoria central del
computador, se denomina estructura de datos interna.
Recprocamente, si reside en un soporte externo, se denomina
estructura de datos externa.
La estructura de datos interna ms importante desde el punto de vista
de utilizacin es el arreglo, que existe en la prctica totalidad de los
lenguajes de programacin.
Esta estructura se corresponde con los conceptos matemticos de
vector, matriz y poliedro. (Alcalde & Garca, 1987).

Ahora bien, (Curiel & Larios, 2005), indican que como la mayora de los
lenguajes de programacin, un arreglo es un conjunto ordenado de
datos homogneos; es decir, los datos contenidos en el arreglo con del
mismo tipo.
Un arreglo est constituido por un conjunto finito de datos numricos, un
nombre para identificarlo, una o ms dimensiones y uno o ms
subndices para acceder a los datos. Las dimensiones determinan el
tipo de arreglo que puede representar a las estructuras de datos de
20

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

lgebra lineal; por ejemplo, los vectores se modelan con arreglos de


una dimensin, las matrices se representan con arreglos de dos
dimensiones y los espacios vectoriales de tres o ms dimensiones se
pueden representar con arreglos de ms de dos dimensiones.

Figura 8: Representacin de un arreglo unidimensional (array) y


uno bidimensional (matriz).
(Martnez, 2012).

ACTIVIDAD 7: Un programador est desarrollando una aplicacin


Web en la cual el usuario internauta deber ingresar algunos
datos personales en un formulario para poder registrarse y
acceder a los recursos disponibles de la pgina.
Debido a que el programador se encuentra construyendo la
capa de presentacin o las vistas del sitio Web, deber validar
todos los campos de entrada de datos en el formulario para que
cada registro se almacene de forma correcta en la base de
datos.
En esta oportunidad, el programador necesita validar si la fecha
de nacimiento ingresada est correcta o no. El da ha de estar
comprendido entre 1 y 31, el mes entre 1 y 12, y si esto es
correcto, ver si el nmero de das para un mes concreto es vlido.
Adems, y por medio de una funcin, a la que se pasar el valor
entero correspondiente a un ao determinado y devolver un
valor lgico verdadero si el ao es bisiesto y falso en caso
contrario. Un ao ser bisiesto si es divisible por 4, excepto los que
son divisibles por 100 pero no por 400, es decir, menos aquellos
con los que comienza el siglo.

21

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Figura 9: Ejemplo de control de texto para la fecha de nacimiento


en un formulario Web.
Fuente: (Cataln Carrasco, 2016).

ACTIVIDAD 8: El profesor de Programacin entrega la siguiente


tarea a sus estudiantes:
Escribir un algoritmo de tipo pseudocdigo en PSeInt que
permita calcular el cuadrado de los 100 (cien) primeros nmeros
enteros y almacenarlos en un arreglo, para luego en otra rutina,
mostrar los nmeros (procesados) por la salida estndar
(pantalla). El usuario no ingresa datos.

22

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
II. UNIDAD DE APRENDIZAJE: INTRODUCCIN AL LENGUAJE ORIENTADO A
OBJETO.
Aprendizaje Esperado 7

7. APLICA PARADIGMA ORIENTADO A OBJETOS EN EL CONTEXTO DE


ELEMENTOS SIMPLES UTILIZANDO DIAGRAMA DE CLASE Y SUS
ELEMENTOS BSICOS
7.1 Programacin orientada a objetos: (Rodrguez Echeverra, Prieto Ramos,
& Sosa Snchez, 2004), supone un cambio en la concepcin del mundo
de desarrollo de software, introduciendo un mayor nivel de abstraccin
que permite mejorar las caractersticas del cdigo final. De manera muy
bsica, las aportaciones de este paradigma se pueden resumir en:
Conceptos de clase y objeto, que proporcionan una abstraccin del
mundo centrada en los seres y no en los verbos.
Los datos aparecen encapsulados dentro del concepto de clase. El
acceso a los datos se produce de manera controlada e independiente
de la representacin final de los mismos. Como consecuencia, se
facilita el mantenimiento y la evolucin de los sistemas, al desaparecer
las dependencias entre distintas partes del sistema.
Mediante conceptos como la composicin, herencia y polimorfismo se
consigue simplificar el desarrollo de sistemas. La composicin y la
herencia nos permiten construir clases a partir de otras clases,
aumentando en gran medida la reutilizacin.

7.2 Concepto de Clase y Objeto: Mediante la POO1, a la hora de tratar


un problema, podemos descomponerlo en subgrupos de partes
relacionadas. Estos subgrupos pueden traducirse en unidades
autocontenidas llamadas objetos. Antes de la creacin de un
objeto, se debe definir en primer lugar su formato general, su
plantilla, que recibe el nombre de clase. (Rodrguez Echeverra,
Prieto Ramos, & Sosa Snchez, 2004).

1
POO: Programacin Orientada a Objetos.
Vicerrectora Acadmica
Cuaderno de Apuntes

Figura 10: Descripcin de los elementos bsicos de la POO.


Fuente: (Berganza, 2011).

7.3 Diagrama de Clases: Un Diagrama de Clases sirve para visualizar las


relaciones entre las clases que involucran el sistema. (Salinas C., 1996).
Un Diagrama de Clases, describe los tipos de objetos que hay en el
sistema y las diversas clases de relaciones estticas que existen entre
ellos. Hay dos tipos principales de relaciones estticas:

Asociaciones (por ejemplo, un cliente puede rentar diversas video-


cintas).
Subtipos (una enfermera es un tipo de persona).

Los Diagramas de Clases tambin muestran los atributos y operaciones


de una clase y las restricciones a que se ven sujetos, segn la forma en
que se conecten los objetos. (Fowler & Scott, 1999).

7.4 UML: UML o Lenguaje Unificado de Modelado, ayuda al usuario a


entender la realidad de la tecnologa y la posibilidad de que reflexione
antes de invertir y gastar grandes cantidades en proyectos que no
estn seguros en su desarrollo, reduciendo el coste y el tiempo
empleado en la construccin de las piezas que constituirn el modelo.

Sin embargo, desde el punto de vista puramente tecnolgico, UML,


tiene una gran cantidad de propiedades que han sido las que,
realmente, han contribuido a hacer de UML el estndar de facto de la
industria que es en realidad. Algunas de las propiedades de UML como
lenguaje de modelado estndar son:

Concurrencia, es un lenguaje distribuido y adecuado a las


necesidades de conectividad actuales y futuras.

24

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Ampliamente utilizado por la industria desde su adopcin por


OMG2.
Reemplaza a decenas de notaciones empleadas con otros
lenguajes.
Modela estructuras complejas.
Las estructuras ms importantes que soportan tienen su
fundamento en las tecnologas orientadas a objetos, tales como
objetos, clase, componentes y nodos.
Emplea operaciones abstractas como gua para variaciones
futuras, aadiendo variables si es necesario.
Comportamiento del sistema: casos de uso, diagramas de
secuencia y de colaboraciones, que sirven para evaluar el
estado de las mquinas. (Rumbaugh, Jacobson, & Booch, 2000).

ACTIVIDAD 9: El tablero de damas est compuesto de 64 celdas


en una grilla de 8x8. El objetivo del juego es capturar todas las
piezas de tu oponente. Los contendientes usan su turno para
mover una de sus piezas del tablero a una celda vaca. Una
movida vlida es una movida diagonal hacia adelante en una
celda hacia una vaca o una movida hacia delante saltando
sobre una pieza del oponente hasta una celda vaca. La ltima
movida captura la pieza saltada. La pieza saltada es removida
del tablero.
Despus de capturar la pieza del oponente, se puede repetir el
mismo procedimiento de captura mientras sea posible capturar
otra pieza.
Si un jugador logra mover una de sus piezas hasta el borde del
tablero del oponente, entonces esta pieza es promovida a Dama.
Una Dama tiene poderes especiales: adems de poder moverse
diagonalmente hacia adelante, puede tambin hacerlo hacia
atrs.
El juego se gana cuando el jugador ha capturado todas las
piezas de su oponente (se puede empatar si un jugador no
puede moverse ms o ninguno puede comer piezas del otro).
Dado que el juego ocurre en una simulacin en el computador,
se necesitar un controlador del juego que le pregunta a cada
jugador de turno su movida. Cuando se reciba una movida de un
jugador, se solicita al tablero que valide la movida. Si sta es
vlida entonces la pieza del jugador actual es movida en el

2
OMG: Object Management Group (http://www.omg.org/)

25

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

tablero. Si se captura alguna pieza sta es removida del tablero.


El tablero es desplegado y se evala el nuevo estado del juego.
Este proceso se repite hasta que un jugador gane al dejar a su
ponente sin piezas o se llegue a una posicin de bloqueo.
Cul es el diagrama de clases correspondiente para que el
sistema permita jugar varias veces?

ACTIVIDAD 10: Se desea disear un diagrama de clases sobre la


informacin de las reservas de una empresa dedicada al arriendo
de automviles, teniendo en cuenta que:
Un determinado cliente pueda tener en un momento dado
hechas varias reservas.
De cada cliente se desean su RUN, nombre, direccin y
telfono. Adems, dos clientes se diferencian por un cdigo
nico.
Cada cliente puede ser avalado por otro cliente de la
empresa.
Una reserva la realiza un nico cliente pero puede
involucrar a varios vehculos.
Es importante registrar la fecha de inicio y final de la
reserva, el precio del arriendo de cada uno de los
vehculos, los litros de gasolina en el estanque del vehculo
en el momento de realizar la reserva, el precio total de la
reserva y un indicador de si el o los vehculos han sido
entregados.
Todo vehculo tiene siempre asignado un determinado
garaje que no puede cambiar. De cada vehculo se
requiere la matrcula (patente) el modelo, el color y la
marca.
Cada reserva se realiza en una determinada agencia.

26

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Aprendizaje Esperado 8

8. PROGRAMA CLASES BSICAS EN JAVA QUE PERMITAN DAR


SOLUCIN A REQUERIMIENTOS DE USUARIOS CON BAJO NIVEL DE
COMPLEJIDAD
8.1 Java: es un lenguaje de programacin y una plataforma informtica
comercializada por primera vez en 1995 por Sun Microsystems. Hay
muchas aplicaciones y sitios web que no funcionarn a menos que
tenga Java instalado y cada da se crean ms. Java es rpido, seguro y
fiable. Desde porttiles hasta centros de datos, desde consolas para
juegos hasta sper computadoras, desde telfonos mviles hasta
Internet, Java est en todas partes. (Oracle).
8.2 BlueJ IDE: Es un entorno integrado de desarrollo (de sus siglas en ingls
IDE - Integrated Development Environment) para el lenguaje de
programacin Java, desarrollado principalmente con propsitos
educacionales, pero tambin es adecuado para el desarrollo de
software a pequea escala. (EcuRed, 2015).

8.3 Sintaxis en Java: Para un inexperto, la forma en que se combinan las


palabras y smbolos para formar programas ejecutables puede parecer
confusa y casi antojadiza. Sin embargo, la escritura de programas
computacionales se rige por un reducido conjunto de reglas
gramaticales. Este conjunto de reglas se denomina la sintaxis del
lenguaje de programacin. Por esta razn, tambin se habla de reglas
sintcticas como sinnimo de reglas gramaticales.

Las reglas gramaticales son similares a sus contrapartes de los lenguajes


hablados. La diferencia radica en que en un lenguaje hablado una
frase gramaticalmente mal formada, una persona es capaz de
comprender. Al contrario, en un lenguaje de programacin, cualquier
descuido en el cumplimiento de su gramtica o sintaxis se traduce en
un mensaje de error, y por lo tanto, un programa que no funciona.

Por ejemplo, la siguiente instruccin: a+1 = b;

Podra ser interpretada como calcular a+1 y asignrsela a b. Pero el


compilador es incapaz de captar esta interpretacin y termina con un
mensaje de error.

Por esta razn, es sumamente importante dominar la gramtica del


lenguaje que se usa para programar. Su conocimiento, permite
comprender ms rpidamente los errores que se cometern
inevitablemente al escribir un programa. Tales errores sern tpicamente
comunicados por el compilador en un lenguaje rudo y crptico.
Vicerrectora Acadmica
Cuaderno de Apuntes

Cada lenguaje de programacin posee su propia sintaxis. Las reglas


que rigen para Java, no son las mismas que para Pascal o Visual Basic.
Una vez que se entiende la sintaxis de un lenguaje especfico, es muy
fcil aprender la sintaxis de otros lenguajes de programacin. (Mateu B.,
1999).

ACTIVIDAD 11: Un estudiante de redes solicita a uno de programacin,


que le construya un emulador de un router para realizar pruebas de
conectividad. Para dar solucin al requerimiento el estudiante de
programacin debe:

1. Escribir una clase que modele un router, con los siguientes campos:
String marca: se carga en el constructor y no se modifica
nunca.
String ip: se carga en el constructor y se puede modificar.
int bytes_in: al principio vale 0, y se puede incrementar.
int bytes_out: al principio vale 0, y se puede incrementar.

2. La clase debe tener:


Un constructor.
Mtodos getter de todos los campos.
Un setter para el campo ip.
Un mtodo para aadir bytes de entrada.
Un mtodo para aadir bytes de salida.
Un mtodo para leer el nmero total de bytes (in + out).

ACTIVIDAD 12: A un grupo de estudiantes de programacin del Instituto


AIEP, se les solicita desarrollar una aplicacin de consola en Java de
reserva de butacas de un multicine. Para hacer las reservas debern
utilizar un conjunto de mens, y todos ellos incluir tres botones: siguiente,
anterior y salir. En cada men se realizan algunas actividades de la
reserva y las transiciones son las que aparecen en la figura:

28

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Se desea una solucin de Software que se pueda adaptar con


facilidad a otros casos parecidos (por ejemplo reservar asientos de tren,
reservar libros de bibliotecas, entre otros). Y para ello trabajaron con las
seis clases que aparecen en el siguiente diagrama:

La clase EjecucionReserva se encarga de gestionar la evolucin de


general de la reserva y est diseada para poder ser reutilizada en
otros casos. La clase Estado es una clase abstracta de los posibles
estados de la reserva. Las clases SeleccionPelicula, Seleccion,
Asiento, Inicial, Reserva, Confirmacion son las clases que gestionan
cada una de las fases de la reserva. La clase EjecucionReserva incluye
un array con los estados que ejecuta la reserva; el estado anterior a un
estado en la posicin "i", es el "i-1", y el siguiente es el "i+1" (el anterior al
de la posicin 0 es el ltimo, y el siguiente al ltimo es el 0); el estado
inicial es el estado de la posicin 0.
29

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Aprendizaje Esperado 9

9. Construyen aplicaciones con interfaz grfica de usuario siguiendo


especificaciones con mediano nivel de complejidad.
9.1 API: La API Java es una interfaz de programacin de aplicaciones (API,
por sus siglas del ingls: Application Programming Interface) provista por
los creadores del lenguaje de programacin Java, que da a los
programadores los medios para desarrollar aplicaciones Java.
(Wikipedia, 2015).
La API Java est organizada en paquetes lgicos, donde cada
paquete contiene un conjunto de clases relacionadas
semnticamente. (Wikipedia, 2015).
En el siguiente enlace podr revisar todo el API actualizado de Java,
URL: https://docs.oracle.com/javase/7/docs/api/
9.2 Package e Import: Un package (paquete) es una agrupacin de clases
afines. Equivale al concepto de librera existente en otros lenguajes o
sistemas. Una clase puede definirse como perteneciente a un package
y puede usar otras clases definidas en ese o en otros packages.
Los packages delimitan el espacio de nombres (space name). El
nombre de una clase debe ser nico dentro del package donde se
define. Dos clases con el mismo nombre en dos packages distintos
pueden coexistir e incluso pueden ser usadas en el mismo programa.
Una clase se declara perteneciente a un package con la clusula
package, cuya sintaxis es:
package nombre_package;
La clusula package debe ser la primera sentencia del archivo fuente.
Cualquier clase declarada en ese archivo pertenece al package
indicado.
Por ejemplo, un archivo que contenga las sentencias:
package miPackage;
. . .
class miClase {
. . .
Declara que la clase miClase pertenece al packagemiPackage.
La clusula package es opcional. Si no se utiliza, las clases declaradas
en el archivo fuente no pertenecen a ningn package concreto, sino
que pertenecen a un package por defecto sin nombre.
La agrupacin de clases en packages es conveniente desde el punto
de vista organizativo, para mantener bajo una ubicacin comn clases
30

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

relacionadas que cooperan desde algn punto de vista. Tambin


resulta importante por la implicacin que los packages tienen en los
modificadores de acceso.
Cuando se referencia cualquier clase dentro de otra se asume, si no se
indica otra cosa, que sta otra est declarada en el mismo package.
Por ejemplo:
package Geometria;
. . .
class Circulo {
Punto centro;
. . .
}
En esta declaracin definimos la clase Crculo perteneciente al package
Geometria. Esta clase usa la clase Punto. El compilador y la JVM asumen
que Punto pertenece tambin al package Geometria, y tal como est
hecha la definicin, para que la clase Punto sea accesible (conocida)
por el compilador, es necesario que est definida en el mismo package.
Si esto no es as, es necesario hacer accesible el espacio de nombres
donde est definida la clase Punto a nuestra nueva clase. Esto se hace
con la clusula import. Supongamos que la clase Punto estuviera
definida de esta forma:
package GeometriaBase;
class Punto {
int x , y;
}
Entonces, para usar la clase Punto en nuestra clase Circulo
deberamos poner:
package GeometriaAmpliada;
import GeometriaBase.*;
class Circulo {
Punto centro;
. . .
}
Con la clusula import GeometriaBase.*; se hacen accesibles todos los
nombres (todas las clases) declaradas en el packageGeometriaBase. Si
slo se quisiera tener accesible la clase Punto se podra declarar: import
GeometriaBase.Punto;
Tambin es posible hacer accesibles los nombres de un package sin usar
la clusula import calificando completamente los nombres de aquellas
clases pertenecientes a otros packages. Por ejemplo:
package GeometriaAmpliada;
class Circulo {
GeometriaBase.Punto centro;

31

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

. . .
}
Sin embargo si no se usa import es necesario especificar el nombre del
package cada vez que se usa el nombre Punto.
La clusula import simplemente indica al compilador donde debe
buscar clases adicionales, cuando no pueda encontrarlas en el package
actual y delimita los espacios de nombres y modificadores de acceso.
Sin embargo, no tiene la implicacin de 'importar' o copiar cdigo
fuente u objeto alguno. En una clase puede haber tantas sentencias
import como sean necesarias. Las clusulas import se colocan despus
de la clusula package (si es que existe) y antes de las definiciones de las
clases. (Bel Puchol, 2001).

ACTIVIDAD 13: Una empresa de servicios de nuestro pas, requiere


una aplicacin para el departamento de recursos humanos que
permita gestionar alguna informacin de un empleado. Los datos
del empleado son: nombre, apellido, sexo, fecha de nacimiento y
una imagen asociada. Adems, como trabaja en una
determinada compaa tiene una fecha de ingreso a la misma y
un salario base asignado.
La aplicacin debe permitir las siguientes operaciones:
1. Modificar el salario del empleado.
2. Realizar algunos clculos con la informacin disponible:
a) Edad actual.
b) Antigedad en la empresa.
c) Prestaciones a las que tiene derecho. Para el clculo de
las prestaciones se utiliza la frmula p = (a * s)/12 (donde
p: prestaciones, a: antigedad, s: salario).

ACTIVIDAD 14: Una de las actividades ms comunes en el mundo


financiero, es la realizacin de simulaciones que permitan a los
clientes saber el rendimiento de sus productos a travs del
tiempo, contemplando diferentes escenarios y posibles
situaciones que se presenten.
Se quiere crear un programa que haga la simulacin en el tiempo
de la cuenta bancaria de un cliente. Un cliente tiene un nombre y
un nmero de cdula el cual identifica la cuenta. Una cuenta,
por su parte est constituida por tres productos financieros
bsicos: (1) una cuenta de ahorro, (2) una cuenta corriente y (3)
un certificado de depsito a trmino CDT. Estos productos son
independientes y tienen comportamientos particulares.

32

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

El saldo total de la cuenta es la suma de lo que el cliente tiene en


cada uno de dichos productos. En la cuenta corriente el cliente
puede depositar o retirar dinero. Su principal caracterstica es que
no recibe ningn inters por el dinero que se encuentre all
depositado. En la cuenta de ahorro, se paga un inters mensual
del 0.6% sobre el saldo. Cuando el cliente abre un CDT, define la
cantidad de dinero que quiere invertir y negocia con el banco el
inters mensual que va a recibir. A diferencia de la cuenta
corriente o la cuenta de ahorro, en un CDT no se puede
consignar ni retirar dinero. La nica operacin posible es cerrarlo,
en cuyo caso, el dinero y sus intereses pasan a la cuenta
corriente.
Se quiere que el programa con interfaz grfica de Java que
permita a una persona simular el manejo de sus productos
bancarios, dndole las facilidades de: (1) hacer las operaciones
necesarias sobre los productos que conforman la cuenta, y (2)
avanzar mes por mes en el tiempo, para que el cliente pueda ver
el resultado de sus movimientos bancarios y el rendimiento de sus
inversiones.

33

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
RESPUESTAS DE LAS ACTIVIDADES

Tabla X: Respuestas por actividad, con comentarios.


N
Respuesta Comentarios
Actividad

Como se puede observar en el


diagrama de Venn-Euler, los
conjuntos solicitados: A, B y C se
encuentran diferenciados por color:
verde, azul y rojo respectivamente.
1 Los elementos de cada conjunto
estn representados por el nmero
de matrcula del estudiante, ya que
este dato es el ms representativo y
nico para cada estudiante.

a. Slo dos productos: 39 personas (d+e+f).


2 b. Ningn producto: 15 personas (h).
c. Un producto: 135 personas.

a=50, b=30, c=15, d=16, e=12, f=8 y


g=4.
W: El ndice de penas se incrementa. Conector lgico:
Implicancia.
X: Disminuye los niveles de delincuencia. Conector
lgico: Implicancia.
Y: El ndice de colusiones disminuye.
3 Conector lgico: Conjuncin.
Z: El nmero de secuestros aumenta
En smbolos.
Es una Contingencia.

Note adems que por ello se tiene:


Vicerrectora Acadmica
Cuaderno de Apuntes

COMPRENDE
Leer detenidamente el problema
Cuntos colores de fichas se reparten?
Cuntas fichas rojas, azules y amarillas
obtuvo Andrs?
Qu pregunta el problema?

PLANEA
Para hallar el puntaje que obtiene
Andrs por sus llegadas de primero,
calcular el cubo de la cantidad de fichas
rojas.
Para hallar el puntaje por sus llegadas
en segundo lugar, calcular el doble de la
cantidad de fichas azules.
Para hallar el puntaje que pierde por
sus llegadas en ltimo lugar, calcular el
cuadrado de la cantidad de fichas
amarillas.
Para hallar el puntaje total, calcular la
4 El puntaje que obtuvo Andrs es 23 puntos. suma de los puntajes por las fichas rojas y
azules, restarle los puntos de las fichas
amarillas.

RESUELVE
Por tres fichas rojas: 3 = 27 puntos
Por seis fichas azules: 6 x 2 = 12 puntos
Por cuatro fichas amarillas: 42 = 16
puntos
Para obtener el puntaje final de Andrs,
sumar los puntos obtenidos con las fichas
rojas y azules (27 + 12 = 39 puntos) y de
este resultado restar los puntos
representados por las fichas amarillas (39
16 = 23 puntos).

REVISA
El puntaje que obtuvo Andrs es 23
puntos.
Verificar las operaciones y comparar los
clculos con la solucin estimada.

35

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

En la construccin de este diagrama de


flujo se han utilizado los siguientes tipos de
variables: Enteros y Lgico.
5
Adems, se implementaron las siguientes
estructuras de control de flujo: Mientras,
Para y Si-Entonces.

Datos de salida: v (velocidad media)


Datos de entrada: mm, ss (minutos y
segundos)
Datos auxiliares: distancia (distancia
recorrida) y tiempo (minutos y segundos
que ha tardado en recorrerla)

6 Se debe efectuar un bucle que se


ejecute hasta que mm sea 0 y ss sea 0.
Dentro del bucle se calcula el tiempo en
segundos con la frmula tiempo = ss +
mm * 60. La velocidad se hallar con la
frmula velocidad = distancia /
tiempo.

36

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

La funcin implementada es nombrada


como EsBisiesto la cual requiere de un
7 parmetro de entrada cuyo valor debe
ser de tipo entero y que representar al
ao de la fecha de nacimiento.

37

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Revisar apartado en 7.3 en donde se


9 entrega una definicin explcita de los
Diagramas de Clases.

Revisar apartado en 7.4 en donde se


10 entrega una definicin explcita sobre el
Lenguaje Unificado de Modelado (UML).

38

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

11

39

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

public class EjecucionReserva {


public enum Boton {Siguiente, Anterior, Salir}
protected Estado[] estados;
int posicionActual=0;
public void nuevoEstado(Estado estado, int
posicion) {
estados[posicion]=estado;
}
protected Estado getEstado(int i) {
return estados[i];
}

public void transicion(Boton botonSeleccionado)


{
if (botonSeleccionado == Boton.Siguiente)
posicionActual=(posicionActual+1) %
estados.length;
else if (botonSeleccionado == Boton.Anterior)
posicionActual=(posicionActual-1) %
estados.length;
else return;
}
public Boton ejecutaEstado() {
estados[posicionActual].muestraMenu();
estados[posicionActual].procesaMenu();
return estados[posicionActual].leeSalida();
}
12 public void ejecutaReserva() {
Boton salidaSeleccionada;
do {
salidaSeleccionada=ejecutaEstado();
if (salidaSeleccionada == Boton.Salir) return;
transicion(salidaSeleccionada);
} while (true);
}
public EjecucionReserva(int numeroEstados) {
estados=new Estado[numeroEstados];
}
}

public void main(String[] arg) {


EjecucionReserva er=new EjecucionReserva(5);
er.nuevoEstado(new Inicial(),0);
er.nuevoEstado(new SeleccionPelicula(), 1);
er.nuevoEstado(new SeleccionAsiento(), 2);
er.nuevoEstado(new Reserva(), 3);
er.nuevoEstado(new Confirmacion(), 4);
er.ejecutaReserva();
}

public void muestraMenu() {


String asiento="?";
String pelicula="?";
Estado as=getAnterior().getAnterior();
if (as instanceof SeleccionAsiento) {
40

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

asiento=((SeleccionAsiento)
as).getAsientoSeleccionado();
Estado pel=as.getAnterior();
if (pel instanceof SeleccionPelicula) {
SeleccionPelicula seleccin= (SeleccionPelicula)
pel;
pelicula= seleccion.getPeliculaSeleccionada();
}
}
putMessage("Confima la reserva del asiento " +
asiento +
" de la Pelicula "+pelicula);
sig=putButton("Siguiente");
ant=putButton("Anterior");
sal=putButton("Salir");
ok=putButton("OK");
can=putButton("Cancel");
}

public void procesaMenu() {


Button sel=getButtonPressed();
if (sel == sig) {
salida=EjecucionReserva.Boton.Siguiente;
} else if (sel == ant) {
salida=EjecucionReserva.Boton.Anterior;
} else if (sel == sal) {
salida=EjecucionReserva.Boton.Salir;
} else if (sel == ok) {
salida=EjecucionReserva.Boton.Siguiente;
} else if (sel == can) {
((Reserva) getAnterior()).cancelarReserva();
salida=EjecucionReserva.Boton.Siguiente;
} else {
putMessage("Error interno en la seleccion de
opcin");
}
}
Proyecto JAVA y Cdigo fuente
13 Proyecto JAVA y Cdigo fuente disponible en:
http://bit.ly/1SzyqGI
disponible en:
http://bit.ly/1SzyqGI
Proyecto JAVA y Cdigo fuente
14 Proyecto JAVA y Cdigo fuente disponible en:
http://bit.ly/1SzyqGI
disponible en:
http://bit.ly/1SzyqGI

41

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Bibliografa
(Enero de 2016). Recuperado el 11 de enero de 2016, de CCM.net:
http://es.ccm.net/contents/304-lenguajes-de-programacion

Alcalde, E., & Garca, M. (1987). Metodologa de Programacin. Aplicaciones en BASIC, COBOL y
Pascal. Madrid: Mc Graw-Hill.

Bel Puchol, A. (17 de junio de 2001). Arrakis. Recuperado el 30 de diciembre de 2015, de


http://www.arrakis.es/~abelp/ApuntesJava/Packages.htm

Berganza, L. (17 de septiembre de 2011). Blog de Luis Berganza. Recuperado el 07 de enero de


2016, de https://llberg.wordpress.com/

Carvajal Vieyte, R. A. (28 de Enero de 2013). MA1101 - Introduccin al lgebra. Recuperado el 29


de diciembre de 2015, de
http://docencia.dim.uchile.cl/algebra/material/tut_alg_2013.pdf

Cataln Carrasco, A. R. (Enero de 2016). Cuaderno de Apuntes de Fundamentos de Programacin


Computacional. Temuco, Araucana, Chile.

Chamorro, M. y. (2013).

Curiel, R., & Larios, M. E. (2005). C Elementos esenciales. Mxico: Pearson.

EcuRed. (2015). EcuRed. Recuperado el 02 de enero de 2016, de http://www.ecured.cu/BlueJ

Fuenlabrada de la Vega Trucios, S. (2000). Aritmtica y lgebra. Mxico: McGraw-Hill


Interamericana de Mexico.

Galdmez, J. (31 de marzo de 2014). judithmarketing14. Recuperado el 28 de diciembre de 2015,


de https://judithmarketing14.wordpress.com/

Gonzlez Gutirrez, F. J. abril de 2005). Universidad de Cdiz. Recuperado el 29 de diciembre de


2015, de http://www2.uca.es/matematicas/Docencia/ESI/1711051/Apuntes/Leccion1.pdf

Joyanes Aguilar, L., Rodrguez Baena, L., & Fernndez Azuela, M. (1996). Fundamentos de
Programacin. Libro de Problemas. Madrid: McGraw-Hill.

Lpez Garca, J. C. (9 de noviembre de 2009). Eduteka. Recuperado el 30 de diciembre de 2015, de


http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf

Lpez, J., & Quero Catalinas, E. (1998). Fundamentos de Programacin. Madrid: Paraninfo.

42

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP
Vicerrectora Acadmica
Cuaderno de Apuntes

Martn Martnez, M. J. (2008). Open Course Ware.Recuperado el 28 de Diciembre de 2015, de


http://ocw.usal.es/ensenanzas-
tecnicas/electronica/contenido/electronica/Tema6_AlgebraBOOLE.pdf

Martnez, E. (05 de marzo de 2012). Blog de Edna Martinez. Recuperado el 04 de enero de 2016,
de http://edna-martinez.blogspot.cl/

Mateu B., L. (16 de Abril de 1999). Pgina Personal de Luis Mateu B. Recuperado el 29 de
diciembre de 2015, de http://users.dcc.uchile.cl/~lmateu/CC10A99/Apuntes/sintaxis/

Molina, J. M., & Chamorro, F. (15 de febrero de 2006). McGraw-Hill Interamericana de Espaa, SL.
Recuperado el 30 de diciembre de 2015, de
http://assets.mheducation.es/bcv/guide/capitulo/8448148703.pdf

Novara, P. (2015). PSeint. Recuperado en diciembre de 2015, de http://pseint.sourceforge.net/

Oracle. (s.f.). Java. Recuperado el 04 de enero de 2016, de


https://www.java.com/es/download/faq/whatis_java.xml

Peralta. (23 de abril de 2015). Clasificacin de los Diferentes Tipos de Sistemas de Informacin
segn los Niveles de las Organizaciones. Recuperado el 27 de diciembre de 2015, de
https://aq2jg16.wordpress.com/2015/04/23/sistema-de-informacion/

Rodrguez Echeverra, R., Prieto Ramos, ., & Sosa Snchez, E. (2004). Programacin Orientada a
Objetos. Espaa: Cceres.

Rumbaugh, J., Jacobson, I., & Booch, G. (2000). El Lenguaje Unificado de Modelado. Manual de
Referencia. Madrid: Pearson Educacin S.A.

Salinas C., P. (30 de octubre de 1996). Pgina Web de Patricio Salinas. Recuperado el 28 de
diciembre de 2015, de http://users.dcc.uchile.cl/~psalinas/uml/modelo.html

Tutellus. (Diciembre de 2015). Tutellus.com. Recuperado el 26 de diciembre de 2015, de


https://www.tutellus.com/ciencias-naturales/matematicas/aprende-algebra-desde-cero-
1750

Wikipedia. (2015). Wikipedia. Recuperado el 04 de enero de 2016, de


https://es.wikipedia.org/wiki/API_Java

43

Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP

You might also like