» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら
[公式ガイドサンプル] 引き算の結果を画面に表示する
このプログラムは、 「 VCSSLスタートアップガイド 」 の 「 式と計算、データ型 」 の回に登場するサンプルコードです。 ここでは、そのサンプルコードを実行環境ごとダウンロードして、実際に実行してみる事ができます。 プログラミングガイド的な詳しい解説については、上記ページをご参照ください。
使用方法
ダウンロードと展開(解凍)
まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。
その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。
» 展開がエラーで止まってしまう場合や、ファイル名が文字化けしてしまう場合は…
プログラムの起動
Windows をご使用の場合
上記でZIPファイルを展開したフォルダ内にある、以下のバッチファイルをダブルクリック実行してください:
もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor__プログラム編集はこちら.bat 」を実行してください。
正常に起動できると、初回のみ、Java実行環境を入手するか等を尋ねられるので、適時答えて済ませると、プログラムが起動します。 2回目以降はすぐに起動します。
Linux 等をご使用の場合
ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)
» javaコマンドが使用できない等のエラーが表示される場合は…
起動後
起動すると、黒い画面に値が表示されます:
この値は、コード内(すぐ後で解説します)で 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点をとって何言ってんだって感じですが。
ライセンス
この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スタートアップガイド」内のサンプルコードです。かけ算と割り算を行って、結果を画面に表示します。 |
[公式ガイドサンプル] 引き算の結果を画面に表示する |
|
|
「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次元グラフを描画します。 |