&size(24){''hairetu''};
 emathパッケージにおける「配列」についての解説ページです。
#contents
#br

*定義されているスタイルファイル [#w868559d]
emathC.sty

*書式 [#m3dd5fe6]
:[[\hairetusyokika>#hairetutuika]]#1| 配列#1 を初期化します。
:[[\hairetusyokika#1>#hairetutuika]]| 配列#1 を初期化します。
--#1: 配列名

:[[\hairetu#1#2>#hairetu]]| 配列#1 の第#2番目の項目を表します。
--#1: 配列名
--#2: 項目番号

:[[\edefhairetu#1#2#3>#edefhairetu]]| 配列#1 の #2番目の項目を定義します。
--#1: 配列名
--#2: 項目番号
--#3: 項目

:[[\hairetutuika#1#2>#hairetutuika]]|配列#1 に項目#2 を追加します。
--#1: 配列名
--#2: 追加する項目

:[[\hairetukakunin#1#2#3>#hairetukakunin]]| 項目#2 が配列#1 に存在するか否かを確認し,存在しない場合には,配列末尾に追加します。
--#1: 配列名
--#2: 項目
--#3: 結果を受け取る制御綴~
  存在しなかった場合戻り値は 0~
  存在した場合は,その項目番号

:[[\modhairetu#1#2#3>#modhairetu]]| 配列#1 の第#2番目(配列個数を超えている場合 mod をとって)の項目を #3 の制御綴に取得します。
--#1: 配列名
--#2: 項目番号
--#3: 結果を受け取る制御綴

:[[\srchhairetu#1#2#3>#hairetukakunin]]| 項目#2 が配列#1 に存在するか否かを確認します(配列への追加は行われません)。
--#1: 配列名
--#2: 項目
--#3: 結果を受け取る制御綴~
  存在しなかった場合戻り値は 0~
  存在した場合は,その項目番号
:[[\csvhairetu*[#1]#2#3>#csvhairetu]]| csv列を配列に変換します。
--#1: 区切子を , 以外にしたいときに指定します。
--#2: csv列
--#3: 配列名
:[[hairetucsv#1#2>#hairetucsv]]| 配列を csv列に変換します。
--#1: 配列名
--#2: csv列を受け取る制御綴
:[[\prhairetu#1>#teigi]]| 配列#1 の項目を列記します。
--#1: 配列名
:[[\hairetubaseN#1>hairetubaseN]]| 配列の添え字番号を~
  #1=1 の場合  1,2,3,....,N(デフォルト)~
とするか~
  #1=0 の場合  0,1,2,....,N-1~
とするかを指定します。

*例 [#p04af253]
**配列の定義(1) [#teigi]
 配列名は,制御綴に使用できる文字で構成します。
 このページでは,foo としておきます。
 配列 foo のサイズ(次元)は \fooN です。
 配列 foo の項目 foo[1], foo[2], foo[3], ... は
   \fooi, \fooii, \fooiii, ....
 で表されます。
 定義された配列foo の項目を列記するには \prhairetu{foo} とします。
#ref(hairetu01.png)
**配列の定義(2) -- \edefhairetu [#edefhairetu]
 \edefhairetu は,
   配列名,項目番号
 を指定して,配列の内容(項目)を定義します。
#ref(edefhairetu01.png)
**配列の定義(3) -- \hairetutuika [#hairetutuika]
 まず \hairetusyokika を実行した後
 \hairetutuika で配列を定義していく方法もあります。
#ref(hairetutuika01.png)
**配列項目への参照 [#hairetu]
 配列の各項目を参照する方法です。
#ref(hairetu02.png)
**登録確認 [#hairetukakunin]
 ある項目が,配列に含まれているか否かを調べるコマンドが \hairetukakunin です。
   \hairetukakunin{配列名}{調べる項目}{結果}
 調査結果は #3 の制御綴に戻されます:
   0 の場合,存在しませんでした。(この場合,配列にその項目が追加されます。)
   正整数の場合,存在しました。その項目番号が返ってきています。
#ref(hairetukakunin01.png)
-\srchhairetu コマンドは,存在確認のみを行い,追加は行いません。
#ref(srchhairetu01.png)
**csv ---> 配列 -- \csvhairetu*  [#csvhairetu] 
 コンマ区切り列を配列に仕立てるのが \csvhairetu* です。
#ref(csvhairetu01.png)
-アスタリスクの付かない \csvhairetu#1#2#3 は,~
配列のサイズを受け取る制御綴 #3 を与えます。
-区切子は , と想定していますが,それ以外のものを使うには [区切子] を付加します。
#ref(csvhairetu02.png)
**配列 ---> csv -- \hairetucsv  [#hairetucsv]
 逆に,配列を csv列に変換するのが \hairetucsv です。
#ref(hairetucsv01.png) 
**応用例 [#kisyutukakunin]
***(1) csvhairetu で用意された文字列を正多角形の頂点に配置 [#e0e2ceff]
 正多角形の頂点に配置する文字列を csv で用意して,
 それを正多角形の頂点に配置する例です。
#ref(csvhairetu03.png)
#ref(2062201042.tex,center)
***(2) 乱数を発生させるときの重複チェック [#z52e88d9]
 乱数を用いて問題を生成する場合は,同一の問題ができることがあります。
 下の例では,乱数を用いて1次式を生成していますが,
   (1)と(4)は同じ式
 となっています。
#ref(hairetukakunin21.png)
 生成された問題を配列に記録しておき,
 \hairetukakunin を用いて,乱数で生成された問題が
 既出であるか否かをチェックしていけば,
 同一問題を排除できます。
#ref(hairetukakunin22.png)
*注意事項 [#bda9c0fe]
+配列foo に関する制御綴~
   \fooN, \fooi, \fooii, \fooiii, ....~
は大域変数です。
*関連事項 [#q08e2687]
-[[二次元配列>iihairetu]]
-[[多次元配列>Hairetu]]
RIGHT:&counter;

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS