fork download
  1. class Auto
  2. attr_reader :position
  3. attr_writer :position
  4. def initialize(position,v0)
  5. @position=position
  6. @v0=v0
  7. end
  8. def update_position
  9. @position=@position+@v0
  10. end
  11. end
  12.  
  13. class Simulation
  14. def initialize(s,t,vm,ai,ad)
  15. @s=s
  16. @t=t
  17. @vm=vm
  18. @ai=ai
  19. @ad=ad
  20. end
  21.  
  22. def simulate(autos)
  23. autos.sort_by { |x| x.position}
  24. #autos.each {|a| p a}
  25. for i in 1..@t
  26. autos.each{|a| a.update_position+@ai}
  27. autos.each {|a,b| p a.position-b.position}#здесь ошибка undefined method `position' for nil:NilClass
  28.  
  29. =begin
  30. case dist
  31. when dist<=10
  32. autos[i-1].position-$ad
  33. when dist=0
  34. autos.delete(i-1)
  35. end
  36. =end
  37.  
  38. end
  39. end
  40. end
  41.  
  42. auto_data=[[0,2],[5,10],[7,20]]
  43. autos=[]
  44. auto_data.each do |a|
  45. autos.push(Auto.new(a[0],a[1]))
  46. end
  47. s=Simulation.new(100,10,30,5,-2)
  48.  
  49. s.simulate(autos)#запускаем симуляцию
  50. # your code goes here
Runtime error #stdin #stdout #stderr 0.01s 28456KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
prog.rb:27:in `block (2 levels) in simulate': undefined method `position' for nil:NilClass (NoMethodError)
	from prog.rb:27:in `each'
	from prog.rb:27:in `block in simulate'
	from prog.rb:25:in `each'
	from prog.rb:25:in `simulate'
	from prog.rb:49:in `<main>'