Ruby fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.3 KiB

4 years ago
  1. ## 3 Binaarilukukone
  2. **Tehtävä:**
  3. Luvun kolmas tehtävä esittelee syötteen pyytämisen käyttäjältä ja testaa tyyppimuunnosfunktioita käytännössä. Tee siis ohjelma, joka pyytää käyttäjältä luvun kysymyksellä "Anna joku luku:". Tämän jälkeen ohjelma ilmoittaa käyttäjälle annetun luvun binaarilukuna muodossa "Antamasti luku on binaariarvoina [tulos]" sekä heksalukuna muodossa "ja heksoina [tulos]". Helpoiten tehtävää kannattaa lähestyä to_s(2) ja to_s(16)-metodeja apuna käyttäen.
  4. Tehtävässä voidaan lisäksi olettaa, että käyttäjä ei anna virheellisiä syötteitä, joten siihen ei tarvitse varautua. Lisäksi kannattaa muistaa, että käyttäjältä vastaanotetun syötteen loppuun tallentuu aina rivinvaihtomerkki, josta pääsee eroon parhaiten chop! tai chomp!-metodeilla.
  5. Toimiessaan oikein ohjelma tulostaa seuraavaa:
  6. Example output:
  7. ```
  8. Anna joku luku:
  9. 2343
  10. Antamasi luku on binaariarvoina 100100100111
  11. ja heksoina 927
  12. ```
  13. **Vastaus**
  14. ```
  15. #!/usr/bin/env ruby
  16. # coding: utf-8
  17. begin
  18. puts "Anna joku luku:"
  19. #luku = gets.to_i
  20. luku = Integer(gets.strip.chomp)
  21. rescue ArgumentError
  22. warn "Ei ole kokonaisluku"
  23. retry
  24. end
  25. puts "Antamasi luku on binaariarvoina " + luku.to_s(2) + \
  26. "\nja heksoina " + luku.to_s(16)
  27. ```