Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.80 KB | None | 0 0
  1. def lue_int; gets.to_i; end
  2.  
  3. def tulosta_kanto(korkeus)
  4.   korkeus.downto(2) { |i|
  5.     print " "
  6.   }
  7.   puts "*"
  8. end
  9.  
  10. def tulosta_oksa(oksa, korkeus)
  11.   tyhjan_maara = oksa
  12.   tyhjan_maara.downto(1) { |i|
  13.     print " "
  14.   }
  15.   oksan_leveys = (korkeus-oksa)*2-1
  16.   oksan_leveys.downto(1) { |i|
  17.     print "*"
  18.   }
  19.   puts ""
  20. end
  21.  
  22. def tulosta_kuusi(korkeus)
  23.   korkeus.downto(1) { |oksa|
  24.     tulosta_oksa(oksa, korkeus)
  25.   }
  26.   tulosta_kanto(korkeus)
  27. end
  28.  
  29. print "kuusen korkeus: "
  30. korkeus = lue_int
  31. tulosta_kuusi(korkeus)
  32.  
  33. ##
  34.  
  35. def lue_string; gets.strip; end
  36.  
  37. def tulosta_tahtia(lkm)
  38.   lkm.times { print "*" }
  39. end
  40.  
  41. def lue_arvosanat(arvosanat)
  42.   arvosanat.each_index { |i|
  43.     if i==0
  44.       print "hylättyjä: "
  45.     else
  46.       print "#{i}: "
  47.     end
  48.     arvosanat[i] = lue_int
  49.   }
  50. end
  51.  
  52. def hyv_pros(arvosanat)
  53.   osallistujat = 0.0
  54.   arvosanat.each { |lkm|
  55.     osallistujat += lkm
  56.   }
  57.   (osallistujat-arvosanat[0])/osallistujat
  58. end
  59.  
  60. def tulosta_arvosanajakauma(arvosanat)
  61.   puts "Agile entwiclklung mit Ruby über Gleis"
  62.   (arvosanat.length-1).downto(1) { |i|
  63.     print "#{i}: "
  64.     tulosta_tahtia(arvosanat[i])
  65.     puts ""
  66.   }
  67.   print "hylättyjä: "
  68.   tulosta_tahtia(arvosanat[0])
  69.   puts ""
  70.  
  71.   puts "hyväksymisprosentti #{hyv_pros(arvosanat)}"
  72. end
  73.  
  74. def laske_arvosana(pist)
  75.   if pist>49
  76.     return 5
  77.   elsif pist>44
  78.     return 4
  79.   elsif pist>39
  80.     return 3
  81.   elsif pist>34
  82.     return 2
  83.   elsif pist>29
  84.     return 1
  85.   end
  86.   return 0
  87. end
  88.  
  89. def lue_pistemaarat(arvosanat)
  90.   puts "syöta pistemääriä, negatiivinen lopettaa "
  91.   while true    
  92.     pist = lue_int
  93.     break if pist<0 or pist>60
  94.     arvosanat[ laske_arvosana(pist) ] += 1
  95.   end
  96. end
  97.  
  98. arvosanat = Array.new(6) { |i| 0}
  99.  
  100. lue_pistemaarat(arvosanat)
  101. tulosta_arvosanajakauma(arvosanat)
  102.  
  103. system.exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement