AOYAMA Koji's PROGRAMMING BLOG

コンピューターは計算が得意だけどかけ算とわり算のプログラムはちょっと違う?

2020/04/05
プログラミングブログ / プログラミング基礎 / (本記事)

 コンピューターは英語でcomputerと書きますが、computerを日本語に訳すと計算機なんですね。 というわけで今回はプログラムで計算をさせてみましょう。 その名の通りコンピューターが最も得意とするところと言えると思います。

スマートフォンもタブレットもゲーム機もコンピューター


 いきなりコンピューターなんて用語を出してしまいましたが、 スマートフォンがコンピューターの一種というのはご存知でしょうか。 パソコンも、パーソナルコンピューターの略ですのでコンピューターの一種です。 実はニンテンドースイッチとかプレイステーションなどのゲーム機もコンピューターなんですよね。
 ただしこれを計算機と訳してしまうとちょっと変かも知れませんね。 「スマートフォンは計算機の一種」と言われても間違いでは無いでしょうが…(汗

1+1は…




 上の白い枠内はプログラムを書く場所になっています。ここに、
alert(1+1);
と書いて、実行ボタンを押してみてください。
 これは、1+1(いちたすいち)を計算して、その結果を画面に表示するプログラムです。 どうでしょうか。 こんな感じでうまく「2」が表示されましたか? Webブラウザーによって違うので細かいところはおいておいて、 「2」と「OK」が表示されればプログラミング大成功です! うまくいかない場合はalert(1+1);の部分をコピーして貼り付けてみてください。

足し算と引き算


 足し算は1+1以外も、簡単に書いて計算することができます。数値の部分は色々変えて試してみてください。
alert(2+3);

 引き算も同じように書けます。
alert(5-4);

 計算式はもっと長くても大丈夫です。
alert(6+7-8);

かけ算とわり算は算数と違う


 かけ算とわり算もできるのですが…。 キーボードを見ると、+(プラス)と-(マイナス)のキーはあるのに、 \(\times\)と\(\div\)が無いのはお気づきでしょうか。 スマートフォンのキーボードでもそうですよね。 変換すれば入力できますが少し入力しづらいです。
 実はプログラムのかけ算とわり算は別の記号を使います。かけ算は*(アスタリスク)です。
alert(9*10);

 わり算は/(スラッシュ)です。
alert(1/2);

 答えは分数ではなく少数になっちゃいますけれど計算できます。 割り切れない場合は近い値になります。

プログラムだからこそできる計算方法


 プログラムは順番に処理していくのが大きな特徴です。 一方プログラムには、計算の結果を一時的に保持しておく方法があります。 それを使って少し複雑になりますが、順番に処理する計算をしてみましょう。
 以下を、上記のプログラムが書ける白い枠内に書くかコピーして貼り付けて「実行」してみてください。 どうでしょう?想像どおりの結果になりましたか?
x=1+2;
y=9-3;
alert(x*y);

 解説しましょう!
 最初の行「x=1+2;」は、xという入れ物に、1+2の結果、すなわち3を入れる、という処理です。 次の行は「y=9-3;」は、yという入れ物に、9-3の結果、すなわち6を入れる、という処理です。
 つまり=(イコール)は右の値を左の入れ物に入れる処理なのです。 これは算数と違うので少し注意が必要ですね。 イコールを使うと、(算数じゃなくて)プログラムしてるって感じがしますね!
 そしてその入れ物を使った「alert(x*y);」は、つまり「alert(3*6);」と同じ意味になります。 うまく18が表示されれば大成功です!

計算の記号まとめ


 ちょっとややこしくなってきましたでしょうか。 今回登場した計算に使用する記号をまとめますね。


文字列も足し算できちゃう


 算数や数学ではなくプログラム特有のことですが、文字列も足し算することができます。 プログラムの世界では「"」(ダブルクォーテーション)で囲んだものが文字列です。 これを足し算してみましょう。 以下を試してみてください。
alert("abc"+"XYZ");

 文字列と文字列の足し算は、それらの文字列を連結する処理になります。 ですので上記プログラムを実行すると「abcXYZ」と表示されますね。
 それと、ここで説明したことを組み合わせると、こんなことができます。
if ( confirm( "質問" ) ) {
  answer="OK";
} else {
  answer="CENCEL";
}
alert( "あなたの回答は " + answer + " です" );

 質問の答えによって、「あなたの回答は OK です」または「あなたの回答は CENCEL です」と表示するプログラムになります。 応用すれば色々できそうですよね。
 世の中にあるプログラムも、ゲームプログラムも、こういう基本的な処理をたくさん組み合わせて作られています。 もちろんこれだけじゃできなくて、まだまだ知識は必要ですけれど。 この「用意されている処理をうまく組み合わせて複雑な処理を作る」というのが、 私はパズルを解いているみたいプログラミングが楽しいです。

電卓として使えるかも?


 今回はプログラムで計算する方法を紹介しました。 このページは電卓として使えそうなら使ってください(笑)

補足

・今回使用しているプログラミング言語はWeb業界で一般的に使われる「JavaScript」です。
・言語ごとに記号も異なりますが、ほぼすべての実用的なプログラミング言語で*が乗算、/が除算の機能だと思います。
・「入れ物」のことをプログラミング用語では変数(へんすう)と呼びます。
・今回の説明ではx,y,z,answerが変数として使われましたが英字の組み合わせであれば名前は自由です。
・日本語の変数名も使えるプログラミング言語が増えてきましたが使えないこともあるので個人的には使いません。
・数式表現にMathJaxを使用しております。助かります!
・画像内のラスタライズ文字フォントにOpen Font LicenseNoto Sans Japaneseを使用しております。

カテゴリー:プログラミング,JavaScript
著者プロフィール
青山公士(あおやま こうじ)
中学2年生からゲームプログラミングに明け暮れる。ゲーム開発者としての代表作に「スーパー桃太郎電鉄II」(ハドソン)メインプログラマー、[PR]『ドラゴンクエストX オンライン』(スクウェア・エニックス)テクニカルディレクター/プロデューサーなどがある。[PR]「ドラゴンクエストXを支える技術」(技術評論社)著者。本ブログは今までの経験を活かしプログラミングが楽しいと感じる人が少しでも増えるようなものにしたい。 @kojibm
株式会社ロジック推し
推し情報を論理的にわかりやすく紹介することで「世の中をちょっと楽しく」をミッションに活動中。 HP X Instagram
privacy policy
ピックアップ
Loading...
最新記事
Loading...
関連記事
Loading...