Está en la página 1de 72

UNIDAD 1 – ALGORITMOS Y FUNDAMENTACIÓN

EN JAVA
Msc. Esp. I.S Jairo Fuentes
CONTENIDO

• El problema y su proceso de solución


• Especificación del problema – Requerimientos funcionales
• Concepto de Algoritmo
• Características de los algoritmos
• Variables – Constantes
• Condiciones.
• Introducción al manejo de la IDE.
• Fundamentos del lenguaje Java
– Tipos de datos
– Asignación
– Cuerpo de un Programa
– Sintaxis de las instrucciones
– Expresiones aritméticas
– Operadores relacionales y lógicos.
– Condiciones (If – If anidados y switch)

17.08.17 ALGORITMOS Y FUNDAMENTACIÓN EN JAVA 2


MOTIVACIÓN
La programación es una actividad orientada a la solución de problemas.

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.

Un programador es la persona que es capaz de entender los problemas y necesidades de un


usuario y, a partir de dicho conocimiento, es capaz de construir un programa de computador
que los resuelva (o los ayude a resolver).

¿Cómo se define un problema?


¿Cómo, a partir del problema, se construye un programa para resolverlo?
¿De qué está conformado un programa?
¿Cómo se construyen sus partes?
¿Cómo se hace para que el computador entienda la solución?

17.08.17 ALGORITMOS Y FUNDAMENTACIÓN EN JAVA 3


EL PROBLEMA Y SU SOLUCIÓN
EL PROCESO DE SOLUCIÓN

Proyecto Cupi2
Universidad de los Andes

17.08.17 RESOLUCIÓN DE PROBLEMAS 4


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA

Considere el caso de un ingeniero civil que se enfrenta al problema de construir una


carretera. Lo primero que éste debe hacer es tratar de entender y especificar el problema que
le plantean. Para eso debe tratar de identificar al menos tres aspectos del problema:

(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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 5


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA

En general, todos los problemas se pueden dividir en estos tres aspectos.

(1) Se debe identificar lo que el cliente espera de la solución. Esto se denomina un


requerimiento funcional. Este hace referencia a un servicio que el programa debe proveer al
usuario.

(2) El mundo o contexto en el que ocurre el problema. Si alguien va a escribir un programa


para una empresa, no le basta con entender la funcionalidad que éste debe tener, sino que
debe entender algunas cosas de la estructura y funcionamiento de la empresa. Por ejemplo,
si hay un requerimiento funcional de calcular el salario de un empleado, la descripción del
problema debe incluir las normas de la empresa para calcular un salario.

17.08.17 RESOLUCIÓN DE PROBLEMAS 6


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA

(3) Requerimientos no funcionales, que corresponden a las restricciones o condiciones que


impone el cliente al programa que se le va a construir. Fíjese que estos últimos se utilizan para
limitar las soluciones posibles. En el caso del programa de una empresa, una restricción
podría ser el tiempo de entrega del programa, o la cantidad de usuarios simultáneos que lo
deben poder utilizar.

17.08.17 RESOLUCIÓN DE PROBLEMAS 7


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA – Ejemplo 1

Objetivo: Identificar los aspectos que hacen parte de un problema.

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.

Cliente: La empresa de aviación

Usuario: 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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 8


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA – Ejemplo 1

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.

Requerimiento no funcional: El único requerimiento no funcional mencionado en el


enunciado es el de distribución, ya que las agencias de viaje están geográficamente dispersas
y se debe tener en cuenta esta característica al momento de construir el programa.

17.08.17 RESOLUCIÓN DE PROBLEMAS 9


EL PROBLEMA Y SU SOLUCIÓN
ESPECIFICACIÓN DEL PROBLEMA – Actividad 1 (En grupo)

Objetivo: Identificar los aspectos que forman parte de un problema.

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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 10


EL PROBLEMA Y SU SOLUCIÓN
EL PROCESO DE SOLUCIÓN

Proyecto Cupi2
Universidad de los Andes

17.08.17 RESOLUCIÓN DE PROBLEMAS 11


EL PROBLEMA Y SU SOLUCIÓN
EL PROCESO DE SOLUCIÓN

Análisis del problema


El objetivo de esta etapa Construcción de la solución
es entender y especificar Tiene como objetivo implementar
el problema que se quiere el programa a partir del diseño y
resolver. Cuanto más tarde probar su correcto funcionamiento.
se detecta un error, más
costoso es corregirlo.
Diseño de la solución
El objetivo es detallar, usando algún
lenguaje (planos, dibujos, ecuaciones,
diagramas, texto, etc.), las características
que tendrá la solución antes de ser
construida. Los diseños nos van a permitir
mostrar la solución antes de comenzar el
proceso de fabricación propiamente dicho.

17.08.17 RESOLUCIÓN DE PROBLEMAS 12


ESPECIFICACIÓN DEL PROBLEMA
¿Cómo especificar un requerimiento funcional?, ¿cómo saber si algo es un requerimiento
funcional?, ¿cómo describir el mundo del problema? Es imposible resolver un problema que
no se entiende.
Un requerimiento funcional se puede ver como un servicio
que el programa le ofrece al usuario para resolver una parte
REQUERIMIENTOS FUNCIONALES del problema.

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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 13


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES

Para determinar si algo es o no un requerimiento funcional, es conveniente hacerse tres


preguntas:

¿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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 14


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1

Caso de Estudio N1: Un Empleado

Para este caso de estudio vamos a considerar un programa que administra la información de
un empleado.

El empleado tiene un nombre, un apellido, un género (masculino o femenino), una fecha de


nacimiento y una imagen asociada (su foto). Además, tiene una fecha de ingreso a la empresa
en la que trabaja y un salario básico asignado.

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).

