情報科学演習
2011.10.31
相変わらず件名や添付ファイル名の間違い,解答用紙の不使用が多く見られます.
注意してください.
以下は問題のあるプログラムの例です.
インデントがおかしいですね.また,printf の中で桁数指定をしてい
ないので,問題のように答えが右揃えにならない場合があります.
この解答も右揃えになっていませんが,それ以外に不要な変数 e と
f が定義されています.無駄は省きましょう.
乱数の自在な利用法について実習しましたが,理解できていない人も多く見られ
ました.とにかく,以下のことを覚えるだけですので,慣れてください.
四則演算を始めとして,ある値をそれ以後も使用したいときには,値を変数に入
れておく必要があります.その作業が代入です.等号の記号により,等号演算子
の右側の値が左側の変数に入ります.
四則演算について学習しました.プログラミング言語では剰余が重要ということ
を説明しましたが,今後も頻繁に使用するので注意してください.
教科書の例題2.6や2.7に出てくる printf の複数行にわたる表現です
が,この授業では使用しないようにしましょう.動作の理解が進みにくい表現で
あるとともに,今後全角スペースの誤使用などの問題が出ることも予想されます
ので,以下のように1行ずつ printf を使用するようにしましょう.
ファイル名にはスペースや括弧などを使用しないで下さい.結局は扱いにくくな
るので損をします.また,日本語も使用しない方がコマンド操作で効率的ですの
で,アルファベット小文字を基本に,間を開けたいときにはアンダースコア
_ などを活用しましょう.
教科書p.18から実数の計算が始まりますが,実数は正確には浮動小数点数
(Floating point number)と言います.小数点が移動可能な数ということですね.
扱える桁数が決まっているので,精度良く計算するためには「倍精度」の数で定
義する必要があります.また,有効数字を明確にするための指数表現が
printf で出力する場合に用意されていますので,必要に応じて使用しましょ
う.なお,この授業では浮動小数点数はほとんど使用しません.基本的には整数
型の演算を最後まで行っていく予定です.
浮動小数点数にも加減乗除の四則演算が可能です.ただし,剰余は使用できませ
ん.それと注意するのは,整数と実数の間の演算です.これらは基本的には実数
になります.
1 / 3 => 0
また,printf で表示する際に,実数を %d で
指定すると,データが壊れることがありますので,注意してください.
実習の演習問題は当日ご案内します.
教科書のp.25まで予習をしてきてください.
授業の終わりに宿題の案内を行います.た
だし,問題を見ることができるのは11月1日以降です.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
srand((unsigned) time(NULL));
int a, b, c, d;
a = rand() % 10 + 81;
b = rand() % 10 + 11;
c = a / b;
d = a % b;
printf("My student number: s114099\n");
printf("Quotient of %d divided by %d %d\n", a, b, c);
printf("Residue of %d divided by %d %d\n", a, b, d);
printf("-------------------------------------\n");
return(0);
}
main()
{
srand((unsigned) time(NULL));
int a, b, c, d, e, f;
a = rand() % 10 + 81;
b = rand() % 10 + 11;
c = a / b;
d = a % b;
e = a;
f = b;
printf("My student number: s114099\n");
printf("Quotient of %d divided by %d: %d\n",a, b, c);
printf("Residue of %d divided by %d: %d\n",e, f, d);
return(0);
}
printf("Various operation of 11 and 3\n");
printf("Sum = %d\n", c);
printf("Difference = %d\n", d);
printf("Product = %d\n", e);
printf("Quotient = %d\n", f);
printf("Residue = %d\n", g);
1 / 3.0 => 0.333333....
目次ページに戻る