una empresa desea calcular el sueldo de un empleado, sabiendo que, el sueldo basico depende de la categoria. ademas se le paga adicional por antiguedad.
la determinacion del basico se realiza segun el siguiente detalle:
categoria: 1, sueldobasico:2500
categoria:2, sueldobasico:2000
categoria:3, sueldobasico:1500
categoria:4, sueldobasico:1200
la antiguedad se calcula en base a la siguiente tabla:
antiguedad (0-10años) porcentaje:20%
antiguedad (11-15años) porcentaje:50%
antiguedad (16-20años) porcentaje:80%
antiguedad (mas de 20años) porcentaje:100%
para ello se ingresa los datos de un empleado en el siguiente orden: apellido y nombre, categoria, antiguedad, sueldo total.
proceso empleado
Escribir "nombre";
Leer Nom;
Escribir "apellido";
Leer ape;
Escribir "categoria";
Leer categoria;
Segun categoria Hacer
1: Escribir "sueldo basico de 2500";
2: Escribir "sueldo basico de 2000";
3: Escribir "sueldo basico de 1500";
4: Escribir "sueldo basico de 1200";
FinSegun
Escribir "antiguedad";
Leer antiguedad;
Si antiguedad=opc1 Entonces
Escribir "sueldo";
Leer sueldo;
total<-sueldo*(100/20);
Sino
Si antiguedad=opc2 Entonces
Escribir "sueldo";
Leer sueldo;
total<-sueldo*(100/50);
Sino
Si antiguedad=opc3 Entonces
Escribir "sueldo";
Leer sueldo;
total<-sueldo*(100/80);
Sino
Escribir "sueldo";
Leer sueldo;
total<-sueldo*(100/100);
Fin Si
Fin Si
Fin Si
Escribir "categoria:", categoria, "antiguedad", antiguedad, "total:", total;
FinProceso
asi lo hice, que esta mal?
Hay algún error de concepto:
- Es de esperar que el sueldo básico lo tengas que guardar en una variable, para luego añadir lo que corresponda a la antigüedad, en vez de mostrarlo directamente.
- Cuando pides la antigüedad, no das detalles de lo que esperas que introduzca el usuario, pero es de esperar que sea una cantidad de años. Si es así, las comparaciones deberían ser del estilo de "Si antiguedad < 10" en vez de "Si antiguedad=opc1" (porque, además, esa variable "opc1" no está definida en ningún sitio).
- Estás usando una variable "total", cuando realmente estás calculando el sobresueldo que se debe a la antigüedad. Ese nombre suena a que no lo has interpretado correctamente.
- Los porcentajes de sobresueldo están calculados al revés: el 20% no es 100/20 sino 20/100.
- El resultado final será el sueldo base más el sobresueldo.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)