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

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

ここでは、RINPn の特徴的な機能の一つである、スクリプトの実行を行ってみましょう!

スポンサーリンク


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
この階層の目次
新しいお知らせ

リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 - リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました! 併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。

Exevalator 2.2 をリリース、TypeScript 対応によりWebブラウザ上で動作可能に
2024-10-22 - オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。新たに TypeScript に対応し、Webブラウザ上での式計算にも使えるようになりました。詳細を解説します。

アシスタントAI作成の舞台裏(その2、作成編)
2024-10-12 - アシスタントAIの作成方法解説の後編です。実際にChatGPTの「GPTs」機能を用いて、アシスタントAIを作成する手順や、独自の知識をもたせたり、精度を出すためのノウハウなどを解説しています。

アシスタントAI作成の舞台裏(その1、基礎知識編)
2024-10-07 - アシスタントAI作成方法解説の前編です。今回はまず、アシスタントAIを作る前に抑えておきたい、基礎知識を延々と解説しています。そもそもLLM型AIとはどんな存在か? RAGとは何か? 等々です。

ソフトの利用をサポートしてくれるアシスタントAIを提供開始!
2024-09-20 - RINEARN製ソフトの使い方の質問応答や、一部作業のお手伝いをしてくれる、アシスタントAIを提供開始しました。ChatGPTアカウントさえあれば、誰でも無料で使用できます。使い方を解説します。

Exevalator 2.1 をリリース、新たに Visual Basic に対応
2024-07-28 - オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。今回から、新たに Visual Basic(VB.NET)でも使用できるようになりました。詳細を解説します。

関数電卓 RINPn(りんぷん)、Esc キーで計算式の一発クリアが可能に
2024-07-20 - 関数電 RINPn の Ver.1.0.2 をリリースしました。今回から、キーボードの「 Esc 」キーを押すと、入力中の計算式を一発でクリアできるようになりました。詳細を解説します。

Exevalator 2.0 をリリース、互換性に注意が必要なバグ修正が 1 件
2024-07-14 - オープンソースの式計算ライブラリ「Exevalator (エグゼバレータ)」の2.0をリリースしました。今回の更新では、互換性に注意を要する 1 件のバグ修正があります。詳細を解説します。

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024-02-05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024-01-17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。