17.08.17 RESOLUCIÓN DE PROBLEMAS 15


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1

Objetivo: Ilustrar la manera de documentar los requerimientos funcionales de un problema.


Para esto se describen los cuatro elementos que lo componen.

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.

17.08.17 RESOLUCIÓN DE PROBLEMAS 16


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1

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

Nombre R1: actualizar el salario básico del empleado


Resumen Permite modificar el salario básico del empleado
Entradas Nuevo salario
Salida El salario del empleado ha sido actualizado con el nuevo salario

17.08.17 RESOLUCIÓN DE PROBLEMAS 18


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1

Nombre R2: ingresar la información del empleado


Resumen Permite al usuario ingresar la información del empleado: datos
personales y datos de vinculación a la empresa
Entradas Nombre del empleado
Apellido del empleado
Sexo del empleado
Fecha de nacimiento
Fecha de ingreso a la compañía
Salario básico
Foto del empleado
Salida Empleado creado

17.08.17 RESOLUCIÓN DE PROBLEMAS 19


ESPECIFICACIÓN DEL PROBLEMA
REQUERIMIENTOS FUNCIONALES – Ejemplo 1
Nombre R3: Calcular la edad del empleado
Resumen Permite conocer la edad del empleado.
Entradas Fecha nacimiento
Salida Mostrar la edad del empleado

Nombre R4: Calcular la antigüedad en años del empleado en la empresa


Resumen Permite conocer el número de años que el empleado lleva en la empresa
Entradas Fecha de ingreso a la empresa, fecha actual.
Salida Mostrar la antigüedad del empleado.

Nombre R5: Calcular las prestaciones del empleado


Resumen Permite realizar el calculo de las prestaciones del empleado a partir de la
formula: p= (a * s) / 12. a= antigüedad, s= salario.
Entradas Antigüedad y salarios del empleado
Salida Mostrar el valor correspondiente a las prestaciones del empleado.
17.08.17 RESOLUCIÓN DE PROBLEMAS 20
EL PROCESO DE SOLUCIÓN

Proyecto Cupi2 - Universidad de los Andes

17.08.17 ALGORITMOS Y FUNDAMENTACIÓN EN JAVA 21


PROGRAMA DE COMPUTADOR

La memoria: representa el estado de la maquina en un momento del tiempo.


Esta dividida en múltiples secciones que llamamos posiciones de memoria,
cada posición tiene asociados un número (generalmente un hexadecimal) que
permite distinguir las posiciones entre sí y un valor, que representa el dato
almacenado.

