プログラムの流れの制御



next up previous contents

Next: 制御文の使い方 Up: 5 条件判定と繰り返し Previous: 5 条件判定と繰り返し


プログラムの流れの制御

様々な条件に応じた動作をさせられるように、Cにも いろいろな制御文が用意されています。 次のプログラムは、ウィンドウ上でマウスボタンを押すと、そこへ ボタンに応じた図形が描かれるプログラムです。

-----------------------
  1: /* program "test5.c" --- マウスボタンが押された位置に図形を描く */
  2: 
  3: #include <stdio.h>
  4: #include <Xtc.h>
  5:
  6: void main(void)
  7: {
  8:     int  button;
  9:     int  x, y, r = 4;
 10:
 11:     initgraph();           /* グラフィック環境の初期化 */
 12:
 13:     while(1){
 14: 
 15:         button = xgetbutton();     /* マウスボタンが押されるまで待つ */
 16:         x = cur_pointer_x;         /* ボタンが押された時のx座標 */
 17:         y = cur_pointer_y;         /*                     y座標 */
 18:
 19:         if( button == 3 )          /* 押されたボタンが3番ならば、 */
 20:           break;                   /*  while ループを抜ける(終了)  */
 21: 
 22:         switch( button ){
 23:             case 1:                /* ボタン1ならばそこに矩形を描く */
 24:                 rectangle( x - r, y - r, x + r, y + r );
 25:                 break;
 26:             case 2:                /* ボタン2ならばそこに円を描く */
 27:                 circle( x, y, r );
 28:                 break;
 29:         }
 30: 
 31:     }
 32: 
 33:     closegraph();          /* ウィンドウを閉じる(終了) */
 34: }
-----------------------

この中で、cur_pointer_x および cur_pointer_y という変数は、 マウスボタンが押された時のマウスカーソルの位置がセットされているもので、 グラフィックライブラリをリンクすれば使用できます。

このプログラムのコンパイルは、前節と同様に行います。

-----------------------
  gcc -o test5 test5.c -I/usr/X11/include -L/usr/X11/lib \
  -R/usr/X11/lib -lXtc -lX11 -lsocket -lnsl
-----------------------



next up previous contents

Next: 制御文の使い方 Up: 5 条件判定と繰り返し Previous: 5 条件判定と繰り返し




機械・知能系 コンピュータ実習担当教官