Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Two Dimensional Array

Reply
Thread Tools

Two Dimensional Array

 
 
Justin To
Guest
Posts: n/a
 
      06-27-2008
class Tda

def initialize(width=0, height=0)
if((width==0) && width<height)
raise NotImplementedError,
"\(#{width}\) width Tda cannot have a height."
else
@tda = Array.new(width).map!{ Array.new(height) }
end
end

def width?
return @tda.size
end

def height?
if(width?>0)
return @tda[0].size
else
return nil
end
end

#--Returns the dimensional size (x x y) as a string
def size
w=@tda.size

if(width?>0)
h = @tda[0].size
else
h = 0
end

return "#{w}x#{h}"
end

#--Returns true if both Tda's have equal widths and heights
def eql_size?(tda)
bool=false

lh=size.split('x')
rh=tda.size.split('x')

if(lh[0]==rh[0])
bool=true
end

if(lh[1]==rh[1])
bool=true
else
bool=false
end

return bool
end

end

This is what I've got so far, but I can't seem to figure out how to
write methods for: copying a Tda to another Tda, and indexing the Tda.
Thanks for the help!
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Shashank Agarwal
Guest
Posts: n/a
 
      06-29-2008
Justin To wrote:
> class Tda
>
> def initialize(width=0, height=0)
> if((width==0) && width<height)
> raise NotImplementedError,
> "\(#{width}\) width Tda cannot have a height."
> else
> @tda = Array.new(width).map!{ Array.new(height) }
> end
> end
>
> def width?
> return @tda.size
> end
>
> def height?
> if(width?>0)
> return @tda[0].size
> else
> return nil
> end
> end
>
> #--Returns the dimensional size (x x y) as a string
> def size
> w=@tda.size
>
> if(width?>0)
> h = @tda[0].size
> else
> h = 0
> end
>
> return "#{w}x#{h}"
> end
>
> #--Returns true if both Tda's have equal widths and heights
> def eql_size?(tda)
> bool=false
>
> lh=size.split('x')
> rh=tda.size.split('x')
>
> if(lh[0]==rh[0])
> bool=true
> end
>
> if(lh[1]==rh[1])
> bool=true
> else
> bool=false
> end
>
> return bool
> end
>
> end
>
> This is what I've got so far, but I can't seem to figure out how to
> write methods for: copying a Tda to another Tda, and indexing the Tda.
> Thanks for the help!


I haven't tried this, but this method might help -

def copy_tda(original_array)
new_tda = []
original_array.each_index do |i|
new_a = []
original_array[i].each_index { |j| new_a <<
original_array[i][j].clone }
new_tda << new_a
end
return new_tda
end
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Todd Benson
Guest
Posts: n/a
 
      06-29-2008
On Fri, Jun 27, 2008 at 5:23 PM, Justin To <(E-Mail Removed)> wrote:
> This is what I've got so far, but I can't seem to figure out how to
> write methods for: copying a Tda to another Tda, and indexing the Tda.


Marshal.dump and Marshal.load might help you.

Todd

 
Reply With Quote
 
ara.t.howard
Guest
Posts: n/a
 
      06-29-2008

On Jun 27, 2008, at 4:23 PM, Justin To wrote:

> class Tda
>
> def initialize(width=0, height=0)
> if((width==0) && width<height)
> raise NotImplementedError,
> "\(#{width}\) width Tda cannot have a height."
> else
> @tda = Array.new(width).map!{ Array.new(height) }
> end
> end
>
> def width?
> return @tda.size
> end
>
> def height?
> if(width?>0)
> return @tda[0].size
> else
> return nil
> end
> end
>
> #--Returns the dimensional size (x x y) as a string
> def size
> w=@tda.size
>
> if(width?>0)
> h = @tda[0].size
> else
> h = 0
> end
>
> return "#{w}x#{h}"
> end
>
> #--Returns true if both Tda's have equal widths and heights
> def eql_size?(tda)
> bool=false
>
> lh=size.split('x')
> rh=tda.size.split('x')
>
> if(lh[0]==rh[0])
> bool=true
> end
>
> if(lh[1]==rh[1])
> bool=true
> else
> bool=false
> end
>
> return bool
> end
>
> end
>
> This is what I've got so far, but I can't seem to figure out how to
> write methods for: copying a Tda to another Tda, and indexing the Tda.
> Thanks for the help!
> --
> Posted via http://www.ruby-forum.com/.



gem install narray

it's this and *much* *much* more - not to mention insanely fast.


>
>


a @ http://codeforpeople.com/
--
we can deny everything, except that we have the possibility of being
better. simply reflect on that.
h.h. the 14th dalai lama




 
Reply With Quote
 
David A. Black
Guest
Posts: n/a
 
      06-30-2008
Hi --

On Sat, 28 Jun 2008, Justin To wrote:

> #--Returns true if both Tda's have equal widths and heights
> def eql_size?(tda)
> bool=false
>
> lh=size.split('x')
> rh=tda.size.split('x')
>
> if(lh[0]==rh[0])
> bool=true
> end
>
> if(lh[1]==rh[1])
> bool=true
> else
> bool=false
> end
>
> return bool
> end


See Ara Howard's advice about using narray. Still -- I just wanted to
suggest one or two things to make this method more concise and clear.

One thing you could do is:

def eql_size?(tda)
lh=size.split('x')
rh=tda.size.split('x')

return lh[0] == rh[0] && lh[1] == rh[1]
end

In general, it's good to let the comparison methods, like ==, do their
thing, which is to produce true and false. There's usually no need to
store and test the results separately.

Moreover, in this particular case, I think you could just do:

def eql_size?(tda)
size == tda.size
end




David

--
Rails training from David A. Black and Ruby Power and Light:
ADVANCING WITH RAILS July 21-24 Edison, NJ
See http://www.rubypal.com for details and updates!

 
Reply With Quote
 
Justin To
Guest
Posts: n/a
 
      06-30-2008
Thanks for all the help!
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
To convert a one dimensional array into a two dimensional array using C amrutha0303 Software 0 08-03-2010 10:02 PM
How do copy Strings from a single dimensional array to double dimensional array Venkat C++ 4 12-05-2003 09:23 AM
Re: Two dimensional pointers and Two dimensional arrays Icosahedron C++ 8 08-21-2003 05:15 AM
Re: Two dimensional pointers and Two dimensional arrays John Harrison C++ 4 08-19-2003 04:00 PM
Re: Two dimensional pointers and Two dimensional arrays Alf P. Steinbach C++ 0 08-18-2003 08:25 AM



Advertisments