hairetu

emathパッケージにおける「配列」についての解説ページです。
 

定義されているスタイルファイル

emathC.sty

書式

\hairetusyokika#1
配列#1 を初期化します。
  • #1: 配列名
\hairetu#1#2
配列#1 の第#2番目の項目を表します。
  • #1: 配列名
  • #2: 項目番号
\edefhairetu#1#2#3
配列#1 の #2番目の項目を定義します。
  • #1: 配列名
  • #2: 項目番号
  • #3: 項目
\hairetutuika#1#2
配列#1 に項目#2 を追加します。
  • #1: 配列名
  • #2: 追加する項目
\hairetukakunin#1#2#3
項目#2 が配列#1 に存在するか否かを確認し,存在しない場合には,配列末尾に追加します。
  • #1: 配列名
  • #2: 項目
  • #3: 結果を受け取る制御綴
      存在しなかった場合戻り値は 0
      存在した場合は,その項目番号
\modhairetu#1#2#3
配列#1 の第#2番目(配列個数を超えている場合 mod をとって)の項目を #3 の制御綴に取得します。
  • #1: 配列名
  • #2: 項目番号
  • #3: 結果を受け取る制御綴
\srchhairetu#1#2#3
項目#2 が配列#1 に存在するか否かを確認します(配列への追加は行われません)。
  • #1: 配列名
  • #2: 項目
  • #3: 結果を受け取る制御綴
      存在しなかった場合戻り値は 0
      存在した場合は,その項目番号
\csvhairetu*[#1]#2#3
csv列を配列に変換します。
  • #1: 区切子を , 以外にしたいときに指定します。
  • #2: csv列
  • #3: 配列名
hairetucsv#1#2
配列を csv列に変換します。
  • #1: 配列名
  • #2: csv列を受け取る制御綴
\prhairetu#1
配列#1 の項目を列記します。
  • #1: 配列名
\hairetubaseN#1?
配列の添え字番号を
  #1=1 の場合  1,2,3,....,N(デフォルト)
とするか
  #1=0 の場合  0,1,2,....,N-1
とするかを指定します。

配列の定義(1)

配列名は,制御綴に使用できる文字で構成します。
このページでは,foo としておきます。
配列 foo のサイズ(次元)は \fooN です。
配列 foo の項目 foo[1], foo[2], foo[3], ... は
  \fooi, \fooii, \fooiii, ....
で表されます。
定義された配列foo の項目を列記するには \prhairetu{foo} とします。
hairetu01.png

配列の定義(2) -- \edefhairetu

\edefhairetu は,
  配列名,項目番号
を指定して,配列の内容(項目)を定義します。
edefhairetu01.png

配列の定義(3) -- \hairetutuika

まず \hairetusyokika を実行した後
\hairetutuika で配列を定義していく方法もあります。
hairetutuika01.png

配列項目への参照

配列の各項目を参照する方法です。
hairetu02.png

登録確認

ある項目が,配列に含まれているか否かを調べるコマンドが \hairetukakunin です。
  \hairetukakunin{配列名}{調べる項目}{結果}
調査結果は #3 の制御綴に戻されます:
  0 の場合,存在しませんでした。(この場合,配列にその項目が追加されます。)
  正整数の場合,存在しました。その項目番号が返ってきています。
hairetukakunin01.png
  • \srchhairetu コマンドは,存在確認のみを行い,追加は行いません。
    srchhairetu01.png

csv ---> 配列 -- \csvhairetu*

コンマ区切り列を配列に仕立てるのが \csvhairetu* です。
csvhairetu01.png
  • アスタリスクの付かない \csvhairetu#1#2#3 は,
    配列のサイズを受け取る制御綴 #3 を与えます。
  • 区切子は , と想定していますが,それ以外のものを使うには [区切子] を付加します。
    csvhairetu02.png

配列 ---> csv -- \hairetucsv

逆に,配列を csv列に変換するのが \hairetucsv です。
hairetucsv01.png

応用例

(1) csvhairetu で用意された文字列を正多角形の頂点に配置

正多角形の頂点に配置する文字列を csv で用意して,
それを正多角形の頂点に配置する例です。
csvhairetu03.png

(2) 乱数を発生させるときの重複チェック

乱数を用いて問題を生成する場合は,同一の問題ができることがあります。
下の例では,乱数を用いて1次式を生成していますが,
  (1)と(4)は同じ式
となっています。
hairetukakunin21.png
生成された問題を配列に記録しておき,
\hairetukakunin を用いて,乱数で生成された問題が
既出であるか否かをチェックしていけば,
同一問題を排除できます。
hairetukakunin22.png

注意事項

  1. 配列foo に関する制御綴
       \fooN, \fooi, \fooii, \fooiii, ....
    は大域変数です。

関連事項


添付ファイル: filehairetucsv01.png 321件 [詳細] filesrchhairetu01.png 297件 [詳細] filehairetutuika01.png 384件 [詳細] filehairetukakunin22.png 406件 [詳細] filehairetukakunin21.png 366件 [詳細] filehairetukakunin01.png 379件 [詳細] filehairetu02.png 335件 [詳細] filehairetu01.png 336件 [詳細] fileedefhairetu01.png 412件 [詳細] filecsvhairetu03.png 335件 [詳細] filecsvhairetu02.png 366件 [詳細] filecsvhairetu01.png 289件 [詳細] file2062201042.tex 361件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-03-17 (土) 09:36:32 (2740d)