Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EN JAVA
Msc. Esp. I.S Jairo Fuentes
CONTENIDO
La programación se puede considerar como una actividad de servicio para otras disciplinas,
cuyo objetivo es ayudar a resolver problemas, construyendo soluciones que utilizan como
herramienta un computador.
Proyecto Cupi2
Universidad de los Andes
(1) Los requerimientos del usuario (entre qué puntos quiere el cliente la carretera, cuántos
carriles debe tener, para qué tipo de tráfico debe ser la carretera)
(2) El mundo en el que debe resolverse el problema (el tipo de terreno, la cantidad de lluvia,
la temperatura)
(3) Las restricciones y condiciones que plantea el cliente (el presupuesto máximo, que las
pendientes no sobrepasen el 5%).
Sería una pérdida de tiempo y de recursos para el ingeniero civil, intentar construir la
carretera si no ha entendido y definido claramente los tres puntos antes mencionados.
El problema: una empresa de aviación quiere construir un programa que le permita buscar
una ruta para ir de una ciudad a otra, usando únicamente los vuelos de los que dispone la
empresa. Se quiere utilizar este programa desde todas las agencias de viaje del país.
Requerimiento funcional: R1: dadas dos ciudades C1 y C2, el programa debe dar el itinerario
para ir de C1 a C2, usando los vuelos de la empresa. En este ejemplo sólo hay un
requerimiento funcional explícito. Sin embargo, lo usual es que en un problema haya varios
de ellos.
Mundo del problema: En el enunciado no está explícito, pero para poder resolver el
problema, es necesario conocer todos los vuelos de la empresa y la lista de ciudades a las
cuales va. De cada vuelo es necesario tener la ciudad de la que parte, la ciudad a la que llega,
la hora de salida y la duración del vuelo. Aquí debe ir todo el conocimiento que tenga la
empresa que pueda ser necesario para resolver los requerimientos funcionales.
El problema: un banco quiere crear un programa para manejar sus cajeros automáticos.
Dicho programa sólo debe permitir retirar dinero y consultar el saldo de una cuenta.
Identifique y discuta los aspectos que constituyen el problema. Si el enunciado no es explícito
con respecto a algún punto, intente imaginar la manera de completarlo.
Cliente.
Usuario.
Requerimiento(s) funcional(es).
Mundo del problema.
Requerimiento no funcional.
Proyecto Cupi2
Universidad de los Andes
Es una operación que el programa (a construir) debe proveer al usuario, y que está
directamente relacionada con el problema que se quiere resolver. Se describe a través de
cuatro elementos:
• Un identificador y un nombre.
• Un resumen de la operación.
• Las entradas (datos) que debe dar el usuario para que el programa pueda realizar la
operación.
• El resultado esperado de la operación. Hay tres tipos posibles de resultado en un
requerimiento funcional: (1) una modificación de un valor en el mundo del problema, (2)
el cálculo de un valor, o (3) una mezcla de los dos anteriores.
¿Poder realizar esta operación es una de las razones por las cuales el cliente necesita
construir un programa? Esto descarta todas las opciones que están relacionadas con el
manejo de la interfaz y todos los requerimientos no funcionales, que corresponden a
restricciones.
¿La operación no es ambigua? La idea es descartar que haya más de una interpretación
posible de la operación.
¿La operación tiene un comienzo y un fin? Hay que descartar las operaciones que implican
una responsabilidad continua (por ejemplo, "mantener actualizada la información del
empleado") y tratar de buscar operaciones puntuales que correspondan a acciones que
puedan ser hechas por el usuario.
Para este caso de estudio vamos a considerar un programa que administra la información de
un empleado.
Desde el programa se debe poder cambiar el salario del empleado, lo mismo que hacer los
siguientes cálculos con la información disponible: (1) edad actual, (2) antigüedad en la
empresa y (3) prestaciones a las que tiene derecho en la empresa. Para el cálculo de las
prestaciones se utiliza la fórmula p = (a * s)/12 (p: prestaciones, a: antigüedad, s: salario).
Nombre:
R1: actualizar el salario básico del empleado
Es conveniente asociar un identificador con cada requerimiento, para poder hacer fácilmente
referencia a él. En este caso el identificador es R1. Es aconsejable que el nombre de los
requerimientos corresponda a un verbo en infinitivo, para dar una idea clara de la acción
asociada con la operación. En este ejemplo el verbo asociado con el requerimiento es
"actualizar".
Resumen:
Permite modificar el salario básico del empleado
El resumen es una frase corta que explica sin mayores detalles el requerimiento funcional.
Entradas:
Nuevo salario
Las entradas corresponden a los valores que debe suministrar el usuario al programa para
poder resolver el requerimiento. Si el usuario no da como entrada el nuevo salario que quiere
asignar al empleado, el programa no podrá hacer el cambio. Un requerimiento puede tener
cero o muchas entradas. Cada entrada debe tener un nombre que indique claramente su
contenido. No es buena idea utilizar frases largas para definir una entrada.
Salida:
El salario del empleado ha sido actualizado con el nuevo salario
El resultado de este ejemplo es una modificación de un valor en el mundo del problema: el
salario del empleado cambió. Un ejemplo de un requerimiento que calcula un valor podría ser
aquel que informa la edad del empleado. Fíjese que el hecho de calcular esta información no
implica la modificación de ningún valor del mundo del problema. Un ejemplo de un
requerimiento que modifica y calcula a la vez, podría ser aquél que modifica el salario del
empleado y calcula la nueva retención en la fuente.
17.08.17 RESOLUCIÓN DE PROBLEMAS 17
ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1
Tomado de: Libro introducción práctica a las ciencias de la computación. Autor Daniel Cañizares. Universidad Católica del Oriente
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar
Es un conjunto
finito de
instrucciones o
pasos que se
deben seguir para
resolver un
problema
¿QUÉ ES UN ALGORITMO?
Siempre utilizamos algoritmos, al realizar una tarea, el
algoritmo indica cada paso en el orden apropiado para
realizarla.
Entradas:
Salida:
Entradas:
Salida:
1. Variables
2. Constantes
3. Asignaciones
4. Sentencias y operaciones
5. Ciclos repetitivos
6. Decisiones
VARIABLES Y CONSTANTES
0 4.5
Variable Suma Inicia Suma en 0 Sumar calificación: 4.5 a Suma
4.5 + 3.5
Espacio en memoria
0 + 4.5
3.1416 0 4.5
Constante PI = 3.1416 Inicia PI en 0 Sumar 4.5 a PI
Imprimir PI
El valor de PI es:
3.1416
VARIABLES Y CONSTANTES
• Si es constante o variable.
• Cómo se llamará en el programa.
• El tipo de datos que contendrá
ASIGNACIÓN DE VARIABLES
Variable = valor
REGLAS PARA LA ASIGNACIÓN DE
VARIABLES
1. Solo un nombre puede ir a la izquierda del signo igual,
porque es la ubicación de memoria que va a cambiar.
2. Las constantes no pueden ir a la izquierda del signo igual,
porque no pueden cambiar.
3. El valor de la derecha del signo igual puede ser una
constante, otra variable o una formula o expresión
aritmética que combine constantes y variables.
4. Cualquier cosa a la derecha del signo igual no cambia.
5. La variable y el valor a asignar debe ser del mismo tipo de
datos.
SENTENCIAS Y OPERACIONES
Indican acciones que se realizan sobre las
variables, pueden ser asignaciones,
inicialización de variables en algún valor, o
realización de cálculos matemático sobre las
variables.
EJEMPLO
• Identificación.
• Tipo de transacción a realizar (Retiro o Consignación)
• Seleccionar cuenta bancaria.
• Cantidad a retirar
• Cantidad a consignar
• Clave del usuario
DATOS DE SALIDA
• Saldo actualizado.
• Dinero entregado al usuario.
• Recibo de la transacción.
PROCESOS
Se solicita realizar un programa para un video club que calcule el recargo que
tienen que pagar los clientes cuando se retrasan en la devolución de películas
de acuerdo a los siguientes requerimientos: el alquiler de los videos cuesta
$2000 pesos al día, que se pagan en el momento de alquilarlos. El periodo de
alquiler es de un día. El recargo por retraso es de $500 al día y se pagará al
devolver la película. Cuando el cliente entregue la película un operario
introducirá los siguientes datos: nombre del cliente, título de la película y
número de días de retraso.
Las fracciones de hora se deben cobrar de acuerdo a la tabla que aparece a continuación.
Las fracciones de hora corresponden a los minutos que se pasaron después de que cumpla
una hora el vehículo en el parqueadero, por ejemplo, si el vehículo ingresó a las 10:00 y
salió a las 11:15, se cobra una hora y 15 minutos por fracción de hora, si el vehículo ingresó
a las 8:00 y salió a las 11:30, se cobran dos horas y 30 minutos por fracción de hora.
Cabe mencionar que si el cliente ha comprado boleto en primera clase y se encuentra en zona
de no fumadores recibe un descuento del 10%, sobre el valor base del boleto, en caso de ser
fumador le dan un recargo del 8% sobre el valor del boleto. Para los clientes que viajan en
segunda clase o tercera clase y se encuentran en zona de no fumadores le dan un descuento
del 5% y para el caso de fumadores un recargo del 8% del valor del boleto. Se debe mostrar el
nombre del cliente, el valor del boleto, el valor del descuento o recargo si aplica y el total a
pagar.
17.08.17 Algorítmos y pseudocódigo 62
10. SISTEMA VUELOS AVIANCA
Entradas: nombre, cédula, tipo de boleto, destino, zona.
Procesos:
- Identificar valor del boleto.
- Calcular el recargo
- Calcular el descuento
- Calcular total a pagar
- Si la zona es “fumador” tiene recargo del 8%
- Si esta en primera clase y en zona no fumadores tiene descuento del 10%
- Si esta en segunda o tercera clase y en zona no fumadore el descuento es del 5%.
Variables
- String -- nombre, cedula, tipoBoleto, destino y zona
- Int: valorBoleto, descuento, recargo, totalpagar.
Variables
- String -- nombre, cedula, tipoBoleto, destino y zona
- Int: valorBoleto, descuento, recargo, totalpagar.
Salida:
- numero de billetes de 100,50, 20, 10, 5, 2 y 1.
Procesos:
- Dividir cantidad a retirar por cada numero de billetes, teniendo en cuenta el residuo para
la siguiente denominación.
Variables: