第6講 配列(添え字付き変数)の学習
第3話 2次元配列
01237
を実現するプログラム例
yir
#! 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]

例えば、
qwerq
を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
と変更すれば、
qwra
となります。
皆さんは、横列も縦列も列と呼ぶでしょうが、
数学やプログラミングの世界では、
横列を行、縦列を単に列というのだということを覚えて下さい。
       
       
       
       


       
       
       
       



x[i][j]の場合、i行j列を意味します。
ただし、添え字は0から始まりますから、
(i+1)行目(j+1)列目です。
 
     
     
     

例えば、薄緑は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次元配列を使って
rqa
を実現しましょう。
  

第2話へ 第4話へ
004


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部へ
本サイトトップへ