[ 前へ | 目次 | 次へ ]
Now Loading...
ダウンロード
PC (※スマートフォンでは動きません) でダウンロードし、ZIPファイルを右クリックメニューから展開して、できたフォルダ内の「 VCSSL.bat(バッチファイル) 」をダブルクリックすると起動します。 Linux等では「 VCSSL.jar 」をコマンド実行してください。
» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら

[公式ガイドサンプル] 引き算の結果を画面に表示する

このプログラムは、 「 VCSSLスタートアップガイド 」 の 「 式と計算、データ型 」 の回に登場するサンプルコードです。 ここでは、そのサンプルコードを実行環境ごとダウンロードして、実際に実行してみる事ができます。 プログラミングガイド的な詳しい解説については、上記ページをご参照ください。

使用方法

ダウンロードと展開(解凍)

まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。

Microsoft® Windows® をご使用の方は、ここでまずZIPファイルを右クリックし、「プロパティ」を選んで開かれる画面で、 下の方にあるセキュリティ項目の「許可する」にチェックを入れて「OK」で閉じてください。 これを行わないと、ZIP展開やソフト起動時に、警告メッセージが出て展開完了/起動できない場合があります。

その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。

※ Linux 等でも右クリックメニューから展開できますが、ファイル名が文字化けする場合、コマンド端末でZIPファイルのある場所まで cd した上で「 unzip -O cp932 ZIPファイル名 」で展開してみてください。

プログラムの起動

Microsoft® Windows® をご使用の場合

上記の通りにZIPファイルを展開したフォルダ内にある、 「 VCSSL.bat(種類はバッチファイル) 」をダブルクリック実行してください。 もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor.bat 」を実行してください。

※ もし、ここでセキュリティ警告メッセージが出て起動できない場合は、 ダウンロードと展開 の項目に書かれている手順通りに、ZIPファイルの展開をやり直してみてください。

正常に起動できると、最初にメモリー使用量や、(必要な場合のみ)Java®実行環境を自動で入手するか 等を尋ねられるので、適時答えると、プログラムが起動します。2回目以降はすぐに起動します。

※ ここで入手したJava®実行環境は、ZIPファイルを展開した中の「 jre 」フォルダ内にダウンロードされ、このプログラムの実行のみに使用されます。PC全体に影響する形でインストールされる事はありません。

Linux 等やその他のOSをご使用の場合

ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:

java -jar VCSSL.jar
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)

» javaコマンドが使用できない等のエラーが表示される場合は…

起動後

起動すると、黒い画面に値が表示されます:

-55545

この値は、コード内(すぐ後で解説します)で print 関数のカッコ内に記述した式「 12345 - 67890 」が計算された結果の値になっています。

コード解説

このプログラムのコードはVCSSLで記述されています。 このプログラムはサンプルコードですので、 ぜひ式の内容を書きかえて、色々な値を計算してみてください。

実際に内容を書き変える際には、 プログラムのコード「 Subtraction.vcssl 」をテキストエディタで開いて編集してください。 VCSSLはスクリプト言語なので、コンパイラなどの別ソフトは不要で、コードを書き換えるだけでOKです。 C系の単純な文法の言語なので、C言語などに触れた事のある方なら簡単に読み書きできると思います。

それでは実際に、プログラムのコード内容を見てみましょう:

たった1行の短いコードですね。内容については、前々回のコードとほぼ同じですので、まずはぞちらをご参照ください。 ( スタートアップガイドの「式と計算」の回でも説明しています。このコードは、その記事に登場するサンプルコードです。)

前々回のコード解説を要約すると:

  • print ( 〜 ) の箇所は、カッコ内の内容を画面に表示する機能を持つ
  • プログラム内に式を書くと、その値が計算される

これら2つの組み合わせで、print ( 〜 ) のカッコ内に書いた計算式の値が、計算されて画面に表示されたわけです。 前々回は足し算:

を行いましたが、今回は引き算になっていて、違う点はそこだけです。

余談(雑談)

以上で今回のコード内容の解説は終わりなのですが、さすがにそれだと解説記事としてあまりに短すぎる気もします。 ただ、コードがコードなだけに、これ以上説明すべきポイントもあまり見当たりません。 そこで、少し余談をする事にしましょう。 本当に思いつくままの適当な雑談の走り書きで、まとまりもなくグダグダと長いので、お暇でない方は読み飛ばしてください。

