• 検索結果がありません。

白い□が右に描かれるはず

N/A
N/A
Protected

Academic year: 2021

シェア "白い□が右に描かれるはず"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

条件分岐(つづき)

無限ループとif,break

サンプルプログラムpara1.cをまず実行して出力結果を確認せよ。白い□が右に描かれるはず。

このプログラムの考え方:

1.x,yという変数で座標位置を覚えておき、

1.それを少しずつ右にずらして□を描き、

1.右端に到達したら終了する。

今回のポイントは:

while()によるループ(教科書pp.130)があるが、それは条件節に1 書かれた無条件ループ(無限ループ)である。(教科書pp.133)

右端に到達したかどうかをif文(教科書pp.112)によって毎回確認し、

ループを終了(脱出)させる。

while()ループからの脱出にはbreakを使う。(教科書pp.144)

usleep()によって50ms待ち時間が入っている。(そうしないと速すぎ て面白くない)

int main() { int win;

double x,y,d,w;

win=gopen(400,400); /* 描画ウィンドウを開く */

winname(win, "para"); /* 名前をつける */

x=0.0; y=0.0; /* 初期位置を設定 */

w=10.0; /* 四角の幅を設定 */

d=w*1.5; /* 位置の移動は四角の幅の 1.5 倍 */

newpen(win, 1); /* 色を白に設定 */

while(1) {

if((x+w)>400) { /* 描こうとする四角の右端がはみ出たら */

break; /* 処理終了 */

};

fillrect(win, x, y, w, w);

x+=d; /* ひとつ右に移動 */

usleep(50000);

};

ggetch(win);

gclose(win);

return(0);

}

x 座標位置を右に移動 四角を描く

右端? Yes No 色を設定する

(2)

課題1.

サンプルプログラムpara1.cを元に、一つずつ四角の色を変えよ。

考え方。

1.色番号を保持するための変数(例えばint型でcという名前にす る)を一つ用意し、

2.毎回描くたびに色を変えていく。0が黒なので1から15まで毎 1ずつ加えていくのが簡単。

3.ただし、16という色はないので、15まで加えたら、その次は1 なるように条件判断をする。

ポイント:

色を設定しているのは

newpen(win,1);/*色を白に設定*/

の部分。第二引数が色番号になる。0が黒なので、0は使わないよ うに。(背景色と同じなので、描いたものが見えない)

para1.cでは色の設定はループの外だったが、ループごとに色を 変えたいのだから、newpen()関数はループの中に入れる必要があ る。

できあがれば講師に見せてOKを貰ったものを課題提出システムで登録する。

課題2.

課題1.ができたら、今度は「右端まで到達したら一段上の列に□を描き続ける」ようにせよ。

考え方。

1.右端に到達したら、y座標を少し上に移動させ、x座標を0(左 端)に設定する。

2.ただし、y座標がもう一番上に到達していたら、そこで終了。

ポイント:

if文による条件判断が二重になる。If文の中にif文を入れる のは、例えば

if(右端?){

if(上端?){

..;

};

};

というようにすれば良い。

できあがれば講師に見せてOKを貰ったものを課題提出システム で登録する。

色を変更 四角を描く

右端? Yes No 色を設定する

x 座標位置を右に移動 最後の色? Yes

No 最初の色に設定

x 座標位置を右に移動 四角を描く

右端?

y を一段上に

上端? Yes Yes

No

No x を左端に

参照

関連したドキュメント

森 狙仙は猿を描かせれば右に出るものが ないといわれ、当時大人気のアーティス トでした。母猿は滝の姿を見ながら、顔に

児童について一緒に考えることが解決への糸口 になるのではないか。④保護者への対応も難し

共通点が多い 2 。そのようなことを考えあわせ ると、リードの因果論は結局、・ヒュームの因果

彩度(P.100) 色の鮮やかさを 0 から 14 程度までの数値で表したもの。色味の

 「フロン排出抑制法の 改正で、フロンが使え なくなるので、フロン から別のガスに入れ替 えたほうがいい」と偽

ぎり︑第三文の効力について疑問を唱えるものは見当たらないのは︑実質的には右のような理由によるものと思われ

2) ‘disorder’が「ordinary ではない / 不調 」を意味するのに対して、‘disability’には「able ではない」すなわち

その太陽黒点の数が 2008 年〜 2009 年にかけて観察されな