はじめに
やあ、こんにちは。今日は数の計算、比較そして論理演算について学ぼう!
はい、よろしくお願いします!
数の計算について
まずは数の計算についてだが、慣れ親しんでいる演算記号とは違う演算記号を使うことがある。以下の表にまとめておいたから確認してほしい。なお、計算に使う記号のことを算術演算子と呼び、すべて半角で使うぞ。
算術演算子の表
演算 | 記号 | 意味 |
加法 | + | 二つの数を足す |
減法 | – | 左側の数から右側の数を引く |
乗法 | * | 二つの数を掛ける |
除法1 | / | 左側の数を右側の数で割る(割り切れない場合は小数の商となる) |
除法2 | // | 左側の数を右側の数で割る(小数点以下を切り捨てた商となる) |
累乗 | ** | 例えば2**3の場合、『2の3乗』を意味する。 |
余り | % | 左側の数を右側の数で割った余り |
ある数をある数で割ったときの商や余りについて便利な演算がありますね!
ああ、これらは実際に使ってみて慣れていくのが一番だ。では、ビットアローを準備してくれ。今日は新しくfile6を作成して書いていこう。まずは次のプログラムを書いて実行してみてどうなるか見てほしい。それから、第1行目に『#数の計算』と書いてあるが、これは自分のためのメモみたいなものだ。#記号の右側に書くことでコンピュータはその行を無視してくれるのだ。なので、実際のプログラムは2行目から実行されるということになる。ぜひ、これから使っていこう!
はい、では書いてから実行してみます。
計算結果が表示されない!?
あれー何も表示されないや!なんでだろう?
ふふふ、すまない。ちょっとヒロトを試してしまったのだ。いいかい?プログラムにおいて何か表示させたいとき、絶対に必要だったものがあるが覚えているかい?
ああ、そうか!print関数か!
その通りだ!計算機に入力する感覚で計算をしようとしても表示させる命令を書いてないから計算だけさせて表示されないということになってしまったのだ。ぜひ、このことは忘れないでくれ。では、改めて上の計算結果を表示させるプログラムを書いてみてくれ!
はい、分かりました!
print関数を使うのだからこうすればいいはず!
正しい計算結果が表示されました!
print関数をうまく使う
ヒロトは注意しなくてもできていたが、print関数に代入するものは今回は文字列ではなく数値であるから、たとえば2行目について『print(‘2+3’)』とシングルクォーテーションで囲んでしまってはいけなかったのだ。因みにこのように書くと文字列としてそのまま『2+3』と表示されてしまうのだ。しかし、これをうまく使えば次のように実行結果から何を計算した結果なのかが分かるようになるぞ!
確かに何の計算結果なのかが見て分かるようになりました!文字列と数値の間にカンマ『 , 』を書くのを忘れないようにしなくちゃいけないですね!
その通りだ。たった一つカンマがないだけでエラーとなってしまうから注意が必要だな。数の計算についてはここまでにして次は数の比較についてやっていこう!
数の比較について
数の比較についても以下の表にまとめたから確認してほしい。算術演算子と同様に、比較するときに用いる記号のことを比較演算子と呼び、全て半角で使うからよろしくな。
比較演算子の表
プログラミングでの書き方 | 数学での記号 | 意味 |
a>b | \(a>b\) | aはbより大きい |
a>=b | \(a \geq b\) | aはb以上 |
a<b | \(a<b\) | aはbより小さい |
a<=b | \(a \leq b\) | aはb以下 |
a==b | \( a=b\) | aはbに等しい |
a!=b | \(a \ne b\) | aとbは等しくない |
『==』については以前出てきました!
また、『以上』と『以下』は不等号が前で等号が後ろなのですね!間違えないようにしなくちゃ。
その通りだ。順番を逆にしてしまうとエラーとなってしまうから気を付けよう!最後のaとbは等しくないことを意味する記号の『 ! 』はエクスクラメーションマークといい、シフトキーを押しながら数字の1を押すと入力できるぞ。
はい、覚えておきます。
論理演算子について
さて、あといくつかだけ紹介したいことがある。それは『論理演算子』についてだ。プログラムで複数の条件を組み合わせて書きたいときに便利なものだから必ず押さえておきたいものなのだ。以下の表を見てい欲しい。AとBはある条件文だと理解してくれ。
論理演算子の表
プログラミングでの書き方 | 意味 |
A and B | AかつB |
A or B | AまたはB |
確かに『または』と『かつ』はよく使う表現ですよね。しかし先生、そろそろ頭がパンクしそうです。
そうだな、この辺で少し具体例を見てみよう。ここまで来たら、かなりプログラムの幅が広がっていることに気づくぞ!
具体例
では、はじめに簡単なものから書いていこう。入力した数が奇数ならば『奇数』と表示し、偶数ならば『偶数』と表示するプログラムを書いてみてほしい。できるかな?ヒントはinput関数とif文を使うぞ!新しくfile7を作成してそれに書くといいだろう。
入力した数が奇数かどうか判定するためには、2で割った余りが1に等しいかどうか調べればいいのでif文を使えばできるかも!
先生、何度試してもエラーが出てしまいます。if文は正しい自信があるのですが、なんでだろう?
ふむ、なるほどな。今回のエラーはよくあるエラートップ3に入るぞ。原因は文字を数で割っていることにある。ふふ、どういうことだろうって顔してるな?いいかい?1行目のinput関数で変数aにキーボードから入力した数を代入しているのだが、このとき入力した数は『文字列』として代入されてしまうのだよ。input関数でキーボードから入力したものはすべて文字列として認識されてしまうのだ!
そうだったのですね!では、キーボードから数を代入することはできないのですか?
いや、ちゃんと代入できるぞ!実はキーボードから入力した値を数値に変換してくれる関数があるのだ。それは『int関数』だ。次のように、int関数に代入すれば数値に変換されるのだ。
2行目でキーボードから入力した文字列としての値をint関数に代入して数値に変換したものを変数bに代入しているのだ。5を入力して実行すると画面のようにうまく処理されたことが分かるな!次のようにinput関数を直接int関数に代入することによって、1行だけで処理する方法もあるぞ。こうすることによって変数はaの1個だけで済むようになるのだ。
なるほど、こっちのほうがいいですね!
では、最後にいくつか練習問題をやって終わりにしよう。
練習問題
問題
新しくfile8、file9、file10を作成して、各問題の解答をそれぞれのファイルに書こう。
(1)変数aと変数bに数値を代入し、それらの四則『a+b , a-b , a*b , a/b』の計算結果を
表示するプログラムを書こう。
(2)入力した数が奇数であり、かつ3の倍数であるときに『3の倍数である奇数』と表示し、
そうでないときには『偶数であるか、または3の倍数でない』と表示するプログラムを
書いてみよう。
※ヒント:if-else文を使うぞ!
(3)1から100までの数のうち、奇数であり、かつ3の倍数である数を抽出し表示する
プログラムを書こう。
※ヒント:for文の中にif文を書くぞ!
解答
(1)
(2)
(3)
出来ました!すべて正常に機能しています!!
完璧だ!(3)のfor文の中でif文を使うとき、if文の条件が成り立つときに実行する部分をさらにインデントしているところが良かったぞ!
まあ、きっとこうだろうという感じで書きました!できていて良かったです。
今日は、かなり盛沢山な内容だったと思う。今回の内容を理解すると、プログラムの世界がぐっと広がること間違いなしだ!今日学んだ内容のプログラムを書いて遊んでみるといいだろう。では、今日はここまでにしよう。お疲れさん。
はい!しっかり遊んできます!
今日はありがとうございました!
コメント