cd c を実行した後で( ~/c に移動した後で)、以下の課題を
やってみよ。
以下のプログラムを実行してみよ。
/* kadai 3.1 */
#include <iostream.h>
main()
{
int a;
a = 3;
if ( a > 0 ){
cout << "a > 0" << endl;
}
}
課題 3.1 のプログラムで、a = 3; を a = -1 に変更して
実行してみよ。
課題 3.2 のプログラムを改良し、a が正又は0の場合は、a >= 0 を
負の場合は、a < 0 を表示するように改良し、実行してみよ。
また、a に 10 を代入するように変更してみて実行してみよ。
それぞれ、きちんと表示されましたか?
課題 3.3 のプログラムを改良し、a が、正か0か負のどれであるかを
表示するようにせよ。
前回、整数同志の割り算の結果は整数であるので、小数以下は切り捨てられることを 学んだが、これを応用して割り算の余りを求め、割り切れるかどうか を調べるプログラムを作ってみよう。
例えば、整数
を整数
で割った場合、商が
で、余りは
となるが、
これは、次のように書ける。
p = a / b; とすればよい。
結局、余りがあるかどうかを調べるには、
p = a / b; q = a - p * b; |
を計算し、
が0か否かを調べれば良い。
以上のことを用いて、 余り q を求めて、0ならば、割り切れたことを、0でないならば、 余りを表示するプログラムを作成せよ。
但し、プログラムはなるべく一般的に作り、プログラムの最初の方で、整数 a,b に値を代入し、以降は変数 a, b を使うようにしなさい。(具体的な数値を 使って計算してはならない。)
整数 a, b に割り切れる場合、割り切れない場合の数を代入し、それぞれきちんと 表示されるか確かめてみなさい。
作成したプログラムをメイルで creport まで送ること。但し、題は、kadai03 と すること。 ( 2回目以降のメイルを出すときは、kadai03 retry のように、kadai03 の後ろに 空白を入れてメッセージを付け足すこと。 )
課題 3.5 のプログラムで、a = と b= の行を削除し、
以下の行を挿入せよ。
cout << "Input a = ";
cin >> a;
cout << "Input b = ";
cin >> b;
これを実行すると、まず、 Input a = と表示されるので、適当な値を
キーボードから入力し ( 整数 ) 、リターンキーを押すと、
今度は、 Input b =
と表示するので、先の値とは違う値を入れてみよ。
どうです?
これは、何度でも値を変えて割り切れるかどうか調べることが出来るようになって
いますね。
実は、cin >> a は、値をキーボードから読み取って、変数 a に
代入する命令なのです。 ( 今の所は、正式には講義してませんので、
そういうおまじないと思って構いません。 )
if (条件){
文
}
if (条件){
文1
}else{
文2
}
if (条件1){
文1
}else if (条件2){
文2
}else if (条件3){
文3
...
}else{
文 n
}
(最後の else == != > < >= <= の6種類があり、それぞれ
数学の
と同じ意味になっている。特に注意が必要
なのは、一番目の == で、代入記号の = と間違えては
ならない。
if ( a=0 ) の間違いである。これは、
a=0 が比較演算ではなく、代入文なので、a に0が代入され、
代入演算の結果は代入した数値なので、a=0 の結果は0となり、
この if 文は常に偽と判断される。