学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Ruby | 19 | 二次元配列

↓↓クリックして頂けると励みになります。



18 | グラフ】 << 【ホーム】 >> 【20 | 表


二次元配列
二次元配列


Rubyの二次元配列は、要素が配列である配列のことです。
つまり、配列の要素が他の配列である配列です。
これにより、表や行列などの構造を表現することができます。
二次元配列は行と列の両方を持つデータ構造を表現するのに便利です。



Visual Studio Codeで以下のプログラムを作ってみましょう。


新規作成 【hairetsu5.rb】

# hairetsu5.rb

class Hairetsu5

	data = [ [ 'a1', 'a2', 'a3' ],[ 'b1', 'b2', 'b3' ],[ 'c1', 'c2', 'c3' ],[ 'd1', 'd2', 'd3' ] ]

	for i in 0..(data.length-1) do
		for j in 0..(data[0].length-1)
			print (data[i][j]).to_s + ','
		end
		puts ''
	end

	puts ''

	for j in 0..(data[0].length-1) do
		for i in 0..(data.length-1) do
			print (data[i][j]).to_s + ','
		end
		puts ''
	end
end



今回のプログラムを見てください。
配列データはこのようになっています。

data = [ [ 'a1', 'a2', 'a3' ],[ 'b1', 'b2', 'b3' ],[ 'c1', 'c2', 'c3' ],[ 'd1', 'd2', 'd3' ] ]

今までの配列は、data[0]data[3]などと表していました。
二次元配列は、data[0][3]data[1][5]などと表します。


では、実際にどのように格納場所を表せばよいかを見てみましょう。

data[0][0] はa1を表しています。
data[0][2]は a3を表します。
data[2][2]は c2です。

data = [[ data[0][0], data[0][1], data[0][2] ], [ data[1][0], data[1][1], data[1][2] ], [ data[2][0], data[2][1], data[2][2] ], [ data[3][0], data[3][1], data[3][2] ]]

出力結果を見てみましょう。

~/Desktop/Programming/RB $ ruby hairetsu5.rb 

a1,a2,a3,
b1,b2,b3,
c1,c2,c3,
d1,d2,d3,

a1,b1,c1,d1,
a2,b2,c2,d2,
a3,b3,c3,d3,



18 | グラフ】 << 【ホーム】 >> 【20 | 表




↓↓クリックして頂けると励みになります。