はじめに
日本語プログラミング言語Mindの小技「4次元配列」について説明したいと思います。
対象読者
日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方
この小技に関連するMind言語マニュアル
この小技に関連するMind言語仕様の記述はMind8プログラミングマニュアルに記載があります。
5 配列
└2次元以上の配列は構造体・型紙へ‥
10 構造体・型紙
└構造体のアクセス
└多次元配列を実現する場合
こちらの記事をご参照ください。
本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。
対応バージョン
■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版
小技の解説
この記事の取り扱う「4次元配列」は変数の多次元配列です。Mindの場合、2次元以上の配列の場合は、構造体(または型紙)の定義を使って宣言します。
1次元配列も構造体定義を使って宣言できますが、こちらは
構文=<変数名>は 要素数の 変数。
で単純に宣言できますので、特段理由がなければ上記の構文を使います。
3次元以上
構文=<構造体名>は 構造体
<変数名>は ・・・
<集合名>は 要素数1の <変数名>
<集合名2>は 要素数2の <集合名>
・・・
<集合名nー1>は 要素数nー1の <集合名nー2>
全体は
要素数nの <集合名nー1>。
「4次元配列」を引用する場合は、配列と同様にかっこ内に添え字を指定する形式となります。ただし、構造体名や集合名ではなく、基底の変数名で引用します。
3次元以上
構造体の基底変数名(添え字n,・・・添え字2,添え字1)
興味深いのは集合名で引用した場合は、下位の次元の配列となることです。
3次元以上の場合、各位集合名がn-1次元配列となる
構造体の集合名(添え字2)
構造体の集合名2(添え字3,添え字2)
構造体の集合名nー1(添え字n,・・・添え字2)
この集合名でもアクセスできる点が、同構造の下位配列を全体としてクリアしたり代入できたりと便利で、Mindの特徴となっています。
この記事でのソースコード例は変数を基底のメンバとした3次元配列、4次元配列の例となります。文字列変数を基底のメンバとして、文字列の3次元配列、4次元配列も使えますので適宜読み替えてください。
Mindプログラムソース
三次元配列の例は 構造体
三次元配列となる変数は 変数
二次元配列となる集合は 5の 三次元配列となる変数
一次元配列となる集合は 4の 二次元配列となる集合
全体は 3の 一次元配列となる集合。
四次元配列の例は 構造体
四次元配列となる変数は 変数
三次元配列となる集合名は 5の 四次元配列となる変数
二次元配列となる集合名は 4の 三次元配列となる集合名
一次元配列となる集合名は 3の 二次元配列となる集合名
全体は 2の 一次元配列となる集合名。
三次元配列を3重ループで値設定するとは (・ → ・)
添え字1は 変数
添え字2は 変数
添え字3は 変数
一次元配列となる集合の 要素数で 回数指定し
回数を 添え字3に 入れ
二次元配列となる集合の 要素数で 回数指定し
回数を 添え字2に 入れ
三次元配列となる変数の 要素数で 回数指定し
回数を 添え字1に 入れ
添え字1と 添え字2を 加えて 三次元配列となる変数(添え字3,添え字2,添え字1)に 入れ
繰り返す
繰り返す
繰り返す。
三次元配列の値を表示するとは (・ → ・)
添え字1は 変数
添え字2は 変数
添え字3は 変数
一次元配列となる集合の 要素数で 回数指定し
回数を 添え字3に 入れ
「添え字3:」を 表示し 添え字3を 数値表示し 改行し
二次元配列となる集合の 要素数で 回数指定し
回数を 添え字2に 入れ
「 添え字2:」を 表示し 添え字2を 数値表示し 改行し
三次元配列となる変数の 要素数で 回数指定し
回数を 添え字1に 入れ
「 添え字1:」を 表示し 添え字1を 数値表示し 「 」を 表示し
三次元配列となる変数(添え字3,添え字2,添え字1)を 数値表示し 改行
繰り返す
繰り返す
繰り返す。
四次元配列を三次元配列で値設定するとは (・ → ・)
添え字4は 変数
一次元配列となる集合名の 要素数で 回数指定し
回数を 添え字4に 入れ
一次元配列となる集合名(添え字4)に 三次元配列の例を 入れ
繰り返す。
四次元配列の値を表示するとは (・ → ・)
添え字1は 変数
添え字2は 変数
添え字3は 変数
添え字4は 変数
一次元配列となる集合名の 要素数で 回数指定し
回数を 添え字4に 入れ
「添え字4:」を 表示し 添え字4を 数値表示し 改行し
二次元配列となる集合名の 要素数で 回数指定し
回数を 添え字3に 入れ
「 添え字3:」を 表示し 添え字3を 数値表示し 改行し
三次元配列となる集合名の 要素数で 回数指定し
回数を 添え字2に 入れ
「 添え字2:」を 表示し 添え字2を 数値表示し 改行し
四次元配列となる変数の 要素数で 回数指定し
回数を 添え字1に 入れ
「 添え字1:」を 表示し 添え字1を 数値表示し 「 」を 表示し
四次元配列となる変数(添え字4,添え字3,添え字2,添え字1)を 数値表示し 改行し
繰り返す
繰り返す
繰り返す
繰り返す。
メインとは (・ → ・)
「三次元配列初期状態(構造体宣言時)」を 一行表示し
三次元配列の値を表示し
改行し
「四次元配列初期状態(構造体宣言時)」を 一行表示し
四次元配列の値を表示し
改行し
「三次元配列を3重ループで値設定」を 一行表示し
三次元配列を3重ループで値設定し
三次元配列の値を表示し
改行し
「四次元配列を三次元配列で値設定」を 一行表示し
四次元配列を三次元配列で値設定し
四次元配列の値を表示すること。
三次元配列と四次元配列の定義構文での注意点ですが、変数名や集合名は単体でグローバルスコープとなる点です。上記のように三次元配列と四次元配列を構造体で併記する場合、同じ変数名や集合名を定義することはできません。
このため三次元配列は「n次元配列となる集合」、四次元配列は「n次元配列となる集合名」としています。
コンパイル結果
ではコンパイルしてみます。下位ライブラリはfileを指定します。
Mind9
下図はMind9βです。
C:\developments\vscode\mind9>mind dimensions4 file
日本語プログラミング言語 Mind Version 9.03 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> dimensions4.exe
Mind8
C:\developments\vscode\mind9>mind dimensions4 file
日本語プログラミング言語 Mind Version 8.07 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> dimensions4.exe
Mind7
C:\developments\vscode\mind9>mind dimensions4 file
日本語プログラミング言語 Mind Version 7.5 for Windows
Copyright(C) 1985-2004 Scripts Lab. Inc.
Single user license. Serial No:********
コンパイル中 - 終了
Coping.. C:\mind7\bin\mindexec.exe -> dimensions4.exe
実行結果
つづいて実行してみます。
Mind8の結果です。記述は割愛していますがMind7/9βも同じです。
C:\developments\vscode\mind9>dimensions4
三次元配列初期状態(構造体宣言時)
添え字3:1
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:2
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:3
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
四次元配列初期状態(構造体宣言時)
添え字4:1
添え字3:1
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:2
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:3
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字4:2
添え字3:1
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:2
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字3:3
添え字2:1
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:2
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:3
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
添え字2:4
添え字1:1 0
添え字1:2 0
添え字1:3 0
添え字1:4 0
添え字1:5 0
三次元配列を3重ループで値設定
添え字3:1
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:2
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:3
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
四次元配列を三次元配列で値設定
添え字4:1
添え字3:1
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:2
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:3
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字4:2
添え字3:1
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:2
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
添え字3:3
添え字2:1
添え字1:1 2
添え字1:2 3
添え字1:3 4
添え字1:4 5
添え字1:5 6
添え字2:2
添え字1:1 3
添え字1:2 4
添え字1:3 5
添え字1:4 6
添え字1:5 7
添え字2:3
添え字1:1 4
添え字1:2 5
添え字1:3 6
添え字1:4 7
添え字1:5 8
添え字2:4
添え字1:1 5
添え字1:2 6
添え字1:3 7
添え字1:4 8
添え字1:5 9
C:\developments\vscode\mind9>
4次元配列の3次元以下の集合を3次元配列で値設定する場合、両者の変数、集合の要素数を揃えるようにしてください。一致しない場合は下記のようなコンパイルエラーとなります。
dimensions4.src 58 行目でエラー。行内容は、
一次元配列となる集合名(添え字4)に 三次元配列の例を 入れ
要因1:代入元と代入先のサイズが合いません。
1 個のエラーが有ります。
参考情報
この小技「4次元配列」を使った記述例は未発見です。
おわりに
いかがでしたでしょうか?なにかの参考になれば幸いです。
- ほとんどの記事ではMind7、8、そして9βでの検証を行っています。
- Mind8公式マニュアルの基礎情報をベースに、Mind7・8の上級者向け情報も網羅しています。
興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできますよ。
面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう
しい、カンタン、難しいのも書ける!みんなでやってみよう![]()