[ 前へ | 目次 | 次へ ]
Japanese English

ステップ3 - スクリプトを実行する

RINPn では、手続き的な自動計算やアルゴリズム的な計算、またはその他の複雑な処理を行いたい場合のために、 「 Vnano 」 という言語で記述したスクリプト(簡易プログラム)を実行する事もできます。

Vnano とは?

Vnano は、C言語系の文法を持つ、ソフトウェア内組み込み用のスクリプト言語&エンジンです。 具体的な書き方については、Vnano 公式サイト内の 「 言語としてのVnano 」 のページをご参照ください。 Vnano のスクリプトを作成するには、好きなエディタで拡張子「 .vnano 」で終わる名前のテキストファイルを作成し、その中にコードを書くだけでOKです。 文字コードは標準では UTF-8 で読まれます。

サンプルスクリプト

記述例として、RINPn のフォルダ直下に以下のスクリプトファイル「 Example.vnano 」が同梱されています。 このスクリプトは、cos(x) の 0 から 1 までの数値積分値を計算する内容になっています:

(Example.vnano をテキストエディタで開いた内容)

// 積分パラメータ
double A = 0.0;
double B = 1.0;
int N = 100000;

// 被積分関数
double f(double x) {
    return cos(x);
}

// 積分を実行
double delta = (B - A) / N;
double value = 0.0;
for(int i=0; i<N; ++i) {
    double x = A + i * delta;
    value += ( f(x) + f(x+delta) + 4.0 * f(x+delta/2.0) ) * delta / 6.0;
}

// 結果を出力
output(value);

上記コード内容の詳しい解説については、こちらをご参照ください: https://www.vcssl.org/ja-jp/code/archive/0001/7800-vnano-integral-output/

GUIモードでのスクリプト実行方法

GUIモードでスクリプトを実行するには、次の2通りの方法があります:

  • 方法 1: 電卓画面の「 Script 」ボタンを押し、画面上でスクリプトファイルを選んで実行します。
  • 方法 2: スクリプトファイルの名前(またはパス)を、電卓画面の「 INPUT 」欄に直接入力して、「 = 」ボタンか Enter キーを押して実行します。

どちらでも好みの方法で実行してください。

例として、上で見たサンプルスクリプト「 Example.vnano 」を実行してみましょう:

INPUT:
Example.vnano

OUTPUT:
0.8414709848

このように、「 OUTPUT 」欄にスクリプトの出力値が表示されます。 この出力値「 0.8414709848 」は、cos(x) の 0 から 1 までの積分の理論値である sin(1) とよく一致しており、 サンプルスクリプトの内容が正しく解釈・実行された事がわかります。

なお、Microsoft® Windows® をご使用の場合は、 Shiftキーを押しながらスクリプトファイルを右クリックすると、メニューからパスをコピーできるので、 RINPn の INPUT 欄にスクリプトのパスを入力する際に便利です。

CUIモードでのスクリプト実行方法

CUIモードでも、計算式の代わりにスクリプトファイルを指定する事で、そのスクリプトを実行できます。

この使い方では、RINPn の「 cmd 」フォルダのパスをOSに登録せずに使う事は現実的に考え辛いため( パス登録の利点と方法についてはこちら )、以下ではあらかじめパスは登録されていて、rinpn コマンドが使用可能である事を前提に説明します。

コマンドライン入力端末のカレントディレクトリ内にあるスクリプトファイルは、 以下のように、rinpn コマンドの引数にファイル名のみを指定して実行可能です:

cd 実行したいスクリプトファイル(Example.vnano)のある場所

rinpn Example.vnano
(結果) 0.8414709848

また、カレントディレクトリを基準とする相対パス でスクリプトファイルを指定する事もできます。 これは、カレントディレクトリ内には無いものの、 近い場所(すぐ上や下の階層など)にあるスクリプトファイルを実行したい場合に便利です:

rinpn ../Example.vnano     (上の階層にあるスクリプトを実行)
rinpn ./example/Example.vnano     (exampleフォルダ内のスクリプトを実行)

加えて、以下のように絶対パスでスクリプトファイルを指定する事も可能です:

rinpn "C:\...\Example.vnano"     (Microsoft® Windows® をご使用の場合など)
rinpn "/home/.../Example.vnano"     (Linux® をご使用の場合など)

以上の通り、CUIモードでは3通りの方法でスクリプトファイルの指定が可能です。 場面に応じて、便利に思える指定方法を使い分けてください。

最適化レベルについて:
スクリプトの実行が重い時は…

ところで、スクリプトの実行処理が重い場合は、 「 Settings.txt 」内で「 acceleratorOptimizationLevel 」として設定されている最適化レベルの値を上げると、処理が速くなります。

最適化レベルを最低の 0 に設定しても、恐らく一般的な電卓の用途としては十分な性能が得られるため、標準では安定性を優先し、最適化レベルは 0 に設定されています。 ただ、RINPN で数値計算プログラムを頻繁に実行される方には、標準の最適化レベルではややパフォーマンスが不足気味かもしれません。

コードアーカイブからスクリプトを入手しよう!

スクリプトは、もちろん自分で書くこともできますが、VCSSL/Vnano公式サイト内の、下記コードアーカイブでも配信しています:

コードアーカイブ » Vnano版のコード
https://www.vcssl.org/ja-jp/code/#vnano

コード内容の解説記事も掲載していますので、別のスクリプトを書く際の参考や、改造/流用のベースとしても使えます。ぜひご活用ください!

- 配信プログラム例 -
ローレンツ方程式を数値的に解くスクリプト

ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するスクリプトです。
積分値のグラフ描画用データを出力するスクリプト

数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するスクリプトです。
積分値を求めるスクリプト (数値積分)

矩形法/台形法/シンプソン法を用いて、積分の値を数値的に求めるスクリプトです。


スポンサーリンク



Japanese English
この階層の目次
新しいお知らせ

AIの補助により、英語版ドキュメントを大幅拡充へ - 作業の舞台裏も紹介!
2023/05/28 - RINEARNでは今後、ChatGPT等のAIの補助により、英語版ドキュメントを大幅に拡充していく方針です。既に行った英訳作業の様子なども紹介しつつ、詳しく解説します。

リニアングラフ3Dをアップデート、API関連機能などを拡充
2023/05/18 - リニアングラフ3Dのアップデート版をリリースしました。主に、Java言語やVCSSLでの制御機能などを拡充しました。更新内容をそれぞれ詳しく解説します。

関数電卓 RINPn が正式リリース版(Ver.1.0)へ移行
2022/12/31 - オープンソース&プログラム機能付きの関数電卓ソフト「RINPn」を、ベータ版から正式リリース版へと移行し、Ver.1.0.0を公開しました。概要をご説明します。

コードアーカイブ新着
[公式ガイドサンプル] 各種の図形や画像を描画する

「VCSSL 2DCG開発ガイド」内のサンプルコードです。図形や画像などを描画します。
2022/12/16
角度の「度」とラジアンとを相互変換し、図示もするツール

45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。
2022/11/22
[公式ガイドサンプル] 立体モデルを回転させるアニメーション

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
2022/11/18
[公式ガイドサンプル] 立体モデルを回転させる

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
2022/11/17
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定

「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。
2022/10/31