Tomado de: Libro introducción práctica a las ciencias de la computación. Autor Daniel Cañizares. Universidad Católica del Oriente

ALGORITMOS Y FUNDAMENTACIÓN EN JAVA


Concepto de Algoritmo
Los datos y la información se pueden
introducir en la computadora como entrada
y a continuación se procesan para producir
una salida.

PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

ALGORITMOS Y FUNDAMENTACIÓN EN JAVA


Ejemplo: ¿Cuál seria la entrada, el proceso y
la salida para calcular el promedio de las
calificaciones obtenidas por los alumnos de
programación?
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Las calificaciones obtenidas por los alumnos


en la materia de programación.
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Sumar los valores numéricos de todas las


calificaciones del curso y dividir el resultado
entre el número de estudiantes.
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Un número que representa la calificación


promedio del curso de programación.
Ejemplo: ¿Cuál seria la entrada, el proceso y
la salida para calcular el área de un
triangulo?
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Los datos de la base y la altura del


rectángulo.
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Multiplicar los datos de la base por la altura


y dividirla entre dos. A= base * altura / 2
PROCESO
Clasificar
DATOS DE Ordenar DATOS DE
ENTRADA Calcular SALIDA
Almacenar

Un número que representa el área del


rectángulo.
¿QUÉ ES UN ALGORITMO?

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.

Según Joyanes “un algoritmo es un método para resolver un


problema”.

Los algoritmos son independientes del lenguaje de


programación en que se expresan como de la computadora
que los ejecuta.

Las solución a un problema siempre se puede expresar como


un algoritmo.
EJEMPLO DE ALGORITMO

Escriba el algoritmo para elaborar


emparedados de jamón y queso con salsa de
tomate.

Identifique las entradas y la salida.


EJEMPLO DE ALGORITMO

Entradas:

- El pan, el jamón, el queso, la salsa de tomate.

Salida:

- Comer emparedados armados a gusto de la persona la cantidad


que desee.

17.08.17 RESOLUCIÓN DE PROBLEMAS 35


EJEMPLO DE ALGORITMO

1. Coloque el pan, el jamón, el queso, la salsa de tomate y un


cuchillo en la mesa de trabajo.
2. Ponga dos rebanadas de pan en un plato.
3. Con el cuchillo unte las dos rebanadas de pan con la salsa
de tomate.
4. Coloque el jamón sobre una rebanada de pan.
5. Si quiere queso colóquelo sobre el jamón
6. Coloque la otra rebanada de pan sobre el queso y el jamón
respectivamente.
7. Repita los pasos 2 al 6 por cada emparedado que requiera.
8. Cómase los emparedados.
9. FIN
EJEMPLO DE ALGORITMO

Un cliente realiza un pedido a una fabrica. La


fábrica examina en su base de datos la ficha del
cliente, si el cliente tiene capacidad de crédito y
no ha pasado su cupo de endeudamiento la
empresa acepta el pedido, en caso contrario lo
rechaza.
EJEMPLO DE ALGORITMO

Entradas:

- Identificación del cliente, los datos del pedido

Salida:

- Aceptar o rechazar el pedido

17.08.17 RESOLUCIÓN DE PROBLEMAS 38


EJEMPLO DE ALGORITMO

1. Leer los datos del pedido (productos, valor del


pedido).
2. Leer la identificación del cliente
3. Buscar la ficha del cliente en la base de datos
4. Obtener el cupo de endeudamiento y el límite de
crédito.
5. Si el cliente tiene cupo para endeudamiento y no
sobrepasa el límite de crédito, aceptar el pedido, en
caso contrario rechazar el pedido
6. FIN.
CARACTERÍSTICAS DE LOS ALGORITMOS

1. Cuenta con datos de entrada, realiza un


proceso y produce un resultado.
2. Debe ser claro y no ambiguo.
3. Debe resolver el problema correctamente.
4. Puede ser seguido con lápiz y papel.
5. Debe ejecutarse en un número finito de
pasos.
COMPONENTES DE UN ALGORITMO

