このブログの内容が難しい方へ

もし、内容が難しくて理解出来ない場合には、Cプログラミング入門以前などのプログラミングを始める前に知っておくと良い事が書いてある本を読んでから、その後にやさしいC 第3版 [やさしいシリーズ]などのC言語というプログラミング言語の入門書を読むことをお勧めします。また、MIDIの知識がない人は、コンプリートMIDIブックなどがお勧めです。そこまで理解できれば、KSP特有の作法は、このブログを参考にすれば大丈夫だと思います。

2011年9月2日金曜日

array_equal()

では、今回からは、KSP特有の機能(コマンドとか)を解説していきます。

array_equal()は、第1引数と第2引数に配列を渡して、2つの配列の値を比較します。全ての値が等しければtrue(真)、等しくないものがあればfalse(偽)を返します。以下のコードを見てください。

on init
	declare %Array_1[10]
	declare %Array_2[20]
	if(array_equal(%Array_1, %Array_2))
		message("Array_1 = Array_2")
	end if
end on

このプログラムはエラーが出ます。なぜなら、比較対象の配列Array_1とArray_2のサイズが違うからです。比較する場合には、同じサイズである必要があります。では、次のコードを見てください。

on init
	declare %Array_1[10] := (0,1,2,3,4,5,6,7,8,9)
	declare %Array_2[10] := (0,1,2,3,4,5,6,7,8,9)
end on

on note
	if(array_equal(%Array_1, %Array_2))
		message("Array_1 = Array_2")
	end if
end on

on release
	message(" ")
end on

このプログラムでは、ノートオンで、「Array_1 = Array_2」のテキストがステータスラインに表示されます。では、さらに次のコードを見てください。

on init
	declare %Array_1[10] := (0,1,2,3,4,5,6,7,8,9)
	declare %Array_2[10] := (0,1,2,3,4,5,6,7,8,10)
end on

on note
	if(array_equal(%Array_1, %Array_2))
		message("Array_1 = Array_2")
	else
		message("Array_1 # Array_2")
	end if
end on

on release
	message(" ")
end on


このプログラムでは、ノートオンで、「Array_1 # Array_2」のテキストがステータスラインに表示されます。つまり、1つでも配列の中の値が違えば、falseが返ってくるわけです。

0 件のコメント:

コメントを投稿