Pràctica Dades i variables

(1) elteuusuari correspon a la direcció de correu electrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. RocoAssistant
    1. Welcome
      1. Input
      2. Output
    2. ClimbingColorsCalculator
      1. Input
      2. Output
    3. Training Schedule
      1. Joc de proves 1
        1. Input
        2. Output
      2. Joc de proves - Solució entera
        1. Input
        2. Output
    4. FeeCalculator
      1. Output
    5. Esquelet
    6. Exemple sencer
      1. Output

RocoAssistant

Han obert un rocodrom nou al barri
Volem fer un assistent de text que dóna la benvinguda al rocòdrom.

Welcome

Primer de tot el programa donarà la benvinguda a l'usuari.
Aquest introduirà el seu nom i tindrà un missatge personalitzat.

Al final del document hi ha un esquelet de l'aplicació. Fes-lo servir per fer aquesta pràctica.

Input

Maria

Output

Hello!
Please, tell me your name.
Welcome Maria

ClimbingColorsCalculator

El rocòdrom té diverses vies amb diferents nivells segons una escala de colors. Aquesta escala té una correspondència amb el nivell de les vies d'escalada en roca natural.

Normalment el grau en roca natural s'expressa en números romans (IV, V, V+ ..) però nosaltres, per fer aquesta pràctica farem servir el valor corresponent al sistema decimal i obviarem el simbol + (superior)

4 .. groc
5 .. carbassa
6 .. verd
7 .. blau
8 .. vermell
9 .. negre

Adicionalment el rocòdrom té vies de color rosa que tenen un nivell sorpresa. Normalment tenen un grau entre 6 i 8

Input

6

Output

Let's check some of your parameters, and i'll recommend your ideal climbing color routes.

Tell me your grade when climbing on the rock! (1 if you never climb before)

The following colors are recommended for you:
Yellow.... true
Orange.... true
Green.... true
Blue.... false
Red.... false
Black.... false
Pink.... true

Training Schedule

Volem donar informació a l'usuari sobre quantes hores ha d'entrenar cada dia segons el número d'hores totals que vulgui entrenar i el número de dies que pugui fer-ho, tenin en compte que les sessión han de ser múltiples d'una hora (no podem fer una sessió de una hora i mitja).
En aquells casos en els quals la divisió no sigui entera, li facilitarem el càlcul a l'usuari. De tal manera que dividirem les hores el més equitativament possible. En el cas que la divisió sigui entera la sortida ha de ser com el tercer joc de proves. Sempre haurem d'impirmir primer el nombre de dies en el que es fan més hores, i deprés en els que menys.

Joc de proves 1

Input
4
3
Output
I'll help you with your training plan.
How many hours would you like to train?
How many days can you train?
Your routine sport could be: 
1 days 2 hours
2 days 1 hours

Joc de proves - Solució entera

Input
9
3
Output
I'll help you with your training plan.
How many hours would you like to train?
How many days can you train?
Your routine sport could be: 
0 days 4 hours
3 days 3 hours

FeeCalculator

Finalment indicarem a l'usuari quin és el preu per sessió, segons els dies que ha indicat anteriorment per cada tipus de quota.
Les tarifes d'enguany són les següents

Abonament 1 sol dia ……… 12 eur
Abonament 10 mutlipersonal .. 110 eur
Abonament mensuals ………. 54 eur
Abonament trimestral …….. 156 eur
Abonament anual …………. 540 eur

Output
How many days per week are you going to come?
Coming 3 days per week, the price for the session costs:
1 day fee .............. 12 eur  ->  12 eur per session
10 mutlipersonal fee ... 110 eur ->  11 eur per session
monthly fee ............ 54 eur  ->  4.5 eur per session
quarterly fee .......... 156 eur ->   4.3 eur per session
annual fee ............. 540 eur ->  3.75 eur per session

Esquelet

Fes servir l'esquelet següent


fun main() {
    val scanner = Scanner(System.`in`).useLocale(Locale.UK)
    welcome(scanner)
    climbingColorsCalculator(scanner)
    trainingSchedule(scanner)
    feeCalculator(scanner)
}

fun welcome(scanner: Scanner) {
    TODO("Not yet implemented")
}

fun climbingColorsCalculator(scanner: Scanner) {
    TODO("Not yet implemented")
}


fun trainingSchedule(scanner: Scanner) {
    TODO("Not yet implemented")
}

fun feeCalculator(scanner: Scanner) {
    TODO("Not yet implemented")
}

Exemple sencer

Output

Hello!
Please, tell me your name.
Laura
Welcome Laura!
Let's check some of your parameters, and i'll recommend your ideal climbing color routes.
Tell me your grade when climbing on the rock! (1 if you never climb before)
6
The following colors are recommended for you:
Yellow....true
Orange.... true
Green.... true
Blue.... false
Red.... false
Black.... false
Pink.... true
I'll help you with your training plan.
How many hours would you like to train?
20
How many days can you train?
7
Your routine sport could be:
6 days 2 hours
1 days 2 hours
How many days per week are you going to come?
3
Coming 3.0 days per week, the price for the session costs:
1 day fee .............. 12 eur  ->  12 eur per session
10 multipersonal fee ... 110 eur ->  11 eur per session
monthly fee ............ 54 eur  ->  4.5 eur per session
quarterly fee .......... 156 eur ->  4.333333333333333 eur per session
annual fee ............. 540 eur ->  3.75 eur per session

Process finished with exit code 0