Skip to content

Instantly share code, notes, and snippets.

@shime
Created April 16, 2012 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shime/2400015 to your computer and use it in GitHub Desktop.
Save shime/2400015 to your computer and use it in GitHub Desktop.
# napisi program u kojem korisnik unosi neke brojeve od 1 do n i ispisuje zbroj neparnih brojeva
puts "Upisite n:"
n = gets.chomp.to_i # gets => čitanje sa tipkovnice dok ne stisneš enter
# chomp => makni enter s kraja stringa ("\n") - jer smo stisnuli enter i dodali ga
# to_i => pretvara string u broj
# nek sad krene unosit tih n brojeva
brojevi = (1..n).map { gets.chomp.to_i } # <3
# (1..n) je range => idi od 1 do n
#
# map radi tako da pretvara array ili range iz jednog oblika u drugi
# primjeri:
# (1..10).map { 1 } => [1,1,1,1,1,1,1,1,1,1,1]
# (1..10).map {|element| element % 2 } => [1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
# [1,2,3,4,5].map {|el| el + 1 } => [2,3,4,5,6]
# mi ovdje radimo pretvorbu tog nekog arraya iliti rangea koji ima elemente [1,2,3,4,5....n] u
# [<gets>,<gets>,<gets>,....,<gets>]
# di ovo gets znači da svaki taj element čitamo sa tipkovnice, nije li to prekrasno?
zbroj = brojevi.select {|x| x.even?}.inject {|sum,x| sum + x} # <3 <3 <3 :P
# select => selektira iz arraya samo one elemente koji zadovoljavaju ovaj uvjet unutar {} i
# vraća array s elementima koji ga zadovoljavaju
# ovdje sam koristio .even? zato jer to testira jel broj paran, imaš tak i za .odd? itd.
# nakon toga sam koristio prekrasnu funkciju inject
# inject se poziva ovak => inject {|memo, obj| <neka operacija>}
# trči po svim elementima arraya (obj) i radi operaciju koju sprema u taj memo
# na početku je memo jednak prvom članu arraya
# nije li to predivna funkcija? :D
# naravno, mogla si ovo i javastičnije napravit:
#
# zbroj = 0
# brojevi.select {|x| x.even?}.each do |element|
# zbroj += element
# end
#
# ali to je za papke :P
# ne znam jesi primjetila, al ovaj program ima hiljadu linija, od kojih 994 linije komentara i 3 linije ispisa :P
puts "Zbroj neparnih elemenata je:"
puts zbroj
# dosadno :(
@FouDorothee
Copy link

:D

@FouDorothee
Copy link

kad dobim 5 idemo se napit^^

@shime
Copy link
Author

shime commented Apr 17, 2012

možemo uvijek ljubavi :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment