Tuesday, February 23, 2010

LEP III - Unidad 1 - Taller

Caracas 24/02/2010
LEP-III. Prof. Daniel Mora.
Taller 1. Unidad 1.

Consideraciones:
Maximo numero de integrantes = 4.
Peso en porcentaje del taller = 7.
Forma de entrega = via correo electronico a la direccion dnmr77@hotmail.com
Fecha maxima de entrega = Viernes 26-02-2010 Caracas (GMT -4:30)
En el asunto deben colocar Asignatura, Unidad y evaluacion. Ejemplo: LEPIII-Unidad 1-Taller
En el trabajo que entreguen no olviden colocar todos los integrantes.
Trabajos de grupos distintos muy similares seran anulados, asi que no compratan informacion con otros grupos.

Planteamiento:
Elabore un modelo de datos y la correspondiente implementacion relacional, usando los estandares dados en clases, para un sistema para un instituto universitario que desea mantener informacion persistente sobre, que estudiantes estudian que carreras, que asignaturas se ven en que carrearas, qeu alumnos ven que asignaturas en una correspondiente oferta academica (2010-I, 2010-II) y las notas que obtuviron en cada asignatura, que profesores dan que asignaturas, y en que secciones (turno - horario), que cargos tienen que profesores (Medio tiempo, tiempo completo, contratado, etc..).

LEPIV - Unidad 2 - Taller

Caracas 24/02/2010
LEP-IV. Prof. Daniel Mora.
Taller II. Unidad II.

Consideraciones:
Maximo numero de integrantes = 4.
Peso en porcentaje del taller = 4.
Forma de entrega = via correo electronico a la direccion dnmr77@hotmail.com
Fecha maxima de entrega = Viernes 26-02-2010 Caracas (GMT -4:30)
En el asunto deben colocar Asignatura, Unidad y evaluacion. Ejemplo: LEPIV-Unidad II-Taller
En el trabajo que entreguen no olviden colocar todos los integrantes.
Trabajos de grupos distintos muy similares seran anulados, asi que no compratan informacion con otros grupos.

Planteamiento:
Elaborar un proyecto en java, usando los estandares dados, para resolver la siguiente situacion: Generar 10 numero aleatorios, cada numero debe estar entre 10 y 1000, para cada numero generado, decir si es par/impar y primo/no primo.

Un ejemplo de salida de este programa seria:


15 impar y no primo
17 impar y primo
20 par y no primo
.
.
.
.
.
.
455 impar y no primo

ADSII - Unidad 2 - Taller

Caracas 24/02/2010
ADS-II. Prof. Daniel Mora.
Taller 2. Unidad 2.

Consideraciones:
Maximo numero de integrantes = 4.
Peso en porcentaje del taller = 4.
Forma de entrega = via correo electronico a la direccion dnmr77@hotmail.com
Fecha maxima de entrega = Viernes 26-02-2010 Caracas (GMT -4:30)
En el asunto deben colocar Asignatura, Unidad y evaluacion. Ejemplo: ADSII-Unidad II-Taller
En el trabajo que entreguen no olviden colocar todos los integrantes.
Trabajos de grupos distintos muy similares seran anulados, asi que no compratan informacion con otros grupos.

Planteamiento:
Proponga la descripcion de casos de uso, usando los estandares dados, para la siguiente situacion: El sistema de Registro y control de estudiantes del instituto DM, requiere una funcionalidad en la cual los alumnos inscriban las asignaturas para una oferta academica de dicha institucion, en esta funcionalidad, una vez inscritas las asignaturas, el sistema debe imprimir un reporte de las asignaturas inscritas indicando el monto total a pagar en el banco, al momento de imprimir la planilla el alumno puede modificar el tamano de las letras, asi como los colores del reporte y el tamano de la pagina. Tenga especial consideracion en: las pre-condiciones del sistema, las validaciones que debe hacer el sistema, los casos excepcionales que puedan presentarse en la ejecucion del programa y las postcondiciones del sistema.

Sunday, February 14, 2010

LEPIV - Unidad 2 - Teoria Practica

Caracas 15-02-2010
LEPIV - Profesor Daniel Mora.
Unidad II. Estructuras de control repetitivas.

