2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語Mindの小技 「数値の定数配列」~整数または小数定数の配列~

Posted at

はじめに

日本語プログラミング言語Mindの小技「数値の定数配列」について説明したいと思います。

対象読者

日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方

この小技に関連するMind言語マニュアル

この小技に関連するMind言語仕様の記述はMind8プログラミングマニュアルに記載があります。
5 配列
└定数配列
 └数値の定数配列

初期値を持った配列を定義できる。データ型によって「定数配列」、「文字列定数配列」などがある。

構文=
<配列名>は 定数配列      ←整数値の配列
    <数値> <数値> ・・・・・
    <数値> <数値> ・・・・・
    ・・・・・・・・・・・・・・・。

<配列名>は 小数定数配列    ←小数値の配列
    <小数値> <小数値> ・・・・・
    <小数値> <小数値> ・・・・・
    ・・・・・・・・・・・・・・・。

 上記では数値を縦横に並べているが、あくまでソースコード上の配置であり、どう書いても結果的には1次元配列として生成される。
 各数値は整数(定数配列)あるいは小数(小数定数配列)として評価される。なお、コード生成を節約するために、「バイト定数配列」「ワード定数配列」というバリエーションもある(16ビット整数、8ビット整数版である)。

本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。

Mind7は小数、倍精度変数の定数配列に対応していません。

対応バージョン

■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版

小技の解説

Mindの小技「数値の定数配列」は、Mindの定数による配列機能の中で、数値系の変数型の定数の配列です。文字列系の変数型の定数配列も別にありますが、それは本記事では扱いません。

配列は、同じ型のデータを連続して格納するデータ構造です。各データは「要素」と呼ばれ、インデックス(添字)を使って識別されます。この点は他のプログラミング言語と同じですが、インデックスの初期値は1から開始となる点は注意事項です。

下記の変数型についてそれぞれ記述してみます。
変数(32ビット整数)
倍精度変数(64ビット整数)
小数(64ビット浮動小数点小数)
ワード変数(16ビット整数)
バイト変数(8ビット整数)

Mindプログラムソース

constantarray.src
定数配列32bitは 定数配列
1
2
3。

定数配列64bitは 倍精度定数配列
1
2
3。

定数配列64bit浮動小数は 小数定数配列
1.1
2.2
3.3。

定数配列16bitは ワード定数配列
1
2
3。

定数配列8bitは バイト定数配列
1
2
3。

メインとは (・ → ・)
「定数配列32bit」を 一行表示し
定数配列32bitの 要素数で 回数指定し
    定数配列32bit(回数)を ダブル表示し 改行し
繰り返す

「定数配列64bit」を 一行表示し
定数配列64bitの 要素数で 回数指定し
    定数配列64bit(回数)を $$クアド表示し 改行し
繰り返す

「定数配列64bit浮動小数」を 一行表示し
定数配列64bit浮動小数の 要素数で 回数指定し
    定数配列64bit浮動小数(回数)を $$クアド表示し 改行し
繰り返す

「定数配列16bit」を 一行表示し
定数配列16bitの 要素数で 回数指定し
    定数配列16bit(回数)を ワード表示し 改行し
繰り返す

「定数配列8bit」を 一行表示し
定数配列8bitの 要素数で 回数指定し
    定数配列8bit(回数)を バイト表示し 改行し
繰り返す。

それぞれの型の定数配列を宣言して、メインではそれらの要素数を使って回数指定ループを構成し、各要素のインデックスをMindの回数指定構文の「回数」(1から開始)で指定して表示しています。

表示方法はそれぞれの型サイズに応じた表示方法をとっています。

コンパイル結果

ではコンパイルしてみます。下位ライブラリはfileを指定します。

Mind9

下図はMind9βです。

C:\developments\vscode\mind9>mind constantarray file   

日本語プログラミング言語 Mind Version 8.11 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> constantarray.exe

Mind8

C:\developments\vscode\mind9>mind constantarray file

日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> constantarray.exe

Mind7

C:\developments\vscode\mind9>mind constantarray file
日本語プログラミング言語 Mind Version 7.5 for Windows
          Copyright(C) 1985-2004 Scripts Lab. Inc.
          Single user license.  Serial No:********
コンパイル中 -
コンパイルエラー:小数値は使えません。
  モジュール名:constantarray.src(通算 12 行目)。
  行内容   :1.1
  
コンパイル中 - 終了
1 個のエラーが有ります。

constantarray.src 6 行目でエラー。行内容は、
定数配列64bitは 倍精度定数配列
      要因1:"倍精度定数配列"は未定義の単語です。

Mind7は小数を検知してコンパイルが中断しました。このブロックをコメントアウトした結果がコンパイル終了で1件エラーとなった状態です。

実行結果

つづいて実行してみます。

Mind8/9β

Mind8の結果です。記述は割愛していますがMind9βも同じです。

c:\developments\vscode\mind9>constantarray            
定数配列32bit
00000001
00000002
00000003
定数配列64bit
00000000|00000001
00000000|00000002
00000000|00000003
定数配列64bit浮動小数
3FF19999|9999999A
40019999|9999999A
400A6666|66666666
定数配列16bit
0001
0002
0003
定数配列8bit
01
02
03

c:\developments\vscode\mind9>

64ビット倍精度整数と64ビット浮動小数点小数とでは、同じ64ビットでも各ビットの使われ方が異なることがわかります。

参考情報

この小技「数値の定数配列」を使った記述例の記事は下記が該当します。

おわりに

いかがでしたでしょうか?なにかの参考になれば幸いです。2025年は日本語プログラミング言語Mind生誕40周年です。

本記事シリーズのご紹介

本記事シリーズ「日本語プログラミング言語Mindの小技」は「日本語プログラミング言語Mind生誕40周年プロジェクト」の一環です。

興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできます。

面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう:relaxed:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?