AOYAMA KOJI's PROGRAMMING BLOG

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

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

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


[PR]


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


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

1+1は…


alert(1+1);

コンピューターは計算が得意だけどかけ算とわり算のプログラムはちょっと違う? fig.2  これは、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);

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

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


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

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

計算の記号まとめ


 ちょっとややこしくなってきましたでしょうか。 今回登場した計算に使用する記号をまとめますね。
記号
読み方
処理
+
プラス
2+3
足し算
-
マイナス
5-4
引き算
*
アスタリスク
9*10
かけ算
/
スラッシュ
1/2
わり算
=
イコール
x=3
代入


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


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

 文字列と文字列の足し算は、それらの文字列を連結する処理になります。 ですので上記プログラムを実行すると「abcXYZ」と表示されます。
 それと、ここで解説した if や confirm を組み合わせると、こんなことができます。

let answer;
if ( confirm( "質問" ) ) {
  answer="OK";
} else {
  answer="CENCEL";
}
alert( "あなたの回答は " + answer + " です" );

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

まとめ


 本記事では、コンピューターに計算をさせることについて解説しました。 また乗算記号と除算記号の違いについても紹介しています。

補足


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

カテゴリー:プログラミングを始めよう
[PR]