読者です 読者をやめる 読者になる 読者になる

技術士の技事録

新米技術士が、IT技術動向・高度資格試験対策等、現役SE向け情報を発信します。

技術士第一次試験専門科目 平成23年度 Ⅲ-2

問題

整定数の座標で与えられた画素(dx,dy)(ただし,0<dx,0豆dy/dx豆1)に向かつて原点から伸びる線分を表す連結画素列を,関数plo七poin七を用いて!|頂に出力するC言語のプログラムの一部を以下に示す。ただし,各行左端の数字は行番号であり,プログラムには含まれない。

 1 intx,y;floate;
 2 e=(f工oa七)dyI(floa七)dx;
 3 y=0;
 4 for(x=0;x<dx;x++){
 5 plo七p_oint(x,y);
 6 if(e>=0.5){
 7 y++;e=e-1.0;
 8 
 9 e=e+(floa七)dyI(floa七)dx;
10 
11 plo七poin七(dx,dy);

このプログラムの中で,変数eが現れる2,6,7,9行目では,浮動小数点数計算が必要であり,実行速度が低下してしまう。そこで,新たにin七型の変数fを導入し
f=2.0女dx*(e-0.5)
という変数変換を施せば,浮動小数点数eの代わりに整数fを更新するように,このプログラムを書き直すことができる。例えば,2行自は
f=2*dy-dx

となる。同様にして6行目を書き産したものはどれか。

選択肢

if(f>=dx)
if(f<=2*dx)
if(f>=2大dx)
if(f<=0)
if(f>=0)

 

答え

 ⑤

解説

 

次の問題へ専門科目TOPへ技術士TOPへ