目次
各プログラムにおいて、特に指定が無い限りは入力値が指定された形式であるかどうかをチェックする必要はない(例えば整数型の値を入力させるところでアルファベットを入力された場合など)。
グラフィクス編のプログラムはHandyGraphicを使うこと(プログラミングの練習目的ではEGGX等の他のグラフィクスライブラリでも構わない)。
HandyGraphicのインストール方法はこちらのページの通り。公式ページはこちら。
座標や大きさの単位はピクセルである。特に指定が無い場合は線や塗りつぶし色は初期設定のまま(線は黒、塗りつぶし色は白)でよい。また、プログラムがすぐに終了してしまわないようにHgGetChar関数を使って入力待ち状態を作るとよい。
No. 60 円
中心座標を入力させ、横600縦400のウィンドウを開き、入力した座標に半径50の円を描くプログラムを作成せよ。
実行例
円の中心座標を入力: 200 150
No. 61 正方形と内接円
横600縦400のウィンドウを開き、左下の座標が(200, 100)で大きさが200の正方形と、それに内接する円を描くプログラムを作成せよ。
実行例
(実行結果は図の通り)
No. 62 円と外接正方形
円の中心座標を入力させ、横600縦400のウィンドウを開き、入力した中心座標に半径80の円と、それに外接する正方形を描くプログラムを作成せよ。
実行例
円の中心座標を入力: 240 180
No. 63 象限
中心座標を入力させ、横600縦400のウィンドウを開き、入力した中心座標がウィンドウの左下なら赤、左上なら緑、右下なら青、右上なら黄の塗りつぶし色で、入力した座標に半径50の円を描くプログラムを作成せよ。
実行例
円の中心座標を入力: 150 100
円の中心座標を入力: 430 270
No. 64 象限+中央
中心座標を入力させ、横600縦400のウィンドウを開き、入力した中心座標がウィンドウの中心から左右上下に100以内ならオレンジ、それ以外で左下なら赤、左上なら緑、右下なら青、右上なら黄の塗りつぶし色で、入力した座標に半径50の円を描くプログラムを作成せよ。
実行例
円の中心座標を入力: 100 320
円の中心座標を入力: 480 80
No. 65 十字型
中心座標を入力させ、横600縦400のウィンドウを開き、半径10の円を中心座標とその上下左右に5つずつ、中心の間隔を30として描くプログラムを作成せよ。
実行例
円の中心座標を入力: 340 180
No. 66 ×型
中心座標を入力させ、横600縦400のウィンドウを開き、半径10の円を中心座標とその斜め方向に5つずつ、中心の間隔を縦方向および横方向それぞれ30として描くプログラムを作成せよ。
実行例
円の中心座標を入力: 340 180
No. 67 5×5
中心座標を入力させ、横600縦400のウィンドウを開き、半径10の円を中心座標とその上下左右に5行五列の25個、中心の間隔を縦方向および横方向それぞれ30として描くプログラムを作成せよ。
実行例
円の中心座標を入力: 340 180
No. 68 マス目
マス目の数(1以上の整数値)を入力させ、横600縦600のウィンドウを開き、ウィンドウの縦横がマス目の数に区切られるよう等間隔に線を描くプログラムを作成せよ。
実行例
マス目の数: 9
No. 69 市松模様
マス目の数(1以上の整数値)を入力させ、横600縦600のウィンドウを開き、ウィンドウの縦横がマス目の数に区切られ、マス目を白と黒で交互に塗りつぶして描くプログラムを作成せよ。
実行例
マス目の数: 9
No. 70 bound
横600縦400のウィンドウ内を、半径30の円が、中心の初期位置(0,0)、初速(5,3)で移動し、ウィンドウの端に円の中心が達したら反対方向に跳ね返る動きをするプログラムを作成せよ。
実行例
No. 71 bound改
横600縦400のウィンドウ内を、半径30の円が、中心の初期位置(30,30)、初速(5,3)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る動きをするプログラムを作成せよ。
実行例
(実行結果は図の通り)
No. 72 ワープ
横600縦400のウィンドウ内を、半径30の円が、中心の初期位置(30,30)、初速(5,3)で移動し、ウィンドウの端に円の中心が接したら反対側の端から出現するプログラムを作成せよ。
実行例
No. 73 bound×2
横600縦400のウィンドウ内を、半径30の円が2つ、中心の初期位置(30,30)、それぞれの初速が(5,3)と(3,5)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る動きをするプログラムを作成せよ。
実行例
No. 74 衝突判定
横600縦400のウィンドウ内を、半径30の円が2つ、中心の初期位置(30,30)と(570,370)、それぞれの初速が(5,3)と(-3,-5)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る動きをし、円が接するか重なる場合は赤、そうでない場合は青で塗りつぶして表示するプログラムを作成せよ。
実行例
No. 75 bound×5
横600縦400のウィンドウ内を、半径30の円が5つ、中心の初期位置(30,30)、それぞれの初速が(1,5)、(2,4)、(3,3)、(4,2)、(5,1)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る動きをするプログラムを作成せよ。
実行例
No. 76 色が変わるbound×5
横600縦400のウィンドウ内を、半径30の円が5つ、中心の初期位置(30,30)、それぞれの初速が(1,5)、(2,4)、(3,3)、(4,2)、(5,1)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る動きをする。ただし、円の色は、壁に当たるごとに赤→青→緑→黄と変化し、黄の次は赤に戻る。
実行例
(実行結果は図の通り)
No. 77 boundする円とマス目
横400縦400のウィンドウ内を、半径30の赤色の円が、中心の初期位置(30,30)、初速(5,3)で移動し、ウィンドウの端に円の端が接したら反対方向に跳ね返る。ウィンドウは10×10のマス目で区切られており、円の中心が通過したマス目は黒色に塗りつぶされていくプログラムを作成せよ。
実行例
No. 78 放物線運動
横600縦400のウィンドウを開き、半径30の円が、初期位置(30,30)、x方向の初速10、y方向の初速25で、下向きに重力が働くものとして放物線運動する様子をアニメーション表示するプログラムを作成せよ。
実行例
No. 79 モンテカルロ法
横400縦400のウィンドウを開き、0から399までの乱数を2つ生成してx,y座標とし、原点からの距離が400以下であれば赤、400よりも大きければ青の円をその位置に描く。この手順を繰り返し、正方形中のランダムな位置に円を10000個描きながら赤の点の個数を数え、点の個数から円周率の近似値を求めるプログラムを作成せよ。
実行例
pi = 3.152000