さて、上でも触れた通り、今回のコードは足し算を引き算に書きかえただけです。コンピューターにとってはそんなもの、どちらであろうと造作もなく計算してくれますね。 しかし筆者は、小学校の頃、足し算よりも引き算の方がだいぶ苦手でした。何を隠そう、筆者は小学校のテストで「0点」というのをとった事があり、それが1年生の算数の、引き算のテストだったのです。

テスト結果をランドセルに隠して親には報告しないでいたら、後で発見されてかなりガチな説教をされたのを覚えています。 さすがに1桁の引き算で0点をとるのは、授業中に遊んでいて全然話を聞いていないのではないかと。もっと真剣に先生の話を聞きなさい、そうじゃないとこの先の授業に全然ついていけなくなるぞと。 まあ親としては当然そういう危惧は持つでしょうね。 しかし言い訳をさせてもらうと、授業はかなり真面目に聞いていたんですよ。 筆者は筆者なりに、授業を聞きながら、引き算ってなんか難しいなあ、と感じていたのをよく覚えています。

小学校での、足し算の登場時の説明は、物(恐らくリンゴだかミカンだか、とにかく何かの物)が数個あって、そこに何個か追加されて、あわせて何個でしょう、みたいな具合でした。 そして引き算の登場時の説明は、逆に何個か引っこ抜かれて、残ったのは何個でしょう、といった具合です。

そして後者のように「 何個かのものをイメージして、そこから何個か引っこ抜いた状態をイメージして、その個数を数える 」といった操作が、どうも筆者にとってはなかなか難しかったようです。 実際に友達に、「 足し算と比べて、引き算ってイメージするのが難しくない? 」と話をふったのを覚えています。 でもその友達は、「 足すよりも引くほうが、個数が減るので数えやすくて、簡単に感じるけどなあ 」といった返答でした。 どうも個人差があるようですね。筆者は「 引いて数える 」というイメージが特に苦手だったようです。

じゃあどうしたかというと、真面目に引き算のイメージを鍛える代わりに、足し算を使って引き算を逆算する方法に走りました。 つまり「 8 - 3 = 〇 」の計算なら、「 3 に対して色々な数を足していって、ちょうど 5 を足した場合に 8 になるので、答えは 5 だ 」といった具合です。 まどろっこしい方法ですが、それでも引き算の手順をイメージする事よりは、そちらの方が筆者にとっては現実的だったのです。

で、そんな裏技を練習しているうちに、恐らく何か混乱してしまって、「 引き算とは要するに足し算なのでは? 」といった謎の考えに至り、 引き算のテストでぜんぶ足し算の答えを書いてしまったのです。その結果の見事な 0 点でした。

と、そんな紆余曲折がありつつも、筆者はその後どうにか引き算も普通にできるようなり、大人になって、 やがてコンピューターの仕組みなどに興味を持つようになりました。 そうなると、「 コンピューターが一体どうやって足し算や引き算を行っているのか? 」といった点もやはり気になって、調べたりしていました。

これはとても面白いので、興味のある方はぜひ調べてみてください。 一般のコンピューターは、数を 1 と 0 の列で(2進数として)表現して扱うのですが、 それにより、足し算を行う回路は驚くほど簡単に実現できます。 具体的には「 加算器 」と呼ばれる回路です。

では引き算は、というと、実はちょっと工夫すれば、加算器を使って引き算もできてしまいます。 具体的な方法は以下の通りです。

まず、引きたい数(2進数表現)に対して、「 2の補数 」という関係になる値を求めます。 名前は難しそうですが、ちょっとした操作で(人間的にも電子回路的にも)非常に簡単に求められます。 そして、その値を加算器を使って足してやれば、なんと元の値を引いた事になるのです(結果の値によっては、その後に少し操作が必要なパターンもあります)。 理由を直感的に例えるなら、「マイナスの数を足せば引き算になる」イメージです。

以上のように、コンピューターにとっては、引き算は工夫すれば加算器で行えます。 加算器に補数変換処理を組み合わせれば、引き算をする専用回路として“減算器”を作れますが、土台の原理はやはり足し算なわけです。

筆者はこの事を知った時に、冒頭の小学校時代の事を思い出して、なんだかコンピューターに親近感を覚えました。 「 あれはあれで意外といい線いってたのでは? なんかコンピューター的な独特のセンスみたいなのがあったのでは? 」といった具合にです。 まあ、さすがに0点をとって何言ってんだって感じですが。

記事の著者

松井 文宏 - Fumihiro Matsui
[ RINEARN代表、応用情報技術者、博士(理学) ]
VCSSL & Vnano やリニアングラフ、RINPn などを開発しています。 ご意見/ご感想/ご質問などは お問合せページ個人Twitter(雑談歓迎) などへ御気軽にお寄せください。