1. Variables
2. Constantes
3. Asignaciones
4. Sentencias y operaciones
5. Ciclos repetitivos
6. Decisiones
VARIABLES Y CONSTANTES

Variable: Es una ubicación de memoria cuyo


contenido puede ser cambiado durante la
ejecución de un programa.

Constante: Es una ubicación de memoria


cuyo contenido permanece igual durante la
ejecución del programa.

Todas las variables y constantes deben ser


declaradas al iniciar el programa.
VARIABLES Y CONSTANTES
Espacio en memoria
0 + 4.5

0 4.5
Variable Suma Inicia Suma en 0 Sumar calificación: 4.5 a Suma

4.5 + 3.5

El valor de Suma Imprimir Suma


es: 8.0 8.0
Sumar otra calificación :
3.5 a Suma
VARIABLES Y CONSTANTES

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

La declaración de variables y/o constantes


implica decirle al computador:

• Si es constante o variable.
• Cómo se llamará en el programa.
• El tipo de datos que contendrá
ASIGNACIÓN DE VARIABLES

La asignación implica colocar valores en las


variables es decir en los espacios de memoria.

La asignación siempre se hace de izquierda a


derecha.

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

Escribir el algoritmo para un cajero bancario, en


el cual una persona introduce su número de
identificación y clave, selecciona la cuenta
bancaria y la opción de retirar dinero o hacer
un depósito. El sistema debe verificar que al
retirar tenga los fondos suficientes para realizar
la transacción.
DATOS DE ENTRADA

• 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

• Verificar datos del usuario.


• Retirar:
– Verificar que la cantidad a retirar sea menor o igual al
saldo
– Restar cantidad a retirar del saldo de la cuenta.
– Entregar dinero al usuario
• Consignar:
– Recibir dinero del usuario.
– Verificar el dinero con la cantidad a consignar
– Sumar la cantidad a consignar al saldo.
– Imprimir recibo de la transacción.
ALGORITMO DEL CAJERO AUTOMÁTICO
1. Pedir, leer o capturar el número de identificación y clave del usuario.
2. Verificar los datos del usuario. Si la clave es incorrecta, mostrar mensaje de
error. Ir luego al punto 9.
3. Buscar las cuentas bancarias del usuario y presentarlas en pantalla.
4. Leer la cuenta bancaria donde se va a realizar la operación.
5. Leer la operación a realizar.
6. Si la operación es retirar:
1. Leer el monto de dinero a retirar.
2. Verificar que el monto a retirar sea menor o igual al saldo. Si el saldo no
es suficiente, mostrar mensaje de fondos insuficientes. Ir luego al punto 9
3. Restar la cantidad a retirar del saldo.
4. Entregar dinero al usuario.
7. Si la opción es hacer una consignación:
1. Leer la cantidad a depositar.
2. Recibir el dinero a consignar.
3. Verificar el dinero suministrado con la cantidad a consignar.
4. Si no coinciden la cantidad a consignar con el dinero suministrado se
debe mostrar un mensaje de error y devolver el dinero. Ir al punto 9
5. Sumar la cantidad a consignar al saldo de la cuenta.
8. Expedir el recibo de la transacción.
9. Terminar transacción.
OTRA SOLUCIÓN DEL ALGORITMO DEL CAJERO AUTOMÁTICO

1. Pedir, leer o capturar el número de identificación y clave del usuario.


2. Leer el saldo de la cuenta
3. Leer la operación a realizar.
4. Si la operación es retirar:
1. Leer el monto de dinero a retirar.
2. Verificar que el monto a retirar sea menor o igual al saldo. Si el
saldo no es suficiente, mostrar mensaje de fondos insuficientes. Ir
luego al punto 9
3. Restar la cantidad a retirar del saldo.
5. Si la opción es hacer una consignación:
1. Leer la cantidad a depositar.
2. Sumar la cantidad a consignar al saldo de la cuenta.
6. Expedir el recibo de la transacción.
7. Terminar transacción.
EJERCICIOS

Desarrolle los siguientes problemas:


