Está en la página 1de 25

2.

3 EJERCICIOS APLICADOS DIAGRAMAS DE FLUJO Y SEUDOCÓDIGOS

Para el desarrollo de los ejercicios y la elaboración de los algoritmos se van a utilizar las técnicas de
seudocódigo y la herramienta gráfica (Diagrama de Flujo). Adicionalmente se levantará una prueba de
escritorio con el fin de comparar de alguna forma el comportamiento del algoritmo de acuerdo a los
datos esperados del problema.

Seudocódigo se elaborará de acuerdo a las recomendaciones entregadas en clases anteriores


(Numeración de la secuencia, uso de verbos infinitivos, entendible por medio de secuencias de control y
de bucles finitos). El seudocódigo debe tener correspondencia con el diagrama de flujo.

Diagrama de Flujo se realiza por medio de la aplicación Dfd (software Libre cubierto por la licencia
pública GNU(GPL). A continuación una descripción de la ventana principal y el panel de herramientas.

1
3 2

4 8 5 9 6 7

Algoritmos UPTC 10

11

1- Barra de título Describe la información de ubicación y nombre del archivo con extensión *.dfd que
se está ejecutando.

2- Barra de menú Indica las diferentes opciones para manejo de la aplicación, en la mayoría de los
casos estas opciones están representadas en los iconos de la barra de herramientas.

3- Barra de herramientas Contiene las herramientas de manejo de archivos, edición, ejecución,


zoom, diseño de algoritmo y subprogramas.

4- Iconos de manejo de archivos En su orden corresponden a nuevo archivo, abrir archivo, guardar
archivo e imprimir de funcionamiento igual a cualquier otro tipo de aplicación.

5- Iconos de edición En su orden corresponden a cortar, copiar, pegar y eliminar, se activan cuando
es seleccionado un objeto de diseño en la hoja de trabajo, de funcionamiento igual a cualquier otro tipo
de aplicación.
6- Iconos de ejecución y depuración En su orden corresponden a:

Ejecutar Realiza la ejecución directa del algoritmo, mostrando los errores o cuadros de dialogo
que correspondan al diseño. Puede ser reemplazado por la tecla especial F9.

Detener Se activa cuando se realiza la ejecución paso a paso y detiene la misma cuando el
usuario lo requiera.

Pausar Se activa cuando se selecciona un objeto del algoritmo y se selecciona la opción “ejecutar
hasta”, Pausa la ejecución paso a paso hasta el punto indicado.

Paso simple Es la forma de ejecución paso a paso, recorre el algoritmo objeto a objeto hasta que
se le indique que continúe. Puede ser reemplazado por la tecla F7. Para salir de este modo se utiliza el
botón detener.

Ejecutar Hasta Se activa cuando se selecciona algún objeto del algoritmo, lo cual indica que hasta
ese objeto se va a ejecutar el algoritmo. Puede ser reemplazado por la tecla F4. Para salir de este modo
se utiliza el botón detener.

Depurador Evalúa expresiones para el algoritmo diseñado, siempre está activo. Tiene un menú
mediante el cual puede crear una nueva expresión, editar una expresión existente o eliminar una
expresión.

Algoritmos UPTC

7- Iconos de zoom Aumentan y disminuyen el diseño del algoritmo.

8- Herramientas para el diseño de algoritmos En su orden corresponden a:

Cursor Muestra el cursor de selección sobre la hoja de trabajo

Asignación Permite asignar valores directos o por medio de operaciones a constantes o a


variables. También puede asignar una cadena de caracteres cuando se muestra entre comillas simples.
Ciclo Mientras Realiza las operaciones asignadas que se encuentran entre el inicio y el fin del ciclo
mientras que no se cumpla la condición exigida. Se utiliza para el diseño de bucles finitos.

Debe ejecutar la operación indicada


entre el inicio y el fin del ciclo
mientras hasta que cumpla la
condición que ha sido determinada

Algoritmos UPTC

Ciclo para Realiza las operaciones asignadas que se encuentran entre el inicio y el fin del ciclo
para. Lo anterior bajo las condiciones de inicialización de la variable (primera casilla), cantidad de
iteraciones a realizar mientras la expresión sea verdadera (segunda casilla) y valor de incremento o
decremento de la variable (tercera casilla).

En el siguiente ejemplo se le pide al programa que muestre por pantalla el mensaje ( Se completó el
ciclo). Para el caso, la variable c se inicializa (asigna un valor) en 10(primera casilla), se le pide que el
valor final de c sea 4(segunda casilla) quien determinara la cantidad de iteraciones (ciclos que debe
realizar) y que realice un decremento de 1 cada vez que se ejecute el ciclo (tercera casilla)

Para un segundo ejemplo se le pide al programa que muestre por pantalla el mensaje ( Se completó
el ciclo). Para el caso, la variable c se inicializa (asigna un valor) en 4(primera casilla), se le pide que
el valor final de c sea 10(segunda casilla) quien determinara la cantidad de iteraciones (ciclos que debe
realizar) y que realice un incremento de 1 cada vez que se ejecute el ciclo (tercera casilla)

En cualquiera de los ejemplos anteriores se puede realizar la ejecución por paso simple o paso a paso
(F7) para comprobar la cantidad de veces que realiza las iteraciones o ciclos antes de mostrar el
mensaje por pantalla correspondiente a la salida ( Se completó el ciclo)

Un tercer ejemplo me muestra la impresión numerada del mensaje ( Se completó el ciclo n) donde
n es la cantidad de veces que se imprime, para nuestro caso 3 veces.

Algoritmos UPTC

Los resultados finales mostrados por pantalla serían


Decisión Muestra a partir de una condición los caminos posibles a seguir en el diagrama de flujo,
evalúa la condición antes de continuar al siguiente paso.

Puede evaluar cadenas de caracteres por medio de igualdad (=) o Desigualdad (!=)

Puede evaluar valores numéricos reales por medio de igualdad (=), Desigualdad (!=), mayor que(>),
menor que(<), mayor o igual que (>=) y menor o igual que(<=).

Lectura Almacena el valor o cadena de caracteres en una variable con un identificador determinado
Algoritmos UPTC
por el programador del algoritmo. Se debe colocar simplemente el nombre del identificador. Corresponde
al almacenamiento de valores ingresados por teclado por parte del usuario.

Salida Muestra por pantalla los mensajes para interactuar con el usuario, en algunos casos se
tratará de información solicitada al usuario para lo cual se escribirá el mensaje dentro de comillas
simples. En los casos de que se trate de respuestas, irá de igual forma entre comillas simples y si se
quiere invocar alguna variable o constante del algoritmo se hará a través del identificador el cual deberá
ir además entre comillas simples y precedido y seguido de comas. A continuación los ejemplos
correspondientes

caso 1. Para solicitar información al usuario ‘Por favor digite entre comillas simples su nombre’
caso 2. Para entregar una respuesta ‘Su nombre es ‘,n,’ su edad es ‘,e,’ y su ciudad es ‘,c,’ gracias’

Un ejemplo gráfico de un ejercicio, se muestra a continuación.


Llamada Realiza la invocación o la llamada a un subprograma que ha sido creado. Los valores del
subprograma que requieran ser usados en el programa principal y que estén almacenados en una
variable con un identificador deben ser tratados como parámetros en el nombre del subprograma entre
paréntesis. El nombre del subprograma debe ser igual, tanto en el programa principal como en el
subprograma creado y debe ser de la forma nombre_subprograma(parámetros)

En el siguiente ejemplo se muestra un programa principal que invoca a un subprograma y los resultados
del ejercicio. Algoritmos UPTC
2- Herramientas para el trabajo con subprogramas Se utilizan para crear, eliminar y navegar entre
los diferentes subprogramas creados a partir del programa principal. Permite trabajar de forma modular
descendente en el diseño del algoritmo, obteniendo menor complejidad final y mayor entendimiento al
diseño. En su orden mostrados en pantalla son:

Anterior subprograma Permite ir desde un subprograma de nivel inferior a un subprograma o


programa principal de nivel superior. Se encuentra deshabilitado cuando se está en modo de ejecución y
cuando se muestra la pantalla con un subprograma de nivel inferior.

Siguiente subprograma Permite ir desde un subprograma de nivel superior a un subprograma de


nivel inferior. Se encuentra deshabilitado cuando se está en modo de ejecución y cuando se muestra la
pantalla con el programa principal.

Nuevo subprograma Crea subprogramas que realizan operaciones y devuelven los resultados a un
programa principal o subprogramas de nivel superior. Se debe colocar un nombre al subprograma, los
parámetros (variables que retornan algún valor al programa de nivel superior del cual es invocado) y una
breve descripción de lo que realiza el subprograma.
La creación del subprograma se realiza en una hoja de trabajo nueva y se puede navegar de
subprograma en subprograma a través de los botones Anterior subprograma y Siguiente
subprograma.
Para llamar al subprograma creado desde el nivel superior se debe insertar el objeto llamada (explicado
anteriormente) en el sitio que corresponda del algoritmo del nivel superior, teniendo en cuenta colocar el
mismo nombre y los mismos parámetros

A continuación se muestra la creación del nuevo subprograma

Algoritmos UPTC

Eliminar subprograma Permite eliminar los subprogramas seleccionados, se desactiva cuando está
en el nivel principal que hace la llamada al subprograma, se activa cuando se está en los niveles
inferiores y en la hoja del subprograma a eliminar. Para eliminar un subprograma se realiza desde el
subprograma que hace la llamada y desde la hoja de trabajo donde se encuentra el subprograma. En
ambos casos aparece un mensaje de advertencia antes de la eliminación.
10- Hoja de Trabajo Corresponde al espacio en el cual se va a realizar el diseño. La hoja de trabajo
siempre debe aparecer con la partida y finalización del algoritmo (inicio-fin) objetos inseparables y entre
los cuales se debe diseñar el algoritmo. Sobre la hoja de trabajo aparecen los diferentes mensajes de
los objetos del diseño, de interacción con el usuario, de errores dados por la aplicación y de respuestas
y pruebas.

11- Modo Actual Describe de forma resumida las acciones posibles a realizar cuando el cursor se
ubica en cualquier icono herramienta de trabajo.

Prueba de escritorio Se tabulará teniendo en cuenta los datos de entrada, los datos de salida, los
pasos y las operaciones aritméticas o lógicas que estén incluidas en el algoritmo

A continuación se muestra un ejemplo de una prueba de escritorio para una serie de operaciones
aritméticas.

DATOS DE ENTRADA DATOS DE SALIDA


PASOS /FORMULAS
e1 e2 e3 s1 s2 s1 s2 otras salidas
Ingresar primer nro a error, debe ingresar un valor constante
Ingresar primer nro 8
ingresar segundo nro 4,3 erro, Uso ilegal de la coma o falta expresión
ingresar segundo nro 4.3
ingresar tercer nro 2
s1=e1/e3 8 2 4
s2=e2+e3 6.3
s1=s1+s2 4 6.3 10.3
s2=s1-s2 10.3 6.3 4
Mostrar s1 Algoritmos UPTC
La respuesta es 10.3
Mostrar s2 La respuesta es 4

Nótese que para algunos casos se reutilizan las variables de salida, tratándose a las mismas como
variables de entrada (resaltadas en color amarillo) hasta que terminan de realizar las operaciones que
satisfacen alguna condición (recursividad). El valor final para este tipo de variables es el último asignado
por las operaciones.

La estructura por tanto, para el desarrollo de cada ejercicio será:

Análisis del problema (incluye todas las etapas presentadas anteriormente. (Formular claramente el
problema, especificar los resultados que se desean obtener, identificar la información disponible (datos),
determinar las restricciones, procesos necesarios)

Elaboración de seudocódigo Descrito anteriormente

Elaboración Diagrama de Flujo En los dos primeros ejercicios se mostrará el paso a paso para el
manejo de la aplicación Dfd, explicando como se utiliza la herramienta. En los ejercicios posteriores se
omitirá esta explicación. A continuación del diagrama de flujo se harán los comentarios respectivos
indicando que operación se realiza para cada paso del flujo.

Elaboración Prueba de escritorio Descrito anteriormente


Para un mejor entendimiento del desarrollo de los ejercicios es necesario tener en cuenta algunos
conceptos básicos que se utilizaran para las explicaciones correspondientes. Estos conceptos se
trataran con más profundidad en capítulos posteriores.

CONCEPTOS BÁSICOS

VARIABLE Corresponde a una disposición en la memoria del computador asemejada por un


identificador. En dicha ubicación se pueden almacenar diferentes valores que pueden ser modificados.

CONSTANTE Variable cuyo valor no puede ser modificado durante la ejecución del programa.

ASIGNACION DE VALOR Entregar un valor a una variable o a una constante por medio de una
operación o directamente por medio de una igualdad ( ej: c=6 ó c= 6+3).

BUCLE Circuito de retroacción. Hasta que no cumple una condicionalidad no deja de volver a recorrer
el circuito.

RECURSIVIDAD Proceso mediante el que un subprograma o variable se llama a si misma de forma


repetida hasta que satisface una determinada condición. El proceso se opera para realizar cálculos
repetitivos en las que cada paso del algoritmo se puede establecer en función de un resultado anterior.

EJERCICIO 1
Hallar el perímetro de un cuadrado cuyo lado mide 5 cm, mostrar el resultado por pantalla teniendo en
cuenta el nombre del usuario que interactúa con el sistema.

Análisis del problema

Formulación del problema Algoritmos UPTC


Hallar el perímetro de un cuadrado cuyo lado mide 5 cm, mostrar el resultado por pantalla teniendo en
cuenta el nombre del usuario que interactúa con el sistema.

Especificar los resultados que se desean obtener


Nombre del usuario Debe ser solicitado por pantalla al usuario para mostrarlo al final.
Perímetro del cuadrado Para determinar el perímetro se debe tener el conocimiento de la fórmula
del perímetro (suma de las líneas que limitan una figura plana) para el cuadrado, entonces
perímetro de un cuadrado = lado+lado+lado+lado o mejor:
p=4l donde p=perímetro y l=lado

Identificar la información disponible (datos)


Medida del lado del cuadrado = 5cm
Figura a hallar el perímetro = cuadrado
Fórmula para determinar el perímetro del cuadrado p=4l donde l=lado

Determinar las restricciones y procesos necesarios


Almacenar el nombre del usuario en una variable con identificador n para mostrarlo en la respuesta
final
Asignar el valor de lado como constante al identificador l
Determinar la operación de cálculo del perímetro y asignarlo a la variable con identificador p

Elaboración de seudocódigo

1. inicio
2. Asignar el valor de 5 a l (ele)
3. Solicitar el nombre del usuario
4. Leer el nombre del usuario
5. Calcular el perímetro
6. Mostrar la respuesta (perímetro) por pantalla indicando el nombre del usuario
7. fin

Elaboración Diagrama de Flujo

Algoritmos
5
UPTC

1- Inicio del Algoritmo

2- Asignación del valor 5 a la constante con identificador l

3- Salida de Indicación al usuario de cómo ingresar el nombre


4- Asignación de la cadena de caracteres (letras entre comillas simples) con el nombre del usuario a la
variable con identificador n

5- Asignación del valor correspondiente a la operación (l+l+l+l) en la variable con identificador p

6- Salida de respuesta al usuario indicando el nombre y el cálculo del perímetro mediante el llamado de
las variables correspondientes.

7- Fin del Algoritmo

Algoritmos UPTC

Indica que el nombre se almacena en la variable con identificador n


Elaboración Prueba de escritorio

EJERCICIOS PROPUESTOS VARIANTES DEL EJERCICIO 1

Hallar el perímetro de un cuadrado. La longitud del lado es ingresada por el usuario, mostrar el
resultado por pantalla teniendo en cuenta el nombre del usuario que interactúa con el sistema.

Hallar el área de un cuadrado de perímetro 20.8, mostrar el resultado por pantalla teniendo en cuenta
el nombre del usuario que interactúa con el sistema.

Hallar el área de un cuadrado. La longitud del lado es ingresada por el usuario, mostrar el resultado
por pantalla teniendo en cuenta el nombre del usuario y la longitud del lado que interactúa con el
sistema.

EJERCICIO 2

Algoritmos UPTC
Hallar el área de un triángulo rectángulo a partir de los datos de la base y de la altura suministrados por
el usuario. Determinar si los valores asignados a las longitudes de base y altura son positivos, si lo son,
calcular el área del triángulo en caso contrario mostrar un error al usuario indicando la causa del mismo.

Análisis del problema

Formulación del problema


Hallar el área de un triángulo rectángulo a partir de los datos de la base y de la altura suministrados
por el usuario. Determinar si los valores asignados a las longitudes de base y altura son positivos, si lo
son, calcular el área del triángulo en caso contrario mostrar un error al usuario indicando la causa del
mismo.

Especificar los resultados que se desean obtener


Error al ingresar datos de longitudes Debe mostrarse al usuario indicando la causa del error
Área del triángulo rectángulo Para determinar el área se debe tener el conocimiento de la fórmula
de área para cualquier triángulo rectángulo, entonces: área de un triángulo rectángulo = (base*altura)/2
donde 2 = constante

Identificar la información disponible (datos)


Área del triángulo rectángulo=(base*Altura)/2
Longitud de base y de altura deben ser reales positivos

Determinar las restricciones y procesos necesarios


Asignar el valor 2 a una constante para efectuar la operación utilizando el identificador de la
constante.
Evaluar los valores ingresados para las longitudes de la base y de la altura.
Calcular el área del triángulo.
Mostrar el resultado del área por pantalla.
Elaboración de seudocódigo

1. inicio.
2. Asignar el valor de 2 a la constante div.
3. Solicitar al usuario los valores correspondientes a la base y a la altura.
4. Leer los valores de las longitudes de la base y la altura.
5. Evaluar el valor de la longitud de la base.
1. Si es menor o igual que cero mostrar error indicando la causa del mismo.
2. Si es mayor que cero pasar a punto 6.
6. Evaluar el valor de la longitud de la altura
1. Si es menor o igual que cero mostrar error indicando la causa del mismo.
2. Si es mayor que cero pasar a punto 7.
7. calcular el área del triángulo.
1. calcular base por altura.
2. al cálculo anterior dividirlo entre div.
8. Mostrar el resultado.
9. Fin.

Elaboración Diagrama de Flujo

Algoritmos
3
UPTC
A

B
5

7 6

8 C

Interacciones con el usuario


Transacciones internas
Errores del sistema
1- Inicio del Algoritmo

2- Asignación del valor 2 a la constante con identificador div (para reemplazar a 2 en la fórmula del área
del triángulo por div). Lo anterior porque este valor 2 nunca cambiará en la fórmula y para omitirlo como
tal durante la escritura del programa y llamarlo a través del identificador div.

3- Salida de Indicación al usuario solicitándole el valor de la longitud de la base y la altura del triángulo.

4- Lectura de los valores para las longitudes de base y altura a las variables con identificador b y h

5- Verificación por el objeto de decisión de la variable b (número real positivo). En caso de no cumplir
muestra error a través de la salida por pantalla en caso de cumplir pasa a 6

6- Verificación por el objeto de decisión de la variable c (número real positivo). En caso de no cumplir
muestra error a través de la salida por pantalla en caso de cumplir pasa a 7

7- Se realiza la operación para calcular el área [A=(b*h)/2] primero se hace A=b*h (donde A= Área,
b=base, h=altura), posteriormente al resultado de A se divide entre div (A=A/div), con el fin de utilizar la
asignación de la constante div=2. Las operaciones anteriores muestran recursividad de la variable A, en
donde primero toma un valor (el resultado b*h) y luego ese resultado es utilizado como entrada para
realizar la operación final (A/div).

8- Salida donde se entrega el resultado (área del triángulo).

9- Fin

NOTA Los errores corresponden a:


Algoritmos UPTC
A Cuando se introduce una letra o conjunto cualquiera de letras presenta error del sistema ej: asd

B Cuando se introduce una letra o conjunto cualquiera de letras como una cadena de caracteres (es
decir entre comillas simples), puede pasar las condicionalidades sin embargo al momento de realizar las
operaciones aritméticas nos va a mostrar que el tipo de datos no corresponde para hacer operaciones
aritméticas. Presenta error del sistema ej: al ingresar ‘asd’ y ‘lucia’ como valores no puede hacer
A=’asd’*’lucía’ y genera el cuadro de error.

C Es el cuadro de interacción hecho por el programador de acuerdo a las condicionalidades creadas


ej: cuando se ingresa un valor <= 0 para la base (Error, Introduzca un valor mayor que cero para la base
-->b)

Elaboración Prueba de escritorio

DATOS DE ENTRADA DATOS DE SALIDA


PASOS /FORMULAS
b h div A A Otras salidas (errores-Mensajes)
Ingresar datos de base y altura 3,4 4 Error - Debe ingresar un valor constante
Ingresar datos de base y altura a 4 Error - Debe ingresar un valor constante
Ingresar datos de base y altura ad' 4 Error - Los tipos no coinciden
Error, Introduzca un valor mayor que cero
Ingresar datos de base y altura 3 -9
para la altura -->h
Error, Introduzca un valor mayor que cero
Ingresar datos de base y altura 0 5
para la base -->b
Ingresar datos de base y altura 4 7
Calcular Area 1- calcular A=b*h 4 7 28
Calcular Area 2- calcular A=A/div 2 28 14
El area del triangulo de base 4 y altura 7 es ---
Mostrar resultado
---14
EJERCICIOS PROPUESTOS VARIANTES DEL EJERCICIO 2

Hallar el área de un triángulo rectángulo a partir de los datos de la base y de la altura suministrados
por el usuario. Evaluar los valores asignados a las longitudes de base y altura uno a la vez, con el fin de
identificar si son mayores a cero , si lo son, calcular el área del triángulo en caso contrario mostrar un
error al usuario indicando la causa del mismo antes de continuar el programa

Hallar el área de un triángulo rectángulo conociendo la base (valor de la base =4.8) y tomando el valor
de la altura suministrado por el usuario. Determinar si los valores asignados a las longitudes de base y
altura son positivos, si lo son, calcular el área del triángulo en caso contrario mostrar un error al usuario
indicando la causa del mismo.

Hallar el área de un triángulo rectángulo a partir del dato de la longitud de la base suministrado por el
usuario. La longitud de la altura será 2.5 veces la longitud de la base. Evaluar los valores asignados a
las longitudes de base y altura uno a la vez, con el fin de identificar si son mayores a cero , si lo son,
calcular el área del triángulo en caso contrario mostrar un error al usuario indicando la causa del mismo
antes de continuar el programa.

EJERCICIO 3

Generar el recibo de pago semanal de los empleados de la empresa “Insumos X-Y” El recibo debe
mostrar el nombre de la empresa, fechas de periodo a liquidar en la factura, fecha de elaboración de la
factura (las fechas son ingresadas por el usuario), nombre del empleado, cargo del empleado, total de
horas trabajadas en el período (Dato a ingresar por el usuario), valor por hora de acuerdo al cargo del
empleado, salario Bruto en pesos, Bono en pesos por pago de horas extras si las hubiere (cuando las
horas laboradas sean mayores de 48 horas (horas laborables legales), las horas excedentes se pagaran
con un recargo adicional del 25% del valor normal de la hora), descuento en pesos sobre el salario bruto
Algoritmos UPTC
por servicios de salud (8%), descuento en pesos sobre el salario bruto por pago de pensión laboral
(10%) y el salario neto a pagar al empleado.
El resultado anterior se consulta a través del código del empleado.

La tabla nómina guía es la siguiente

Cod
Nombre Empleado
Empleado Cargo Valor Hora
11 Juan Pérez Carreño operador 4000
12 Pedro Diaz Gonzalez vendedor 5000
13 Jorge Andrés Fernandez Perez operador 4000
14 Graciliano Perez Aristizabal vendedor 5000
15 Pedro Jimenez Gómez supervisor 8000

Análisis del problema

Formulación del problema


Generar el recibo de pago semanal de los empleados de la empresa “Insumos X-Y” El recibo debe
mostrar el nombre de la empresa, fechas de periodo a liquidar en la factura, fecha de elaboración de la
factura (las fechas son ingresadas por el usuario), nombre del empleado, cargo del empleado, total de
horas trabajadas en el período (Dato a ingresar por el usuario), valor por hora de acuerdo al cargo del
empleado, salario Bruto en pesos, Bono en pesos por pago de horas extras si las hubiere (cuando las
horas laborables sean mayores de 48 horas (horas laborables legales), las horas excedentes se pagaran
con un recargo adicional del 25% del valor normal de la hora), descuento en pesos sobre el salario bruto
por servicios de salud (8%), descuento en pesos sobre el salario bruto por pago de pensión laboral
(10%) y el salario neto a pagar al empleado.
El resultado anterior se consulta a través del código del empleado.

Especificar los resultados que se desean obtener


Nombre de la empresa se almacenará en una constante ya que es general para todos los
empleados
Semana a liquidar en la factura Se almacenará en una variable como una cadena de caracteres
para mostrar al final en pantalla.
Fecha de elaboración de la factura Fecha actual Se almacenará en una variable como una cadena
de caracteres para mostrar al final en pantalla
Nombre del empleado se almacenará en una variable al momento de ingresar el nombre
Cargo del empleado se almacenará en una variable al momento de ingresar el nombre
Total de Horas laboradas Se almacenará como número en una variable para realizar operaciones
Valor por hora de acuerdo al cargo.
Salario Bruto en pesos
Bono en pesos por pago de horas extras
Descuento en pesos sobre el salario bruto por servicios de salud
Descuento en pesos sobre el salario bruto por pago de pensión
Salario Neto a pagar
Error al ingresar datos horas laboradas Debe mostrarse al usuario indicando la causa del error en
caso de que sea un número negativo o cero.
Error del sistema al ingresar las fechas si no se ingresan como cadena de caracteres
Error del sistema al ingresar el código del empleado y las horas trabajadas si no se ingresan como
valores constantes
Error programado en caso de que el código de empleado digitado no corresponda a ningún empleado.
Algoritmos UPTC
Identificar la información disponible (datos)
Nombre de la empresa “Insumos X-Y”
Código de empleados
Nombre empleados
Cargo empleados
Valor por hora del cargo
Horas laborables legales 48
Bono por horas extras 0.25 * valor por hora del cargo
Descuento en pesos sobre el salario bruto por servicios de salud (8%) Salario bruto *0.08
Descuento en pesos sobre el salario bruto por pago de pensión (10%) Salario Bruto * 0.1

Determinar las restricciones y procesos necesarios


Ingresar las fechas de facturación, y de periodo de liquidación como cadenas de caracteres (entre
comillas simples).
Ingresar y leer el código del empleado.
Asignar de acuerdo a cada código el nombre del empleado, el cargo y el valor de la hora de trabajo.
Calcular el pago si no tiene horas extras así:
• salb =vhr*htrab salb= salario bruto
• imp1=salb*imp1 imp1= Descuento por servicios de salud
• imp2=salb*imp2 DONDE imp2=Descuento por pensión
• totdto=imp1+imp2 totdto=Total de descuentos
• saln=salb-totdto saln= salario neto
Calcular el pago si tiene horas extras así

• salb=vhr*htrab salb= salario bruto


• hex= htrab-hlab hex= horas extras
• vrbono= hex*(vrbono*vhr) hlab=horas laborales legales
• salb= salb+vrbono vrbono=valor bono por horas extras
• imp1=salb*imp1 imp1= Descuento por servicios de salud
• imp2=salb*imp2 DONDE imp2=Descuento por pensión
• totdto=imp1+imp2 totdto=Total de descuentos
• saln=salb-totdto saln= salario neto

Elaboración de seudocódigo

1. inicio.
2. Asignar la cadena de caracteres a la constante con identificador empr.
3. Solicitar al usuario los valores correspondientes a la fecha actual y al periodo de liquidación.
4. Leer los valores de fecha actual y el periodo de liquidación.
5. Ingresar el código del empleado.
1. Si el código pertenece a algún empleado continuar a punto 6.
2. Si el código no pertenece a ningún empleado generar error.
6. Asignar la cadena de caracteres con el nombre del empleado a la variable con identificador n
7. Asignar la cadena de caracteres con el cargo del empleado a la variable con identificador
cargo
8. Asignar el valor de la hora de trabajo del empleado a la variable con identificador vhr.
9. Asignar el porcentaje del descuento por servicios de salud a la variable con identificador
imp1.
Algoritmos UPTC
10. Asignar el porcentaje del descuento por pensión a la variable con identificador imp2.
11. Asignar el porcentaje del sobrecoste de la hora de trabajo del empleado en caso de ser hora
extra a la variable con identificador vrbono.
12. Asignar el valor laborable legal semanal la variable con identificador hlab.
1. Ingresar la cantidad de horas laboradas por el empleado en el periodo de tiempo.
2. Si las horas laboradas son menores a cero informar al usuario que existe un error al
ingresar el dato.
3. Si las horas laboradas son iguales a cero informar al usuario que no ha laborado por tanto
su salario es $0
4. Si las horas laboradas son mayores que cero pasar a punto 14
13. Verificar las horas laboradas
1. Si son menores o iguales a 48 horas, calcular
1. Salario Bruto
2. Descuentos
3. Salario neto
2. Si son mayores a 48 horas, calcular
1. Salario Bruto
2. Horas extras
3. Bono por horas extras
4. Salario bruto total
5. Descuentos
6. Salario neto
14. Mostrar el resultado.
15. Fin.
Elaboración Diagrama de Flujo

Algoritmos UPTC

Corresponde al llamado a un subprograma que realiza las operaciones de cálculo dependiendo la


cantidad de horas trabajadas, luego de realizar el cálculo retorna el mensaje de salida y sus valores a la
función principal. A continuación se muestra el subprograma correspondiente:
Algoritmos UPTC
DATOS DE ENTRADA DATOS DE SALIDA

Elaboración Prueba de escritorio


PASOS /FORMULAS
p f empr n cargo hex cod htrab hlab vhr vrbono imp1 imp2 salb totdto saln salb imp1 imp2 totdto hex vrbono saln Otras salidas (errores-Mensajes)
Solicitar al usuario los valores '12/03/2013
correspondientes al periodo de hasta 20/03/2013 Error - Debe ingresar un valor constante
liquidación (p) y a la fecha actual (f) 19/03/2013'
Solicitar al usuario los valores '12/03/2013
correspondientes al periodo de hasta '20/03/2013'
liquidación (p) y a la fecha actual (f) 19/03/2013'
Error - El código introducido no corresponde
Ingresar el código del empleado 6 a ningún empleado VERIFIQUE por favor y
vuelva a introducir el código del empleado
Ingresar el código del empleado 12
Ingresar la cantidad de horas laboradas por Error --> Ingreso un número positivo mayor
-3
el empleado en el periodo de tiempo que cero para las horas laboradas
Ingresar la cantidad de horas laboradas por Señor Pedro Diaz Gonzalez usted no trabajó
0
el empleado en el periodo de tiempo en esta semana por tanto su salario es $0.
Ingresar la cantidad de horas laboradas por
40
el empleado en el periodo de tiempo
• salb =vhr*htrab 40 5000 200000
• imp1=salb*imp1 0,08 200000 16000

Algoritmos UPTC
• imp2=salb*imp2 0,1 200000 20000
• totdto=imp1+imp2 16000 20000 36000
• saln=salb-totdto 200000 36000 164000
Empresa -->INSUMOS X-Y
Período de liquidación: --> 12/03/2013 hasta
17/03/2013 Fecha de pago:--> 20/03/2013
Nombre empleado -->Pedro Diaz Gonzalez
con cargo: --> vendedor El Valor por hora del
'12/03/2013
INSUMOS X- Pedro Diaz cargo es : -->$ 5000 las horas trabajadas en el
Mostrar resultado hasta '20/03/2013' vendedor 40 5000 16000 20000 200000 164000
Y Gonzalez periodo de liquidación son: --> 40 El salario
19/03/2013'
bruto de este periodo es: -->$ 200000. Los
descuentos que tiene son 1-Descuento por
servicios de salud -->$16000 y 2-Descuento
por pensión -->$ 20000 Su Salario neto es por
tanto -->$164000
Ingresar la cantidad de horas laboradas por
60
el empleado en el periodo de tiempo
• salb =vhr*htrab 60 5000 300000
• hex= htrab-hlab 60 48 12
• vrbono= hex*(vrbono*vhr) 12 5000 0.25 15000
• salb= salb+vrbono 15000 300000 315000
• imp1=salb*imp1 0,08 315000 25200
• imp2=salb*imp2 0,1 315000 31500
• totdto=imp1+imp2 25200 31500 56700
• saln=salb-totdto 315000 56700 258300
Empresa -->INSUMOS X-Y
Período de liquidación: --> 12/03/2013 hasta
19/03/2013 Fecha de pago:--> 20/12/2013
Nombre empleado -->Pedro Diaz Gonzalez
con cargo: --> vendedor El Valor por hora del
cargo es : -->$ 5000 las horas trabajadas en el
'12/03/2013
INSUMOS X- Pedro Diaz periodo de liquidación son: --> 60, Las
Mostrar resultado hasta '20/03/2013' vendedor 60 5000 25200 31500 315000 258300
Y Gonzalez horase extras del periodo son 12, El bono
19/03/2013'
de pago por horas extras es 15000;El salario
bruto de este periodo es: -->$ 315000. Los
descuentos que tiene son 1-Descuento por
servicios de salud -->$25200 y 2-Descuento
por pensión -->$ 31500 Su Salario neto es por
tanto -->$258300
EJERCICIOS PROPUESTOS VARIANTES DEL EJERCICIO 3

Realizar el ejercicio simplificando las formulas para obtener menos procesos

Realizar el ejercicio Ingresando por teclado el nombre y el cargo del empleado.

Realizar el ejercicio suponiendo que el empleado ingresa horas festivas las cuales tienen un bono de
incremento del 50% sobre el coste de la hora normal de trabajo.

EJERCICIO 4

El usuario debe ingresar tres números por teclado y el algoritmo debe determinar si la suma de
cualquier pareja de ellos es igual al tercer número, Si se cumple la condición debe aparecer un resultado
en pantalla indicando la suma correspondiente a la igualdad. En caso contrario aparecerá un mensaje
mostrando la desigualdad.

Análisis del problema

Formulación del problema


El usuario debe ingresar tres números por teclado y el algoritmo debe determinar si la suma de
cualquier pareja de ellos es igual al tercer número, Si se cumple la condición debe aparecer un resultado
en pantalla indicando la suma correspondiente a la igualdad. En caso contrario aparecerá un mensaje
mostrando la desigualdad.

Especificar los resultados que se desean obtener


Error al ingresar datos de números En caso de ingresar caracteres o cadenas de caracteres.
Mensaje con la igualdad en caso de que se cumplan las condiciones en alguna de las posibilidades
Algoritmos UPTC
Mensaje informativo indicando que las condiciones no son cumplidas en ningún de los casos

Identificar la información disponible (datos)


La Suma de cualquier pareja posible entre tres números debe ser igual al tercer número
ej sean los números a,b,c determinar si a+b=c ó b+c=a ó c+a=b dependiendo el resultado emitir
el mensaje correspondiente.

Determinar las restricciones y procesos necesarios


Sumar a+b y comparar con c
Sumar b+c y comparar con a.
Sumar a+c y comparar con b
Mostrar el resultado por pantalla.

Elaboración de seudocódigo

1. inicio.
2. Solicitar al usuario los valores correspondientes a los tres números a comparar.
3. Leer los valores de los tres números
4. Evaluar si el primer número más el segundo número es igual al tercer número.
1. Si se cumple la igualdad Mostrar mensaje de igualdad
2. Si no se cumple la igualdad ir a punto 5
5. Evaluar si el primer número más el tercer número es igual al segundo número.
1. Si se cumple la igualdad Mostrar mensaje de igualdad
2. Si no se cumple la igualdad ir a punto 6
6. Evaluar si el segundo número más el tercer número es igual al primer número.
1. Si se cumple la igualdad Mostrar mensaje de igualdad
2. Mostrar mensaje de desigualdad para cualquiera de las posibles condiciones
7. fin
Elaboración Diagrama de Flujo

Algoritmos UPTC
Elaboración Prueba de escritorio

DATOS DE ENTRADA DATOS DE SALIDA


PASOS /FORMULAS
a b c a b c Otras salidas (errores-Mensajes)
Favor ingresar el primer número --> a' a Error- debe Ingresar un valor constante
Favor ingresar el primer número --> a' 2
Favor ingresar el primer número -->b' 'abc' Error - los tipos no coinciden
Favor ingresar el primer número -->b' 3
Favor ingresar el primer número -->c' 5,5 Error- debe Ingresar un valor constante
Favor ingresar el primer número -->c' 5
La suma del primer número con el segundo
a+b=c 2 3 5
número es igual al tercer número --> 2+3 = 5
Favor ingresar el primer número --> a' 5
Favor ingresar el primer número -->b' 8
Favor ingresar el primer número -->c' 3
La suma del primer número con el tercer
a+c=b 5 3 8 número es igual al segundo número --> 5+3 =
8
Favor ingresar el primer número --> a' 12
Favor ingresar el primer número -->b' 4
Favor ingresar el primer número -->c' 8
La suma del segundo número con el tercer
b+c=a 4 8 12 número es igual al primer número --> 4+8 =
12
Favor ingresar el primer número --> a' 7
Favor ingresar el primer número -->b' 3.4
Favor ingresar el primer número -->c' 5
a+b=c 7 3.4 10.4
a+c=b 7 5 12
b+c=a 3.4 5 8.4
Al sumar dos de los tres numeros dados en
Algoritmos UPTC cualquiera de sus posibles combinaciones
no cumplen la igualdad con el tercer
número. Las pruebas son:
primer numero + segundo número diferente
de tercer número 7+3.4 # 5 ; primer
número mas tercer número diferengte de
segundo número7+5#3.4 y segundo
número mas tercer número diferente de
primer número 3.4+5#7

EJERCICIOS PROPUESTOS VARIANTES DEL EJERCICIO 4

El usuario debe ingresar un número por teclado y el algoritmo debe asignar un segundo número de
doble valor y un tercer número de triple valor con respecto al número ingresado por el usuario.
Determinar si la suma de cualquier pareja de los números obtenidos es igual al tercer número, Si se
cumple la condición debe aparecer un resultado en pantalla indicando la suma correspondiente a la
igualdad, en caso contrario aparecerá un mensaje mostrando la desigualdad.

El usuario debe ingresar tres números por teclado y el algoritmo debe determinar si la suma de
cualquier pareja de ellos es igual al tercer número, Si se cumple la condición debe aparecer un resultado
en pantalla indicando la suma correspondiente a la igualdad. En caso contrario aparecerá un mensaje
indicando la desigualdad. Se deben realizar las asignaciones de los tres números dados por el usuario a
las respectivas variables en un solo paso en el diseño del algoritmo.

El usuario debe ingresar tres números por teclado y el algoritmo debe determinar si la suma de
cualquier pareja de ellos es igual al tercer número, Si se cumple la condición debe aparecer un resultado
en pantalla indicando la suma correspondiente a la igualdad. En caso contrario aparecerá un mensaje
indicando la desigualdad. El algoritmo debe evaluar cual es el número mayor y solo realizar la suma
correspondiente con los números menores para verificar la igualdad.

Algoritmos UPTC
Algoritmos UPTC

También podría gustarte