Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/08/2011, 12:06
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Lógica de programación ejercicio

Creo que estás interpretando mal el ejercicio con esta parte "sin exceder nunca de tres horas diarias ni de tres veces en una semana", esa parte te está haciendo confundir. Tienes como base un sueldo por hora y las horas que trabajó en la semana. Tu dices que suponiendo un trabajador trabaja de lunes a viernes y 8 horas diarias. Serían 40 horas a la semana. esas 40 horas se pagan el doble, ahora necesitas sacar las extras que según la ley federal se pagan el triple, una resta horas trabajadas menos 40 horas. Ya tienes las horas extras, ahora esas horas se multiplican por el sueldo base y por 3.

Básicamente sería:

Código PHP:
Ver original
  1. <?php
  2. $horastrabajadas = 41; //1 hora extra
  3. $sueldoporhora = 50;
  4. $extras = $horastrabajadas - 40;
  5. $sueldo = ($horastrabajadas-$extras)*$sueldoporhora*2;
  6. $sueldoconextras = $sueldo+($extras*$sueldoporhora*3);
  7. echo 'Sueldo semana: ' . $sueldoconextras;

ahora si lo quieres completar más:

Código PHP:
Ver original
  1. <?php
  2. $horastrabajadas = array(8, 8, 8, 9, 8); //horas semana, 5 días
  3. $sueldoporhora = 50;
  4. $sueldosemana = 0;
  5. $ley = 0;
  6.  
  7. if (max($horastrabajadas) <= 11) { //sin exceder nunca de tres horas diarias
  8.     foreach ($horastrabajadas as $ht) {
  9.         if ($ht == 8) {
  10.             $sueldosemana += $ht * $sueldoporhora * 2;
  11.     //las primeras 8 horas se pagarán doble
  12.         } else if ($ht > 8) {
  13.             $extras = $ht - 8;
  14.             $sueldosemana += 8 * $sueldoporhora * 2;
  15.             $sueldosemana += $extras * $sueldoporhora * 3;
  16.             $ley++;
  17.     //las demás el triple.
  18.         }
  19.     }
  20.     if ($ley <= 3) { //ni de tres veces en una semana
  21.         echo 'Sueldo semana: ' . $sueldosemana;
  22.     } else {
  23.         echo 'No cumple con la ley federal';
  24.     }
  25. } else {
  26.     echo 'No cumple con la ley federal';
  27. }

En cualquiera de los 2 casos da el mismo resultado.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP