第7講 繰り返し処理・if文・配列を総動員して3次魔方陣を自動生成する!
第4話 3の順列の生成
を実現するプログラム例
#! ruby -Ks
print "3の順列の生成\n"
a=[0]
for i in 1..3
a[0]=i
for j in 1..3
if j!=a[0] then
a[1]=j
for k in 1..3
if k!=a[0] && k!=a[1] then
a[2]=k
for l in 0..2
print a[l]," "
end
print "\n"
end
end
end
end
end
参考ダウンロード添付ファイル
if k!=a[0] && k!=a[1] then
a[2]=k
for l in 0..2
print a[l]," "
end
print "\n"
end
の部分は、繰り返し処理ですから、
for文に出来ます。
#! ruby -Ks
print "3の順列の生成\n"
a=[0]
for i in 1..3
a[0]=i
for j in 1..3
if j!=a[0] then
a[1]=j
for k in 1..3
h=1
for l in 0..1
if k==a[l] then
h=0
break
end
end
if h==1 then
a[2]=k
for l in 0..2
print a[l]," "
end
print "\n"
end
end
end
end
end
参考ダウンロード添付ファイル
次に、4の順列に進みたいところですが、
ネスト(段)が深くなりすぎて、
プログラムコードが複雑になりすぎていますので、
メソッド=社員をつかって、コードを簡単にしておきます。
仕事を
a[0]に入力
a[1]に入力
a[2]に入力
画面に表示
に分割しておいて、それぞれの仕事を
a[0]に入力 ・・・f1
a[1]に入力 ・・・f2
a[2]に入力 ・・・f3
画面に表示・・・g
に割り振ります。
#! ruby -Ks
print "3の順列の生成\n"
a=[0]
def f1(a,i)
a[0]=i
end
def f2(a,i)
・・・・・
・・・・・
・・・・・
end
def f3(a,i)
・・・・・
・・・・・
・・・・・
end
def g(a)
・・・・・
・・・・・
・・・・・
end
for i in 1..3
f1(a,i)
for j in 1..3
h1=f2(a,j)
if h1==1 then
for k in 1..3
h2=f3(a,k)
if h2==1 then
g(a)
end
end
end
end
end
では、皆さん
・・・・・
・・・・・
・・・・・
の部分を考えてコードを完成させて下さい。
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部へ
本サイトトップへ