Las estructuras de control repetitivas o bucles se usan para ejecutar varias veces un conjunto de sentencias, la manera en como se controlan cuantas veces se llevan a cabo el conjunto de sentencias define que tipo de bucle se esta implementando. Hay diversas formas de controlar la finalizacion de ejecucion de un bucle (si es el caso, ya que se puede hacer un bucle sin fin), las mas comunes son por condicion booleana o por un contador.

En el lenguaje de programacion java se cuenta con tres sentencias para hacer bucles:
1. Bucle for: se debe usar cuando se sabe de antemano el numero de veces que se va a ejecutar el conjunto de sentencias, se indica punto de inicio, condicion de fin y actualizacion (incremento/decremento) cada vez que se finaliza una pasada por el conjunto de sentencias.
- Estructura:

for ([inicio];[fin];[actualizacion]) {
[sentencias]
}

- Ejemplo:

for (int i = 1; i <= 10; i++) {
System.out.println("Numero " + i);
}

2. Bucle do: Se usa cuando al menos se desea ejecutar el bucle una vez, y mientras se cumpla una cierta condicion la cual es evaluada al final.
- Estructura:

do {
[sentencias]
} while([Condicion]);

- Ejemplo:

int i = 1;
do {
System.out.println("Numero " + i);
i++;
} while(i <= 10);

3. Bucle while: Se usa mientras se cumpla una cierta condicion la cual se valida al inicio del bucle, puede ser que el bucle no se lleve a cabo ni una vez, si la condicion no se cumple al inicio del bucle.
- Estructura:

while([Condicion]) {
System.out.println("Numero " + i);
}

- Ejemplo:

int i = 1;
while(i <= 10) {
System.out.println("Numero " + i);
i++;
}

El conjunto de sentencias a llevar a cabo en el bucle se define colocandolo dentro de las llaves {}.

Los tres ejemplos mostrados anteriormente llevan a cabo el mismo resultado, pero implementado de diferentes maneras.

Pueden consultar aqui:
http://www.desarrolloweb.com/articulos/1760.php

Ejemplos para practicar:

1. Mostrar por pantalla 10 numeros aleatorios del 10 al 100 y decir si son pares o impares.

Solucion:
// for del 1 al 10, se sabe de antemano que este es el rango.
for (int i = 1; i <= 10; i++) {
int aleatorio = (10) + (int)(Math.random() * 91); // Esta formula se las di!
if (aleatorio % 2 == 0) { // es par
System.out.println("El numero " + aleatorio + " es par!");
} else { // es impar
System.out.println("El numero " + aleatorio + " es impar!");
}
}

2. Dada la funcion f1 = X*X + 2*X - 7 y f2 = 5 * X - 7, decir, si es el caso, si se cumple para algunos valores de x entre -20 y 20 que f1(x) = f2(x).

Solucion:
// el rango es de -20 a 20, por eso hacemos un for en este rango.
for (int i = 1; i <= 10; i++) {
int f1 = i * i + 2 * i - 7;
int f2 = 5 * i - 7;
if (f1 == f2) { // Son iguales
System.out.println("Para x = " + i + " las funciones tienen el mismo valor");
} else { // No son iguales
System.out.println("Para x = " + i + " las funciones NO tienen el mismo valor");
}
}

3. Se sabe que un numero es primo si acepta como unicos divisores a el numero 1 y el mismo, ejemplo 7 es primo ya que solo acepta como divisores a 1 y 7, no acepta mas divisores exatos. Es decir que si un numero n es divisible entre algun numero entre [2 y n - 1] no es primo. Sabiendo esto, elaborar un algoritmo que genere un numero aleatorio entre 2 y 1000 y diga si dicho numero es o no primo, el algoritmo para determinar si el numero es o no primo debe usar bucle.

Solucion: [Hagala Usted! se termino la clase!]


Observaciones: seria muy buen idea que usted implemente todos los ejemplos resueltos en esta clase teorico practica de la unidad 2, la proxima clase es el taller.

LEP III - Unidad I - Practica

Caracas 15-02-2010
LEP III - Profesor Daniel Mora.
Unidad I. Bases de Datos - My SQL. practica.

