{"id":5833,"date":"2018-09-01T01:11:55","date_gmt":"2018-09-01T06:11:55","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=5833"},"modified":"2026-04-05T07:15:25","modified_gmt":"2026-04-05T12:15:25","slug":"2eva2018ti_t2-pago-nomina-mensual","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-2eva20\/2eva2018ti_t2-pago-nomina-mensual\/","title":{"rendered":"2Eva2018TI_T2 Pago nomina mensual"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">2da Evaluaci\u00f3n I T\u00e9rmino 2018-2019. 31-Agosto-2018 \/CCPG001<\/h2>\n\n\n\n<p><strong>Tema 2<\/strong>. (50 puntos) Una compa\u00f1\u00eda, con miles de empleados y varias sucursales en el pa\u00eds, paga sus salarios por hora clasificadas como: <\/p>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"195\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/09\/sueldosalario01.png\" alt=\"sueldo salario trabajador\" class=\"wp-image-16954\" \/><\/figure>\n\n\n\n<p>- horas regulares (HR),<br>- horas fuera de horario normal (HER),<br>- fines de semana (HFDS) y<br>- feriados (HF).<\/p>\n\n\n\n<p>El registro de asistencia de los empleados contiene: dia, mes, a\u00f1o, cantidad de horas trabajadas, entre otros mostrados en el <strong>archivo<\/strong> ejemplo.<\/p>\n\n\n\n<p>El <strong>archivo<\/strong> inicia con l\u00edneas del valor en d\u00f3lares por hora, los factores de pago por tipo, una linea de encabezado y el detalle de las horas trabajadas por empleado. Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VH,10,<strong>V<\/strong>alor <strong>H<\/strong>ora en \u00e9sta compa\u00f1\u00eda\nHR,1,Factor <strong>H<\/strong>oras <strong>R<\/strong>egulares\nHER,1.21,Factor <strong>H<\/strong>oras <strong>E<\/strong>xtras en dias <strong>R<\/strong>egulares (lunes-viernes)\nHFDS,1.37,Factor <strong>H<\/strong>oras en <strong>F<\/strong>in <strong>D<\/strong>e <strong>S<\/strong>emana (Sabado o domingo)\nHF,1.39,Factor <strong>H<\/strong>oras en <strong>F<\/strong>eriado\n<em>Fecha,dia,feriado,ID,nombre,sucursal,ciudad,horas-trabajadas<\/em>\n...\n10-Agosto-2018,5,Si,FG848801,Fabricio Granados,River Mall,Cuenca,1\n10-Agosto-2018,5,Si,GH907603,Segunda Vez Zambrano,River Mall,Cuenca,1\n09-Agosto-2018,4,No,FG848801,Fabricio Granados,River Mall,Cuenca,9\n...<\/code><\/pre>\n\n\n\n<p>Las <strong>horas extras<\/strong> en d\u00edas regulares se calculan despu\u00e9s de la 8va hora de trabajo.<\/p>\n\n\n\n<p>Si el empleado trabaj\u00f3 en un dia <strong>feriado,<\/strong> que tambi\u00e9n es <strong>fin de semana,<\/strong> el factor aplicado es el m\u00e1s alto, es decir <strong>feriado<\/strong>.<\/p>\n\n\n\n<p>Desarrolle las funciones descritas a continuaci\u00f3n y un programa para calcular los valores a pagar para cada empleado.<\/p>\n\n\n\n<p>a) <strong>calcularHoras<\/strong>(<strong><em>linea<\/em><\/strong>). Recibe una <strong><em>l\u00ednea<\/em><\/strong> del archivo y determina el n\u00famero de horas trabajadas para cada categor\u00eda. El resultado es una tupla con el identificador del empleado, ciudad y horas trabajadas regulares, extras, fines de semana y feriado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; linea = \"09-Agosto-2018,4,No,<strong>FG848801<\/strong>,Fabricio Granados, River Mall, <strong>Cuenca<\/strong>,9\"\n&gt;&gt;&gt; calcularHoras(linea)\n('<strong>FG848801<\/strong>','<strong>Cuenca<\/strong>',8,1,0,0)<\/code><\/pre>\n\n\n\n<p>b) <strong>leerData<\/strong>(<em><strong>nomA<\/strong><\/em>). Recibe el nombre del archivo de n\u00f3mina (<em>nomA) <\/em>correspondiente a un <strong>mes<\/strong> de un <strong>a\u00f1o<\/strong> y retorna una tupla de tres elementos: (<strong>totales<\/strong>, <strong>mes<\/strong>, <strong>a\u00f1o<\/strong>).&nbsp;&nbsp; <strong>Totales<\/strong> es un diccionario con la suma en d\u00f3lares de <em>HR<\/em>, <em>HER<\/em>, <em>HFDS<\/em> y <em>HF<\/em> trabajados por cada empleado con la siguiente estructura:<strong><br><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>totales<\/strong> = {'Cuenca':\n            {'FG848801': {'HR': 530.0, 'HER': 36.30,\n                          'HFDS': 0.0, 'HF': 13.89},\n             'GH907603': {'HR': 425.0, 'HER': 48.30,\n                          'HFDS': 13.70, 'HF': 13.90}\n             ...\n             }\n          'Quito' :\n            {...},\n          ...\n          }<\/code><\/pre>\n\n\n\n<p>c) <strong>generaReporte<\/strong>(<strong><em>nomA<\/em><\/strong>). Recibe el nombre del archivo de n\u00f3mina (<em>nomA) <\/em>correspondiente a un <em><strong>mes<\/strong> de un <strong>a\u00f1o<\/strong> <\/em>y genera un nuevo archivo reporte para cada ciudad.<br>Cada archivo reporte tiene como nombre \"<strong>ciudadMes-A\u00f1o.txt<\/strong>\" y contiene: cabecera y la siguiente informaci\u00f3n por cada empleado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>idEmpleado, total$HorasRegulares, total$HorasExtras(HER+HFDS+HF)<\/code><\/pre>\n\n\n\n<p><strong>R\u00fabrica<\/strong>: literal a (12 puntos), literal b (25 puntos), literal c (13 puntos)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2da Evaluaci\u00f3n I T\u00e9rmino 2018-2019. 31-Agosto-2018 \/CCPG001 Tema 2. (50 puntos) Una compa\u00f1\u00eda, con miles de empleados y varias sucursales en el pa\u00eds, paga sus salarios por hora clasificadas como: - horas regulares (HR),- horas fuera de horario normal (HER),- fines de semana (HFDS) y- feriados (HF). El registro de asistencia de los empleados contiene: [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejercicios","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[147,152],"class_list":["post-5833","post","type-post","status-publish","format-standard","hentry","category-fp-2eva20","tag-archivos","tag-diccionarios"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=5833"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5833\/revisions"}],"predecessor-version":[{"id":16956,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5833\/revisions\/16956"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}