[ Foro de Pascal ]
Se requiere calcular e imprimir el pago de 102 trabajadores que laboran en la Cía. GACMAN. Los datos que se leerán serán los siguientes: a) El tipo de trabajador. ? 1.- Obrero. ? 2.- Empleado. b) Las horas trabajadas. c) El sueldo por hora. Para calcular los pagos se debe considerar lo siguiente: - Los obreros pagan 10 % de impuesto. - Los empleados pagan 10 % de impuesto. - Los trabajadores (obreros y empleados) que reciban un pago menor de 100,000 Bs no pagan impuesto. - Al final se deberá imprimir el total a pagar tanto a los trabajadores como a los empleados. La información solicitada deberá presentarse a través de dos (2) reportes o informes; el primero que contenga el total a pagar a los empleados, ver reporte 1, y el segundo contentivo del total a pagar a los obreros, ver reporte 2, ambos mostrados a continuación.
G A C M A N C.A. Reporte de Pago Impuestos (Empleados) Departamento: Recursos Humanos Total con Impuesto BS. XXXXXX,xx Total Exentos BS. XXXXXX,xx Total a Pagar Bs. XXXXXX,xx Reporte 1
G A C M A N C.A. Reporte de Pago Impuestos (Obreros) Departamento: Recursos Humanos Total con Impuesto BS. XXXXXX,xx Total Exentos BS. XXXXXX,xx Total a Pagar Reporte 2 Bs. XXXXXX,xx.
1,Resuelva el problema planteado algorítmicamente usando la metodología MAPS, a fin de facilitar la conceptualización, diseño, planificación, ejecución de la solución solicitada.
2,Después de haber aplicado cada una de las etapas de la metodología MAPS diseñe un algoritmo usando técnicas de programación estructurada, que cumplan con las especificaciones dadas; tenga especial cuidado de hacer una buena declaración de datos y sus tipos.
3, codifique el algoritmo obtenido a lenguaje pascal!
He hecho lo siguiente;
Variables
Ht, sh, ttrab, sueldo, totalap, Totaltra
Si Mientras n<102
haga Imprimir
‘digite horas trabajadas
Leer Ht
Imprimir ‘digite el sueldo de la hora’
Sueldo=sh*ht
Si Sueldo<100000
entonces Totalpa = sueldo
Sino Totalpa=sueldo+ (sueldo*0.10)
Totaltra=totaltra+totalpa
N=n+1
Fin mientras Imprimir Totaltr
Fin
En lenguaje pascal quedaría asi , o al menos eso creo
uses crt;
Var
ht,n,tope:integer;
sh: Real;
sueldo: Real;
totalpa: Real;
totaltra: Real;
Begin
tope := 3;
totaltra:=0;
for n:=1 to tope do begin
WriteLn('Digite horas trabajadas: ');
ReadLn(ht);
WriteLn('Digite sueldo por hora: ');
ReadLn(sh);
sueldo := sh*ht;
If sueldo<100000 Then
totalpa := sueldo
Else
totalpa := sueldo+(sueldo*0.10);
totaltra := totaltra+totalpa;
End;
WriteLn(totaltra:4:2);
End.
La ayuda que necesito es como hago el diseño planteado usando metodología maps , no se que hacer?? Como hago la pre y post condición del problema, ayudenme por favor! Ya reprobe una vez y no quiero volver a reprobar!!.
Los programas tienen entradas y salidas, un programa se alimenta de datos que se espera que el usuario introduzca y el programa procesará esos datos y producirá una salida. En el caso del problema que quieres resolver se espera recibir el tipo de trabajador, las horas trabajadas y el sueldo por horas (cada una identificada por medio de una variable en el algoritmo o en el lenguaje del programa), ¿qué se espera luego de recibir toda esta información? (SALIDA), pues el total a pagar a los empleados y el total a pagar a los obreros (cada uno identificado por medio de una variable en el algoritmo o en el lenguaje del programa).
Las precondiciones no son más que especificar cómo deben ser los datos que va a proporcionar el usuario (cómo va a ser la ENTRADA) para cada variable de entrada. Por ejemplo, de la variable relacionada con el tipo de trabajador solo se esperan dos valores (1 ó 2), "1" para Obrero y "2" para Empleado. Fíjate que es muy fácil, la complicación se la hace uno en la cabeza.
Las postcondiciones no son más que decir cómo serán los valores que se esperan recibir por pantalla (SALIDA) una vez procesados los datos de la ENTRADA, de los que ya hemos hablado en el párrafo anterior. Por ejemplo, la variable relacionada con el Total a Pagar deberá ser un número positivo que contenga decimales.
Tanto las precondiciones como las postcondiciones deben hacerse usando el "lenguaje de predicado", pero pudieras hablar con tu profesor para que acepte que sea expresado en palabras. No es difícil usar el "lenguaje de predicados", te recomiendo el libro COMPUTACIÓN I de Luis Joyanes: Lógica, resolución de problemas, algoritmos y programas (Allen B. Tucker, Robert D. Cupper, entre otros).
NOTA: En la explicación que acabo de darte pude no haber incluido todas las variables de entrada y de salida, sólo usé algunas como ejemplo. Esto es para que lo tengas en cuenta. Simplemente quería darte una oritentación.
Espero haberte ayudado un poco a ver el camino de una manera más clara. Saludos.
(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.)