# Sample answers for Lab Exam 2 (Spring 2012) def f1() # Flag of Denmark Canvas.init(450,350,"f1") Canvas::Rectangle.new(0,0,449,349,:fill=>"red") Canvas::Rectangle.new(150,0,199,349,:fill=>"white",:outline=>"white") Canvas::Rectangle.new(0,150,449,199,:fill=>"white",:outline=>"white") end def f2(n) # Compute 2**n recursively if n == 0 then return 1 else return 2 * f2(n-1) end end def f3(numrows,numcols) # Array of random values between 2 and 7 matrix = Array.new(numrows) for i in 0..numrows-1 matrix[i] = Array.new(numcols) for j in 0..numcols-1 matrix[i][j] = 2 + rand(6) end end return matrix end def f4a(matrix) # Count the odd elements using each count = 0 matrix.each {|row| row.each{|element| count += 1 if element.odd? } } return count end def f4b(matrix) # Count the odd elements using for loops count = 0 for i in 0..matrix.length-1 do for j in 0..matrix[i].length-1 do if matrix[i][j].odd? then count = count + 1 end end end return count end