Straordinari della settimana
Nell’ufficio del personale di un supermercato, ogni fine settimana bisogna calcolare la paga degli addetti a partire dal cartellino: un vettore con le ore lavorate in ciascun giorno. Il contratto dice che in ogni giornata le prime 8 ore sono ordinarie e si pagano alla paga oraria; le ore oltre l’ottava sono straordinario e valgono il 130% della paga oraria.
Il punto che il vecchio foglio Excel sbagliava: il conteggio è giorno per giorno. Chi fa 9 ore il lunedì e 7 il martedì ha un’ora di straordinario, non zero, perché le ore non si compensano tra giornate.
Scrivi il programma che, dati il vettore delle ore e la paga oraria, calcola la paga della settimana con due decimali.
Input
orevettore di numeri — ore lavorate in ciascun giorno della settimanapaga_orarianumero — euro per ora ordinaria
Output
paga numero — paga della settimana in euro, 2 decimali
Regole
- In ogni giorno le prime 8 ore sono ordinarie e si pagano a
paga_oraria. - Le ore oltre l’ottava, giorno per giorno, sono straordinario e si pagano al 130% (
paga_oraria * 1.3). - La paga è la somma dei giorni. Arrotonda a due decimali.
- Il conteggio è per giorno: 9 ore il lunedì e 7 il martedì fanno un’ora di straordinario, non zero.
Esempi
| ore | paga_oraria | paga |
|---|---|---|
| 88888 | 12 | 480.0 |
| 981087 | 12 | 514.8 |
Soluzione
| caso | ore | paga_oraria | atteso | ottenuto |
|---|
ore <- c(8, 8, 8, 8, 8)
paga_oraria <- 12
paga <- 0
for(i in 1:length(ore)){
if(ore[i] > 8){
ordinarie <- 8
extra <- ore[i] - 8
}else{
ordinarie <- ore[i]
extra <- 0
}
paga <- paga + ordinarie * paga_oraria + extra * paga_oraria * 1.3
}
paga <- round(paga, 2)
paga