Llicència
Pots copiar i redistribuir aquest material seguint la llicència Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, indicant-ne autors originals, l'origen (aquesta web), sense fins comercials i mantenint-ne aquesta la llicència
Autors:
Pràctica Dades i variables
- Fes servir el mateix projecte que el que fem servir als exercicis
- Crea un package cat.itb.elteuusuari(1).dam.m03.uf1.data.project
- Crea un únic arxiu kotlin anomenat RocoAssistant
- Quan vulguis entregar la pràctica afegeix el tag "PracticaVariables" a la versió. Assegura't de pujar el tag al git i que el projecte compili.
(1) elteuusuari correspon a la direcció de correu electrònic del centre, sense punts, fins a @itb.cat
Sumari
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