|
|
- ## 4 Oraakkeli
-
- **Tehtävä:**
-
- Luvun neljännessä tehtävässä harjoitellaan case-valinnan käyttöä, sekä luodaan arkielämää helpottava, erehtymätön, Oraakkeli-ohjelma. Ohjelma käynnistyy antamalla lyhyen selityksen itsestään: "Oraakkeli vastaa kyllä/ei-muodossa". Tämän jälkeen pyydetään käyttäjältä kysymys "Kirjoita kysymyksesi Oraakkelille:". Tämän jälkeen ohjelma arpoo luvun väliltä 0-99 ja vastaa käyttäjälle seuraavassa muodossa:
-
- "Kysymyksesi oli: [esitetty kysymys]", "Tähän Oraakkeli vastasi:" ja mikäli satunnaisluku oli 0-19, "Ei missään nimessä!", 20-44 "Ei varmaankaan", 45-54 "En osaa sanoa.", 55-79 "Luultavasti kyllä." ja 80-99 "Ehdottomasti kyllä".
-
- Toimiessaan oikein ohjelma tulostaa seuraavaa:
-
- Example output:
-
- ```
- Oraakkeli vastaa kyllä/ei-muodossa
- Kirjoita kysymyksesi Oraakkelille:
- Onko nyt hyvä päivä?
- Kysymyksesi oli: Onko nyt hyvä päivä?
- Tähän Oraakkeli vastasi:
- En osaa sanoa.
- ```
-
- **Vastaus**
-
- ```
- #!/usr/bin/env ruby
- # coding: utf-8
-
- puts "Oraakkeli vastaa kyllä/ei-muodossa\n\
- Kirjoita kysymyksesi Oraakkelille:"
-
- begin
- kysymys = String(gets.chomp)
- if not kysymys[-1] == "?"
- puts "Ei ole kysymys"
- throw ArgumentError
- end
-
- rescue ArgumentError
- warn "Syötteesi ei ole kelvollinen"
- retry
- end
-
- puts "Kysymyksesi oli: #{kysymys}"
-
- x = rand(0..99)
- case x
- when 0..19
- vastaus = "Ei missään nimessä!"
- when 20..44
- vastaus = "Ei varmaankaan"
- when 45..54
- vastaus = "En osaa sanoa."
- when 55..79
- vastaus = "Luultavasti kyllä."
- when 80..99
- vastaus = "Ehdottomasti kyllä."
- # else-vaihtoehto ei koskaan toteutuisi, mikäli x on aina väliltä 0-99,
- # ja edellämainitut tilanteet kattavat koko kyseisen arvovälin
- end
- print "Tähän Oraakkeli vastasi:\n#{vastaus}"
- ```
|