» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら
[公式ガイドサンプル] かけ算と割り算の結果を画面に表示する
このプログラムは、 「 VCSSLスタートアップガイド 」 の 「 式と計算、データ型 」 の回に登場するサンプルコードです。 ここでは、そのサンプルコードを実行環境ごとダウンロードして、実際に実行してみる事ができます。 プログラミングガイド的な詳しい解説については、上記ページをご参照ください。
使用方法
ダウンロードと展開(解凍)
まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。
その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。
» 展開がエラーで止まってしまう場合や、ファイル名が文字化けしてしまう場合は…
プログラムの起動
Windows をご使用の場合
上記でZIPファイルを展開したフォルダ内にある、以下のバッチファイルをダブルクリック実行してください:
もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor__プログラム編集はこちら.bat 」を実行してください。
正常に起動できると、初回のみ、Java実行環境を入手するか等を尋ねられるので、適時答えて済ませると、プログラムが起動します。 2回目以降はすぐに起動します。
Linux 等をご使用の場合
ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)
» javaコマンドが使用できない等のエラーが表示される場合は…
起動後
起動すると、黒い画面に値が表示されます:
2
これら値は、コード内(すぐ後で解説します)で println 関数のカッコ内に記述した式「 2 * 3 」と「 10 / 5 」が計算された結果の値になっています。
コード解説
このプログラムのコードはVCSSLで記述されています。 このプログラムはサンプルコードですので、 ぜひ式の内容を書きかえて、色々な値を計算してみてください。
実際に内容を書き変える際には、 プログラムのコード「 MultiplicationAndDivision.vcssl 」をテキストエディタで開いて編集してください。 VCSSLはスクリプト言語なので、コンパイラなどの別ソフトは不要で、コードを書き換えるだけでOKです。 C系の単純な文法の言語なので、C言語などに触れた事のある方なら簡単に読み書きできると思います。
それでは実際に、プログラムのコード内容を見てみましょう:
たった2行の短いコードですね。内容については、 スタートアップガイドの「式と計算」の回でも説明していますので、必要に応じて併せてご参照ください。 このコードは、その記事に登場するサンプルコードです。
println 関数
まずは、計算式を囲っている println(...) の部分についてです。これは、カッコ内の「 ... 」の所に書いた内容を画面に表示して、ついでに改行する 機能を持った関数です。 今回のように、複数の結果を表示する際などに、1行につき1つの結果を表示するのに便利です。
なお、関数名の末尾に「ln」を付けずに print(...) とすると、繰り返し呼んだ際に、改行されずに1行に続けて表示されます。println 関数は、それに自動改行機能が付いた派生版です。
print / println 関数の働きのイメージを図にすると、以下のような具合です。カッコ内に値や式を投げ込んで、それを表示してもらう、という感じですね。 数学的な関数のイメージとはちょっと違って、コンピューターに何かを依頼する窓口のようなイメージです。
かけ算(乗算)
それでは、println 関数のカッコ内に記述している、計算式の内容を見てみましょう。
まずは最初の「 2 * 3 」ですが、これは「 2 かける 3 」を行っています。その計算結果である「 6 」が、結果の最初の行に表示されたわけです。
私たちの日常では、かけ算の記号としては「 × 」がなじみ深いですが、「 × 」記号は普通のキーボード上には無いため、代わりに「 *(アスタリスク) 」記号を使います。
割り算(除算)
続いて、次の行の println 関数のカッコ内に書かれた計算式「 10 / 5 」についてです。これは「 10 割る 5 」を行っています。その計算結果である「 2 」が、結果の2行目に表示されたわけです。
私たちの日常では、割り算と言えば「 ÷ 」記号ですが、かけ算で述べたのと同じ理由で、代わりに「 /(スラッシュ) 」記号で割り算を表します。 こちらも、現代でも多くのプログラミング言語や表計算ソフトにおいて、事実上のスタンダードのようになっている記号です。
計算式で、かけ算や割り算を使う際の注意点(計算される順序)
割り算には、よく知られているように大きな注意点(落とし穴)があるのですが、それについては次回で剰余算と併せて説明するため、そちらに譲ります。
今回は、かけ算や割り算に共通する注意点について触れておきましょう。 注意点というのは、計算の順序に関するものです。
例えばまず、かけ算や割り算を使わない場合の例として、以下のような計算コードを見てみます:
上の「 1 + 2 - 3 + 4 - 5 」は、足し算や引き算のみで書かれていて、カッコでくくられてもいない計算式です。 このような場合は、計算の順序は特に深く考えず、「 単純に左から右に計算される 」と思えばOKです。
具体的には、「 まず 1 に 2 が足され、そこから 3 が引かれ、そこに 4 が足され、そこから 5 が引かれる 」といった具合です。 その答えは「 -1 」で、実際に上のコードを実行すると「 -1 」と表示されます。
では、この式を少し書きかえて、かけ算を使ってみましょう:
先ほど「 3 - 4 」であった場所が、「 3 * 4 」に変わっています。この場合は、この「 3 * 4 」の部分が、まず最初に計算されます。つまり、次のように書いたのと同じ事になります:
割り算についても同様です。つまり計算式の中では、「 足し算や引き算よりも、かけ算や割り算(剰余算も)が先に計算される 」というルールがあります。
このルールに沿わない順序で計算してほしい場合は、先に計算してほしい所をカッコで囲えばOKです。例えば「 1 + 2 * 3 」と書くと、そのままではかけ算が先に計算されますが、足し算を先に行いたければ「 (1 + 2) * 3 」と書けばOKです。 C言語や、その他多くのプログラミング言語でも同じです。
このルールは、一見すると変に思えるかもしれませんが、実は私たちの日常でも、計算の基本ルールとして存在します(後述の枠内コメント参照)。 なので、プログラミング特有のルールというわけではありません。逆に、計算の基本ルールに沿うように、多くのプログラミング言語側が合わせている、といった具合です。
ただ、そもそもこのルール自体を、大半の人が忘れているのが実情だと思います。なので逆に、プログラミングにおいても、最初の一歩でつまづきやすいポイントになってしまっています。 この点につまづくと、「 特にエラーも何も出ないのに、なぜか思っているのと違う計算結果になる 」という、プログラミング入門時にはなかなか難易度の高いバグが生まれます。 慣れるまでは気を付けましょう。
この計算ルールについて、多くの人が、「 そんなルールは初耳だ… 」と感じたかと思います。でも、実は小学校の算数で、一回習っていたりします。
なんで忘れているかというと、恐らく中学校以降の数学では、扱う内容や式の関係で、そもそも「 × 」記号や「 ÷ 」記号がめったに登場しなくなるからかもしれません。 中学以降では、係数「 a 」と「 b 」がかかっている項はもう記号を使わずに「 ab 」と書きますし、割り算の代わりに分数がメインになります。
つまり、「 具体的な数字に対して、カッコを使わずに『+』『−』『×』『÷』記号が入り混じっている式で、それらの順番に気を付けつつ計算する 」場面というのは、 多くの人にとっては小学校時代の計算ドリルくらいなので、忘れるのも無理はない事かもしれません。 ちなみに筆者も、計算ドリルは全然真面目にやらない子供だったので、恐らくプログラミングをやるまで忘れていたのではないかと思います。
ライセンス
この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次元グラフを描画します。 |