Tariffa del parcheggio
Il parcheggio del centro commerciale ha una cassa automatica e la società che lo gestisce ti chiede di riscrivere la regola che calcola l’importo all’uscita, perché quella vecchia sbagliava proprio sui casi che generano reclami.
La sosta è gratuita fino a 30 minuti. Oltre i 30 minuti si paga 1,50 euro per ogni ora o frazione di ora, contando dal momento dell’ingresso: chi resta 31 minuti paga una frazione della prima ora, cioè 1,50 euro; chi resta 61 minuti è già nella seconda ora e paga 3 euro; chi resta esattamente 60 minuti paga un’ora sola. C’è un massimo giornaliero di 12 euro, oltre il quale il contatore si ferma. Il parcheggio chiude la sera, quindi ogni sosta comincia e finisce nella stessa giornata: l’importo non supera mai i 12 euro.
Scrivi il programma che, dati i minuti di sosta, calcola l’importo. In R l’arrotondamento per eccesso all’intero si fa con ceiling(x): ceiling(12.1) è 13, mentre ceiling(12) resta 12.
minutinumero — minuti di sosta, dall'ingresso all'uscita, nella stessa giornata
costo numero — euro da pagare
- Fino a 30 minuti la sosta è gratuita.
- Oltre i 30 minuti si paga 1,50 € per ogni ora o frazione di ora, contando dall’ingresso: 31 minuti sono una frazione della prima ora, 61 minuti sono già due ore.
ceiling(x)arrotonda per eccesso all’intero:ceiling(12.1)è 13, mentreceiling(12)resta 12. Le ore da pagare sonoceiling(minuti / 60).- Il massimo giornaliero è 12 €. Le soste sono sempre entro la stessa giornata (si entra e si esce lo stesso giorno), quindi l’importo non supera mai 12 €.
| minuti | costo |
|---|---|
| 20 | 0 |
| 45 | 1.5 |
| 150 | 4.5 |
Soluzione
| caso | minuti | atteso | ottenuto |
|---|
minuti <- 45
if(minuti <= 30){
costo <- 0
}else{
ore <- ceiling(minuti / 60)
costo <- ore * 1.5
if(costo > 12){
costo <- 12
}
}
costo