Pràctica Dades i variables

(1) elteuusuari correspon a la direcció de correu electrònic del centre, sense punts, fins a @itb.cat
(2) per afegir un tag desde l'IntelliJ fes clic a VCS -> Git -> Tags. Al fer push, marca l'opció push tags.

Sumari

  1. TrainingAssistant
    1. Welcome
      1. Input
      2. Output
    2. Age calculator
      1. Input
      2. Output
    3. IMC calculator
      1. Input
      2. Output
    4. Training Schedule
      1. Joc de proves 1
        1. Input
        2. Output
      2. Joc de proves 2
        1. Input
        2. Output
      3. Joc de proves - Solució entera
        1. Input
        2. Output
    5. Esquelet
    6. Exemple sencer
      1. Input
      2. Output

TrainingAssistant

Volem fer un assistent de text que dóna la benvinguda a un gimnàs.

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ó. Usa'l per fer aquesta pràctica.

Input

Maria

Output

Hello! My name is TrainingAssistant.
Please, tell me your name.
What a great name you have, Maria!

Age calculator

Per començar a treballar volem conèixer l'edat de l'usuari. Per fer-ho demanarem l'any de naixement i calcularem quants anys té. Per no demanar-li el dia, calcularem l'any amb un marge d'error d'un any.

Podem obtenir l'any actual usant:

Year.now().value

Input

2001

Output

Please, tell me which year you were born.
You are between 19 - 20 years old. That's a good age for practicing sport.

IMC calculator

Volem donar informació al nostre client de si el seu pes és saludable. Per fer-ho necessitarem preguntar-li el pes i l'alçada. Amb el pes i l'alçada calcularem el IMC i li mostrarem per pantalla.

Finalment, segons l'IMC, indicarem si aquest valor el sitúa en pes insuficient, normal, sobre pes o obesitat.

Segons el IMC, podem veure quin tipus de pes té amb la següent taula:

Input

64
1.67

Output

Let's check some of your parameters
Tell me your weight in kg
Tell me your height in m
Your IMC is 22.948115744558788

Checking insufficient weight.... false
Checking normal weight.... true
Checking overweight.... false
Checking obesity.... false

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 tell you 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 2

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

Joc de proves - Solució entera

Input
9
3
Output
I'll tell you 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

Esquelet

Fes servir l'esquelet següent

import java.time.Year
import java.util.*

val scanner = Scanner(System.`in`).useLocale(Locale.UK)
fun main() {
    welcome("TrainingAssistant") // change it as you need
    ageCalculator()
    imcCalculator()
    trainingSchedule()
}

fun welcome(assistantName: String) {
    TODO("Not yet implemented")
}
fun ageCalculator() {
    TODO("Not yet implemented")
    //val currentYear = Year.now().value
}

fun imcCalculator() {
    TODO("Not yet implemented")
}
fun trainingSchedule() {
    TODO("Not yet implemented")
}

Exemple sencer

Input

Maria
2001
64
1.67
9
3

Output

Hello! My name is TrainingAssistant.
Please, tell me your name.
What a great name you have, Maria!

Please, tell me which year you were born.
You are between 19 - 20 years old. That's a good age for practicing sport.

Let's check some of your parameters
Tell me your weight in kg
Tell me your height in m
Your IMC is 22.948115744558788

Checking insufficient weight.... false
Checking normal weight.... true
Checking overweight.... false
Checking obesity.... false

I'll tell you 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