ライセンス

このVCSSL/Vnanoコード( 拡張子が「.vcssl」や「.vnano」のファイル )は実質的な著作権フリー(パブリックドメイン) である CC0 の状態で公開しています。 記事中にC言語/C++/Java言語などでのサンプルコードが掲載されいてる場合は、それらについても同様です。 そのままでのご利用はもちろん、改造や流用などもご自由に行ってください。

※ ただし、このコードの配布フォルダ内には、ダウンロード後すぐに実行できるように、 VCSSLの実行環境も同梱されており、そのライセンス文書は「 License 」フォルダ内に同梱されています (要約すると、商用・非商用問わず自由に使用できますが、使用の結果に対して開発元は一切の責任を負いません、といった具合の内容です)。 配布フォルダ内の各構成物の一覧やライセンスについては「 ReadMe_使用方法_必ずお読みください.txt 」をご参照ください。

※ Vnano の実行環境については、別途スクリプトエンジンのソースコードも一般公開しており、 何らかのソフトウェア内に組み込んでご利用いただく事も可能です。詳細はこちらをご参照ください。

この記事中の商標などについて

  • OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
  • Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。この記事は独立著作物であり、Microsoft Corporation と関連のある、もしくはスポンサーを受けるものではありません。
  • Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
  • その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。


スポンサーリンク



[ 前へ | 目次 | 次へ ]
[公式ガイドサンプル] 引き算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。引き算を行って、結果を画面に表示します。
[公式ガイドサンプル] 式を複数行にわたって書く

「VCSSLスタートアップガイド」内のサンプルコードです。足し算を行う式を、複数行にわたって記述します。
[公式ガイドサンプル] 足し算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。足し算の結果を求めて、画面に表示します。
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(魔法陣形)

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、魔法陣のような3次元曲面のグラフを描画します。
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(花形)

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、花の形の3次元曲面のグラフを描画します。
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで3次元のメッシュグラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、3次元のメッシュグラフを描画します。
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで3次元の線グラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、3次元の線グラフを描画します。
[公式ガイドサンプル] CSVファイルに書かれた数値データを、配列として読み込んで表示する

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルに記載された数値データを、読み込んで配列に格納してから、内容を画面に表示します
[公式ガイドサンプル] CSVファイルにデータを丸めて書き出し、読み込んで2次元グラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを、丸め処理を行った上で書き出し、さらにそれを読み込んで、2次元グラフを描画します。
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで2次元グラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、2次元グラフを描画します。
[公式ガイドサンプル] CSVファイルを読み込んで2次元グラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルに記載されたデータを読み込み、2次元グラフを描画します。
この階層の目次
[ 前へ | 目次 | 次へ ]
お知らせ

Vnanoがオープンベータ版に移行、VCSSLの実行環境で標準で実行可能に
2021年04月07日 - ソフト内組み込み用スクリプトエンジン&言語「 Vnano 」がオープンベータ版に移行し、併せて、VCSSLの実行環境でもVnanoコードの実行が可能になりました。詳細をお知らせします。

リニアングラフの最新版をリリース、2D版でも描画エンジンの直接操作が可能に
2021年04月03日 - リニアングラフ2D/3Dの最新版をリリースしました。それぞれのアップデート内容をお知らせします。今回から、2D版でもJava言語APIによる描画エンジンの直接操作が可能になりました。

RINPn のオープンベータ版をリリース! 詳細な公式ガイドも同梱&公開
2021年03月08日 - 2019年より開発進行中のプログラム関数電卓「 RINPn(りんぷん)」が、正式リリースに向けた最終準備段階として、オープンベータ版へと移行しました。その詳細をお知らせします。

新着
[公式ガイドサンプル] 引き算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。引き算を行って、結果を画面に表示します。
2021年07月08日
[公式ガイドサンプル] 式を複数行にわたって書く

「VCSSLスタートアップガイド」内のサンプルコードです。足し算を行う式を、複数行にわたって記述します。
2021年07月07日
[公式ガイドサンプル] 足し算の結果を画面に表示する

「VCSSLスタートアップガイド」内のサンプルコードです。足し算の結果を求めて、画面に表示します。
2021年07月06日
Vnano版 | ローレンツ方程式を数値的に解くプログラム

ローレンツ方程式を4次ルンゲ=クッタ法によって解き、グラフ描画用のデータを出力するプログラムです。
2021年02月12日
Vnano版 | 積分値のグラフ描画用データを出力するプログラム

数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するコードです。
2020年12月20日
開発元Twitterアカウント