1. Identificar los datos de entrada, proceso y salida. Escribir el
algoritmo que permita calcular el área y el perímetro de un
triangulo.
2. Identificar los datos de entrada, proceso y salida. Escribir el
algoritmo que permita calcular el volumen de un Cubo.
3. Identificar entradas, procesos y salida. Escribir un algoritmo
para una calculadora simple que recibe un número A, un
número B y la operación a realizar entre ellos. El resultado
es la operación hecha sobre los números. Haga el
seguimiento en papel del algoritmo creado.
EJERCICIO 4
Se requiere obtener el área de la figura de la forma A. Para resolver este
problema se puede partir de que está formada por tres figuras: dos triángulos
rectángulos, con H como hipotenusa y R como uno de los catetos, que también
es el radio de la otra figura, una semicircunferencia que forma la parte circular
(ver forma B).

1. Identificar datos de entrada, procesos y datos de salida del programa.


2. Elaborar el algoritmo o pseudocódigo.
EJERCICIO 5

Una tienda de deportes hace un 25% de descuento en balones


de baloncesto, fútbol y beisbol. Se necesita escribir un
programa que le permita a un empleado introducir los precios
originales de los productos. El programa deberá utilizar estos
datos para hallar el precio rebajado (precio original menos el
25% porciento de descuento). La salida del programa deberá
mostrar el precio original y el precio tras el descuento.

1. Identificar datos de entrada, procesos y datos de salida del


programa.
2. Elaborar el algoritmo o pseudocódigo.
EJERCICIO 6

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.

El programa deberá mostrar la siguiente información en líneas separadas: el


nombre del cliente, el título de la película y el recargo por retraso.

1. Identificar datos de entrada, procesos y datos de salida del programa.


2. Elaborar el algoritmo o pseudocódigo.
EJERCICIO 7

El gerente de una empresa le solicita que realice un programa para calcular el


salario semanal de un trabajador de acuerdo a las siguientes condiciones: se
introduce el nombre del trabajador, el número de horas trabajadas y el valor
de la hora de trabajo. El programa debe calcular la retención en la fuente al
trabajador que es el 10% del salario bruto, el descuento por seguridad social
que es el 8% del salario bruto y calcular el valor a descontar por concepto de
pensión que es el 8% del salario bruto.

El programa deberá mostrar en líneas separadas la siguiente información: el


nombre del trabajador, el salario bruto, la cantidad a descontar por retefuente,
por seguridad social y por pensión. Por último mostrar el total a pagar al
trabajador.

1. Identificar datos de entrada, procesos y datos de salida del programa.


2. Elaborar el algoritmo o pseudocódigo.
EJERCICIO 8
Enunciado: Se requiere elaborar una aplicación que permita calcular el total a pagar por
una persona que deja su vehículo en un parqueadero. El cobro se realiza de acuerdo al tipo
de vehículo según la siguiente tabla:

Tipo de Vehículo Valor a cobrar


1 – Automóvil $ 2.000 hora
2 – Camionetas $ 2.500 hora
3 – Motos $ 1.000 hora
4 – Buses $ 3.000 hora
5 – Camiones $ 4.000 hora

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.

Minutos Porcentaje adicional a cobrar


1 – 15 minutos 10%
16 – 30 minutos 40%
31 – 45 minutos 60%
46 – 59 minutos 80%
EJERCICIO 9

Se requiere elaborar un programa que permita registrar la entrada y salida de


elementos al inventario de un supermercado. Se debe pedir la siguiente
información para un producto: el código, el nombre, el valor unitario del
producto, el porcentaje del iva (número entre 0 y 100) y la cantidad que se
tiene en existencias. El sistema debe permitir: registrar la entrada de
productos al inventario, registrar la salida de elementos del inventario y calcular
el valor total del inventario.

1.Identificar datos de entrada, procesos y datos de salida del programa.


2.Elaborar el algoritmo o pseudocódigo.
10. SISTEMA VUELOS AVIANCA
La empresa Avianca está interesada en un programa que permita evaluar el pago: tiquete de
un cliente. Se cuenta con el nombre, cédula, tipo de boleto (primera clase, segunda clase,
tercera clase), destino (Europa, américa del norte, américa del sur, islas del caribe), zona
(fumador, no fumador). El valor base en pesos del boleto se calcula con base a:

Destino Primera Clase Segunda Clase Tercera Clase


Europa 2500000 2100000 1900000
América del Norte 2000000 1700000 1400000
América del Sur 1000000 900000 750000
Islas Caribe 800000 700000 500000

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.

Salida: nombre cliente, valor boleto, descuento, recargos y total a pagar.

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%.

17.08.17 Algorítmos y pseudocódigo 63


10. SISTEMA VUELOS AVIANCA
Algoritmo:

1. Leer nombre, cedula, tipoBoleto, destino y zona


2. Si el tipo de boleto es “Primera Clase”
1. Si destino es “Europa ” entonces asignar valorBoleto = 2500000
2. Si destino es “America del norte” entonces asignar valorBoleto = 2000000
3. Si destino es “America del sur” entonces asignar valorBoleto = 1000000
4. Si destino es “Islas del caribe” entonces asignar valorBoleto = 800000
3. Si el tipo de boleto es “Segunda Clase”
1. Si destino es “Europa ” entonces asignar valorBoleto = 2100000
2. Si destino es “America del norte” entonces asignar valorBoleto = 1700000
3. Si destino es “America del sur” entonces asignar valorBoleto = 900000
4. Si destino es “Islas del caribe” entonces asignar valorBoleto = 700000
4. Si el tipo de boleto es “Tercera Clase”
1. Si destino es “Europa ” entonces asignar valorBoleto = 1900000
2. Si destino es “America del norte” entonces asignar valorBoleto = 1400000
3. Si destino es “America del sur” entonces asignar valorBoleto = 750000
4. Si destino es “Islas del caribe” entonces asignar valorBoleto = 500000
17.08.17 Algorítmos y pseudocódigo 64
10. SISTEMA VUELOS AVIANCA
Algoritmo:

5. Si zona es “Fumador” entonces asignar recargo = valorBoleto*8/100


6. Si tipoBoleto es “Primera Clase” y zona es “No fumador” entonces descuento =
valorBoleto * 10 / 100
7. Si tipoBoletos es “segunda Clase” ó tipo de Boleto “tercera Clase” y zona es “ no fumador”
entonces asignar descuento = valorBoleto * 5 / 100.
8. Calcular total a pagar = valorBoleto – descuento + recargo.
9. Mostrar – Imprimir nombre cliente, valor boleto, descuento, recargos y total a pagar.
10. FIN.

Variables
- String -- nombre, cedula, tipoBoleto, destino y zona
- Int: valorBoleto, descuento, recargo, totalpagar.

17.08.17 Algorítmos y pseudocódigo 65


pseudocodigo: 10. SISTEMA VUELOS AVIANCA
1. String nombre, cedula, tipoBoleto, destino, zona
2. Int valorBoleto=0, descuento=0, recargo=0, totalpagar=0.
3. Leer nombre, cedula, tipoBoleto, destino y zona /// JoptionPane.showInputDialog
4. If (tipoBoleto.equals(“Primera Clase”))
1. If (destino.equals( “Europa ”) valorBoleto = 2500000
2. If( destino.equalsI( “America del norte”) valorBoleto = 2000000
3. If (destino.equals( “America del sur”) valorBoleto = 1000000
4. If(destino.equals( “Islas del caribe”) valorBoleto = 800000
5. If(tipoBoleto.equals( “Segunda Clase”)
1. If (destino.equals( “Europa ”) valorBoleto = 2100000
2. If (destino.equals(“America del norte”) valorBoleto = 1700000
3. If (destino.equals( “America del sur” ) valorBoleto = 900000
4. If (destino.equals(“Islas del caribe” ) valorBoleto = 700000
6. If(tipoBoleto.equals( “Tercera Clase”))
1. If (destino.equals( “Europa ”) )valorBoleto = 1900000
2. If (destino.equals( “America del norte”)) valorBoleto = 1400000
3. If (destino.equals( “America del sur” )) valorBoleto = 750000
4. If (destino.equals(“Islas del caribe”)) valorBoleto = 500000
17.08.17 Algorítmos y pseudocódigo 66
10. SISTEMA VUELOS AVIANCA
Algoritmo:

7. If (zona.equals(“Fumador” ) recargo = valorBoleto*8/100


8. If (tipoBoleto.equals(“Primera Clase”) && (zona.equals(“No fumador”)) descuento =
valorBoleto * 10 / 100
5. If ((tipoBoletos.equals(“segunda Clase”) || (tipoBoleto.equals(“tercera Clase”)) &&
(zona.equals( “ no fumador”) ) descuento = valorBoleto * 5 / 100.
6. total Pagar = valorBoleto – descuento + recargo.
7. Mostrar – Imprimir nombre cliente, valor boleto, descuento, recargos y total a pagar.
8. FIN.

Variables
- String -- nombre, cedula, tipoBoleto, destino y zona
- Int: valorBoleto, descuento, recargo, totalpagar.

17.08.17 Algorítmos y pseudocódigo 67


11. BILLETES DEL CAJERO
Se requiere elaborar el algoritmo que usa el cajero para entregar el dinero
solicitado por el cliente, el cual entrega un número de billetes de cierta
cantidad. Se ingresa la cantidad de dinero a retirar y a entregar al cliente.
Considerando que existen billetes de las siguientes denominaciones (100,
50, 20, 10, 5, 2, 1), el programa debe presentar el número de billetes de
cada denominación que debe entregar el cajero, dando prioridad al valor
más alto. Por ejemplo si la persona quiere retirar 5217, el sistema debe
presentar la cantidad de billetes de cada denominación a entregar, como se
muestra en la siguiente tabla:

•Identificar datos de entrada, procesos y datos de salida del programa.


Elaborar el algoritmo o pseudocódigo.
Cantidad Denominación
52 100
0 50
0 20
1 10
1 5
1 2
0 1

17.08.17 RESOLUCIÓN DE PROBLEMAS 68


10. SISTEMA VUELOS AVIANCA
Entradas:
- cantidad de dinero a retirar

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:

- Int cantidadRetirar, numeroBilletes100, numeroBilletes50, numeroBilletes20,


numeroBilletes10, numeroBilletes5, numeroBilletes2, numeroBilletes1, residuo.

- % - Calcula el residuo de una división.


17.08.17 Algorítmos y pseudocódigo 69
pseudocodigo: 10. SISTEMA VUELOS AVIANCA
1. Int cantidadRetirar, numeroBilletes100, numeroBilletes50, numeroBilletes20,
numeroBilletes10, numeroBilletes5, numeroBilletes2, numeroBilletes1, residuo.
2. Leer cantidadRetirar/// JoptionPane.showInputDialog.
3. If (cantidadRetirar >= 100)
1. numeroBilletes100 = cantidadRetirar / 100;
2. residuo = cantidarRetirar % 100
4. If (residuo >= 50)
1. numeroBilletes50 = residuo / 50
2. residuo = residuo % 50
5. If (residuo >= 20)
1. numeroBilletes20 = residuo / 20
2. residuo = residuo % 20
6. if (residuo >= 10)
1. numeroBilletes10 = residuo / 10
2. residuo = residuo % 10
7. If (residuo >= 5)
1. numeroBilletes5 = residuo / 5
2. residuo = residuo % 5
17.08.17 Algorítmos y pseudocódigo 70
pseudocodigo: 10. SISTEMA VUELOS AVIANCA
8. If (residuo >= 2)
1. numeroBilletes2 = residuo / 2
2. residuo = residuo % 2
9. If (residuo >= 1)
1. numeroBilletes1 = residuo
10. Imprimir numeroBilletes100, numeroBilletes50, numeroBilletes20, numeroBilletes10,
numeroBilletes5, numeroBilletes2, numeroBilletes1
11. FIN.

17.08.17 Algorítmos y pseudocódigo 71


GRACIAS

17.08.17 RESOLUCIÓN DE PROBLEMAS 72

También podría gustarte