2003年度・計算機数学3・第7回実習(おまけ) 1
● 実習内容
【課題の追加】
1.
2つの整数の積を計算するプログラムを書きなさい.
この問題の意味は, 整数a,bの積a*bを,「筆算」をエミュレートすることによって計算しな さいという意味である. したがって, プログラム内部でa*bを計算してはいけない. 面倒なら ば,「2つの正の整数の積」と限定しても良い.
2.
2つの整数の商と剰余を計算するプログラムを,以下の方法で実現しなさい.
もし,a,bがともに正であれば, a/bを求めるためにaからbを引き続ける.
この問題は,2つの整数がともに正であれば,結果は明らかであるが,少なくとも一方が負の場合 には,どのような条件でプログラムを停止させるかが問題となる. この問題を通じて,Cの「除 算の仕様」の意味を理解してほしい.
ただし,CPU内部での除算は, このように「引き続ける」のではなく, 次の問題のように「筆 算」をエミュレートしている.
3.
2つの正の整数の除算の結果を小数点以下3桁目まで求め,そのときの剰余を求めるプ ログラムを書きなさい.
この問題の意味は, 正の整数a, bの除算の結果を, 「筆算」をエミュレートすることによって 計算しなさいという意味である. したがって,プログラム内部でa/bを計算してはいけない. な お,この時の剰余rとは,除算結果をqとしたとき, (a−r)/b=qをみたす数のことである.
1, 3のプログラムは,変数の型を(例えば)intにとったとき,int型のすべての値に対して正しく 動作するプログラムを書くことは難しい. したがって, 「どの範囲の値であれば正しく動作するか」
も確かめなさい.
ex07-1.tex,v 1.1 2003-05-28 08:13:23+09 naito Exp