A continuacion planteare este problema (previo al taller) para que lo hagan a manera de practica y asi discutirlo:
La empresa ABC se encarga de elaborar diversos productos finales, los cuales son elaborados con diversas materias primas, las materias primas son compradas a diversos proveedores y los productos finales a su vez vendidos a diversos compradores.
Considerando como clases de dominio las escritas en negrita, elabore:
1. El modelo de datos para el planteamiento dado.
2. La implementacion relacional para el modelo resultante.
3. Elabore querys para inserts, select, updates y deletes de las tablas resultantes.
4. Elabora querys para lo siguiente. Como saber que proveedores venden que materias primas? Como saber que productos se elaboran con que materias primas? Como saber que productos se venden a que compradores?

Utilice los estadares dados para solucionar el problema.
Este ejercicio no tienen por que entregarmelo, es solo para que practiquen antes del taller y discutir opiniones.

ADSII - Unidad II - Practica




























Caracas 15 de Febrero de 2010
Analisis y Diseno de Sistemas
Unidad II. Descripcion de casos de uso - Practica

Una vez disenado el estandar para la descripcion de cada uno de los casos de usos, plantearemos un problema para ejemplificar como hacer la descripcion de un caso de uso.

- Planteamiento ejemplo:
En el sistema de Informacion de evaluacion de alumnos del CUC, se desea implementar una funcionalidad para que el profesor cargue las nostas de las evaluaciones de los alumnos en el sistema. Para esto el profesor debe seleccionar el semestre, la asignatura y la evaluacion cuyas notas debe cargar, una vez hecho esto aparecera una pantalla con la lista de alumnos y un campo de entrada de datos por cada alumno para que la nota sea colocada, una vez colocada la nota el profesor debe seleccionar guardar, luego de guardar las notas el sistema debe mostrar la lista de alumnos con las notas almacenadas.

- Analisis del planteamineto:
Observemos que dado este planteamiento, nosotros como analistas debemos plantear un caso de uso para llevar a cabo esta funcionalidad a traves de un sistema de informacion. Lo primero que debemos hacer es tomar en cuenta que solo debemos capturar los requisitos funcionales, es decir no tomaremos en cuenta detalles de navegacion, seguridad o implementacion en nuestra descripcion de casos de eso. En el flujo normal, lo primero que se debe colocar es la condicion de inicio del caso de uso, otra cosa importante tambien es que dado este planteamiento, el cual nos indica el requisito que debemos satisfacer, nosotros como analisista debemos imaginarnos y proponer condiciones que son necesarias para el funcionamiento correcto del caso de uso, como por ejemplo, como el actor pudiera salir del caso de uso sin guardar nada? deberian validarse algunos datos? que pasos son necesarios para llevar a caso este caso de uso? nosotros como analisistas tambien debemos considerar cual seria la manera mas eficiente de satisfacer el requerimiento.

Una vez hecho este analisis procedo a plantearles una solucion que satisface a cabalidad lo solicitado en el requerimento, pero recuerden que no es la unica solucion posible, existen muchas, solo que algunas soluciones son mejores o mas eficientes que otras.

Descripcion del caso de uso guardar notas de alumnos:
Codigo: CU-GUAL
Nombre: Guardar notas de alumnos
Descripcion: este caso de uso es para guardar las nostas a los alumnos en una evaluacion, asignatura y semestres especificos.
Actor: evaluador de alumnos
Precondicion: Haber seleccionado el sementre, asignatura y evaluacion.

Curso normal:
Accion del actorRespuesta del sistema
1. El caso de uso inicia cuando el actor selecciona la evalucion a cargar.1. Muestra una pantalla para cargar las notas de los alumnos, una lista con los alumnos a ser evaluados, un campo de entrada de datos para colocar la nota a cada alumno, los botonos guardar, salir.
2. Coloca las notas en los campos de entrada de datos.
2. Acepta los valores colocados.
3. Presiona el boton guardar.
3. Valida los valores colocados en los campos de entrada de datos.
3.1. Si los datos no son validos, muestra un mensaje de error.
3.1. Si los datos son validos, guarda los datos, muestra la lista de alumnos con las notas almacenadas y un mensaje de exito.
Curso alterno:
Accion del actorRespuesta del sistema
1. Presiona el boton salir1. Finaliza el caso de uso
2. Presiona el boton guardar2. Sucede un error al guardar la data, muestra un mensaje de error y finaliza el caso de uso.
Postcondicion:
- Una lista de alumnos con las notas almacenadas.

- Una lista de alumnos con las notas mostradas por pantalla.