Advertisement
masterslowpoke

Untitled

Jul 29th, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.11 KB | None | 0 0
  1. class Quad
  2.     def initialize(len_a, len_b, len_c, len_d)
  3.         @len_a = len_a
  4.         @len_b = len_b
  5.         @len_c = len_c
  6.         @len_d = len_d
  7.     end
  8.  
  9.     def perimeter
  10.         @len_a + @len_b + @len_c + @len_d
  11.     end
  12. end
  13.  
  14. class Rect < Quad
  15.     def initialize (len_a, len_b)
  16.         super(len_a, len_b, len_a, len_b)
  17.     end
  18.  
  19.     def area
  20.         @len_a * @len_b
  21.     end
  22. end
  23.  
  24. class Square < Rect
  25.     def initialize(len)
  26.         super(len, len)
  27.     end
  28.  
  29.     def side_len
  30.         @len_a
  31.     end
  32. end
  33.  
  34. class Trap < Quad
  35. end
  36.  
  37. class Rhomb < Trap
  38.     def initialize(len)
  39.         super(len, len, len, len)
  40.     end
  41.  
  42.     def side_len
  43.         @len_a
  44.     end
  45. end
  46.  
  47.  
  48.  
  49. def test
  50.     quad = Quad.new(5,10,49,22)
  51.     rect = Rect.new(50, 10)
  52.     squa = Square.new 10
  53.     rhomb = Rhomb.new 15
  54.     puts squa.is_a? Rect
  55.     puts squa.is_a? Quad
  56.     puts rhomb.is_a? Trap
  57.     puts rhomb.is_a? Quad
  58.     p "quad per = " + quad.perimeter.to_s
  59.     p "squa per = " + squa.perimeter.to_s
  60.     p "rhomb per = " + rhomb.perimeter.to_s
  61.     p "rect area = " + rect.area.to_s
  62.     p "squa per = " + squa.area.to_s
  63.     p "squa side_len = " + squa.side_len.to_s
  64.     p "rhomb side_len = " + rhomb.side_len.to_s
  65.  
  66. end
  67.  
  68. test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement