第6講 配列(添え字付き変数)の学習
第3話 2次元配列
を実現するプログラム例
#! ruby -Ks
x=[0]
i=0
50.times do
x[i]=2*i
i+=1
end
i=0
50.times do
if x[i]<10 then
print " ",x[i]," "
else
print x[i]," "
end
i+=1
if i%10==0 then
print "\n"
end
end
参考ダウンロード添付ファイル
今まで扱ってきた配列は、添え字が1つの配列でしたが、
添え字が複数の配列を考えることも出来ます。
x[0][0],x[0][1],x[0][2],・・・,x[0][9]
x[1][0],x[1][1],x[1][2],・・・,x[1][9]
・・・
・・・
・・・
x[9][0],x[9][1],x[9][2],・・・,x[9][9]
例えば、
を2次元配列で実現するには、
#! ruby -Ks
x=[0]
i=0
10.times do
x[i]=[[0]]
end
i=0
10.times do
j=0
10.times do
x[i][j]=10*i+j+1
j+=1
end
i+=1
end
i=0
10.times do
j=0
10.times do
if x[i][j]<10 then
print " ",x[i][j]," "
else
if x[i][j]<100 then
print " ",x[i][j]," "
else
print x[i][j]," "
end
end
j+=1
end
i+=1
print "\n"
end
参考ダウンロード添付ファイル
とします。
x=[0]
i=0
10.times do
x[i]=[[0]]
end
のようにすれば10行の配列が用意できます。
列数の方は、代入する度に自動的に増えますから、
#! ruby -Ks
x=[0]
i=0
10.times do
x[i]=[[0]]
end
i=0
10.times do
j=0
20.times do
x[i][j]=20*i+j+1
j+=1
end
i+=1
end
i=0
10.times do
j=0
20.times do
if x[i][j]<10 then
print " ",x[i][j]," "
else
if x[i][j]<100 then
print " ",x[i][j]," "
else
print x[i][j]," "
end
end
j+=1
end
i+=1
print "\n"
end
と変更すれば、
となります。
皆さんは、横列も縦列も列と呼ぶでしょうが、
数学やプログラミングの世界では、
横列を行、縦列を単に列というのだということを覚えて下さい。
行
列
x[i][j]の場合、i行j列を意味します。
ただし、添え字は0から始まりますから、
(i+1)行目(j+1)列目です。
0 | 1 | 2 | |
0 | |||
1 | |||
2 |
例えば、薄緑はx[2][1]に対応しますが、
(2+1)行目(1+1)列目になってますよね。
ですから、列
が自動的に増えるとは、
実際には横方向が増えるということになります。
横方向は自動的に増やしてくれますが、
行の数である
行数、すなわち縦方向は、プログラマーが指定しないとダメだということです。
x=[0]
i=0
10.times do
x[i]=[[0]]
end
によって、行数が10行になったわけです。
[]が2重になっているは、2次元配列であることを意味しています。
x[i]=[[0]]
はi行の0列の値を0とするという意味です。
では、2次元配列を使って
を実現しましょう。
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vba 2013 2010 2007 入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門第1部へ
本サイトトップへ