PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppelter Schleifendurchlauf



Flummi
07-07-2006, 13:08
Hallo,

zu Übungszwecken versuche ich gerade eine Klasse Matrix in Ruby 1.8.4 zu implementieren, doch irgendwie haut das mit dem Befüllen und Ausgeben nicht so ganz hin. Ich sehe aber leider den Fehler nicht. Könnte bitte jemand so nett sein, und mir helfen? Was mache ich falsch?



#!/usr/bin/env ruby
class Matrix
attr_reader :x, :y, :squarely, :array
def initialize(x, y)
@x = x
@y = y
if x == y
@squarely = true
else
@squarely = false
end

@array = Array.new(y, Array.new(x))
end

# Puts values into the matrix
def feed
(0...@y).each { |j|
(0...@x).each { |i|
print "Elemenet " + (j+1).to_s + "," + (i+1).to_s + ": "
@array[j][i] = gets.chomp.to_i
}
}

end

# Returns matrix as proper formatet string
def to_s
string = String.new
(0...@y).each { |j|
(0...@x).each { |i|
string = string + @array[j][i].to_s + "\t"
}
string = string + "\n"
}
return string
end
end

## Anwendung
print "Breite: "
x = gets.chomp.to_i
print "Höhe: "
y = gets.chomp.to_i

matrix = Matrix.new(x, y)

matrix.feed

puts matrix.to_s

puts "Die Matrix ist quadratisch: " + matrix.squarely.to_s


Danke für eure Hilfe,
Flummi.