Biglietto del museo
Il museo civico della città ha una tariffa che gli addetti alla biglietteria sanno a memoria ma che il nuovo sito deve calcolare da solo. La prima domenica del mese l’ingresso è gratuito per tutti, chiunque sia il visitatore. Negli altri giorni, i bambini sotto i 6 anni e le persone dai 70 anni in su entrano gratis; fino ai 18 anni compresi, oppure con la tessera studente a qualunque età, il biglietto è ridotto a 8 euro; tutti gli altri pagano l’intero, 15 euro.
Scrivi il programma che, dati età, tessera studente (vero/falso) e prima domenica (vero/falso), restituisce il prezzo. L’ordine dei controlli conta: un settantacinquenne con tessera studente entra gratis, non a 8 euro, perché il gratuito viene prima del ridotto.
Input
etanumero — anni del visitatorestudentelogico — TRUE se ha la tessera studenteprima_domenicalogico — TRUE se è la prima domenica del mese
Output
prezzo numero — 0, 8 oppure 15
Regole
- La prima domenica del mese l’ingresso è gratuito per tutti.
- Negli altri giorni: gratis sotto i 6 anni e dai 70 in su; ridotto a 8 € fino ai 18 anni compresi oppure con tessera studente; intero 15 € per tutti gli altri.
- Le condizioni vanno controllate nell’ordine giusto: prima i casi gratuiti, poi i ridotti.
- Una variabile logica si può usare direttamente come condizione:
if(studente)equivale aif(studente == TRUE).
Esempi
| eta | studente | prima_domenica | prezzo |
|---|---|---|---|
| 30 | false | false | 15 |
| 16 | false | false | 8 |
| 25 | true | false | 8 |
Soluzione
| caso | eta | studente | prima_domenica | atteso | ottenuto |
|---|
eta <- 30
studente <- FALSE
prima_domenica <- FALSE
if(prima_domenica){
prezzo <- 0
}else if(eta < 6 | eta >= 70){
prezzo <- 0
}else if(eta <= 18 | studente){
prezzo <- 8
}else{
prezzo <- 15
}
prezzo