# A program error

**URL:** <https://www.ruby-forum.com/t/a-program-error/180272>\
**Category:** Ruby\
**Created:** [December 16, 2009, 8:38am UTC](https://www.ruby-forum.com/t/a-program-error/180272 "2009-12-16T08:38:05Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 8:38am UTC](https://www.ruby-forum.com/t/a-program-error/180272/1 "2009-12-16T08:38:05Z")

</div>

hi, all! my compiler doesn’t like the “minus” in line 21, it’s like:

/home/cristi/NetBeansProjects/RubyApplication3/lib/helic.rb:21:  
undefined method `-’ for “”:String (NoMethodError)

1 require “init.rb”  
2  
3 shots = 3  
4 time = 1  
5 speed = 0  
6 x=y=1  
7 while (shots!=0) do  
8 #give entry data  
9 puts “let’s f_ck da su\*\*er!"  
10 puts “give speed:”  
11 speed = gets  
12 puts “give angle:”  
13 angle = gets  
14 #processing entry data  
15 angle=(Math::PI)/180_angle.to\_f  
16 xspeed=speed_Math.cos(angle)  
17 yspeed=speed_Math.sin(angle)  
18 #trajectory’s loop  
19 while (y\>0) do  
20 x=xspeed_time  
21 y=yspeed_time-4.9\*time\*\*2  
22 time+=0.01  
23  
24 #puts “x=”+x.to\_i.to\_s+” y="+y.to\_i.to\_s  
25 screen.fill\_rect 0, 0, 640, 480, BGCOLOR  
26 screen.draw\_circle x, y, 5, SHELLCOLOR  
27 screen.flip  
28  
29 end  
30 shots-=1  
31 puts “shots remaining”+ shots.to\_s  
32 end

help, please. thanks!

---

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 9:03am UTC](https://www.ruby-forum.com/t/a-program-error/180272/2 "2009-12-16T09:03:57Z")

</div>

it appears that yspeed is “”, which implies speed from gets is not what  
you expect it to be. puts speed after you gets it and see.

---

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 9:19am UTC](https://www.ruby-forum.com/t/a-program-error/180272/3 "2009-12-16T09:19:45Z")

</div>

Zhao Lu wrote:

> it appears that yspeed is “”, which implies speed from gets is not what  
> you expect it to be. puts speed after you gets it and see.

The answer is

speed = gets.to\_s

puts speed gave integer, but puts xspeed(and yspeed too) gave “”. You  
were about right. I fell so stupid…

Thanks!

---

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 9:25am UTC](https://www.ruby-forum.com/t/a-program-error/180272/4 "2009-12-16T09:25:02Z")

</div>

> speed = gets.to\_s

shit, I had to write

speed = gets.to\_f

sorry

---

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 5:03pm UTC](https://www.ruby-forum.com/t/a-program-error/180272/5 "2009-12-16T17:03:52Z")

</div>

Hi,

Am Mittwoch, 16. Dez 2009, 16:38:07 +0900 schrieb Teodor C.:

> hi, all! my compiler doesn’t like the “minus” in line 21, it’s like:
> 
> /home/cristi/NetBeansProjects/RubyApplication3/lib/helic.rb:21:  
> undefined method `-’ for “”:String (NoMethodError)
> 
> […]  
> 20 x=xspeed_time  
> 21 y=yspeed_time-4.9\*time\*\*2  
> […]

Put something like this before line 21 and the cause of the error  
is obvious:

puts [xspeed, yspeed, time].inspect

Bertram

---

<div class="post-metadata">

**Author:** ![diabolator2](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/b782af/32.png) [@diabolator2](https://www.ruby-forum.com/u/diabolator2)\
**Post date:** [December 16, 2009, 9:39am UTC](https://www.ruby-forum.com/t/a-program-error/180272/6 "2009-12-16T09:39:03Z")

</div>

Try to use  
speed = gets.to\_i at line 11 and  
angle = gets.to\_i at line 13 to resolve this.

Regards,  
Raghav
