Desarrolle un algoritmo para leer el nombre de un empleado, el salario básico por hora y el número de horas trabajadas durante una semana. Calcule el salario neto, teniendo en cuenta que si el número de horas trabajadas durante la semana es mayor de 48 horas, esas horas demás se consideran horas extras y tienen un recargo del 35%. Imprima el nombre del empleado y su salario neto.
Respuestas a la pregunta
Respuesta:
{* Respuesta en Pseudocódigo tipo SQL.
Se asume un acceso directo a una bdd con el registro del empleado en la estructura, mismo que es denormalizado en una sola tabla:
empleado cadenavariable (40),
honorario_hora moneda,
horaslunes entero,
horasmartes entero,
horasmiercoles entero,
horasjueves entero,
horasviernes entero
*}
Declara @NombreEmpleado cadenavariable (40),
@Salario moneda,
@HorasTrabajadas entero,
Abrir cursor
En Cursor de lectura 1 a 1
Select @NombreEmpleado = empleado, @Salario = honorario_hora, @HorasTrabajadas = (horaslunes + horasmartes + horasmiercoles + horasjueves + horasviernes)
Si (@HorasTrabajadas > 48)
SET @Salario = @Salario * 48 + @Salario * (@HorasTrabajadas -48) * 1.35
CASO CONTRARIO
SET @Salario = @Salario * @HorasTrabajadas
select @NombreEmpleado, @Salario {* resultado *}
Siguiente registro
cierra cursor
Explicación:
en bdd, los datos se almacenan en estructuras de datos como tablas estructuradas, lo cual genera simplificación en el manejo de datos
la lectura, modificación y eliminación se benefician
este Algoritmo asume el uso de manejadores de bases de datos.
Otras soluciones que consideren usar archivos planos o ingreso de datos por teclado y lenguajes de programación de propósito general pueden incluir procesos de:
1. Abrir archivo y leer datos. similar a lectura de las tablas de la base de datos
2. procesar la información leida una a una
3. ejecutar cálculos, de manera similar al algoritmo mostrado
segunda opción. Ingreso de datos por teclado
1. Leer uno a uno los datos suministrados por el operador de la computadora, algo como
leer NombreEmp
leer MontoHora
en un bucle leer horas de lunes a viernes en variable nuevoDato
acumular horasDia = horasDia + nuevoDato
sumar las horas de lunes a viernes.
esta parte puede hacerse en el bucle de lectura o posterior, al sumar uno a uno los datos obtenidos
2. procesar lógica
si horasDia > 48 entonces
Salario = montoHora* 48 + montoHora* (horasDia -48) * 1.35
caso contrario
Salario = Salario * horasDia