第2回演習問題


問1(基礎):キーボードより与えられた2個の実数値の和を求めよ.(小数点以下3桁まで)

問2(基礎):実数値を読み込み,その数が正であれば,「その数は正です」と表示し,負であれば「その数は負です」と表示し,ゼロであれば,「その数はゼロです」と表示せよ.

問3(応用):入力された実数値を四捨五入したものを表示せよ.(整数値になるように四捨五入)

問4(応用):西暦を入力したときに,その値がうるう年であるかどうかを判定するプログラムを書け.ただし,うるう年には次の法則がある.
1.西暦が4で割り切れる年はうるう年である.
2.1を満たし西暦が100で割り切れる年はうるう年でない.
3.ただし,西暦が400で割り切れる年はうるう年である.

問5(応用):数当てゲームを作りなさい.ルールは,プログラマが設定した数字をユーザが予想して入力し,当たったら”当たり”と表示し,外れた場合は設定された数字より大きいか小さいかを表示するというものである.この時の数字は3桁の正の整数であるとする.また,ユーザは数字を5回まで入力できるものとする.
(発展1:200以上差があるとその旨を表示する機能を追加せよ.
発展2:入力する数字が3桁でないとやりなおす機能を追加せよ.)

問6(応用):入力された整数Nを素因数分解し,結果を表示せよ.(例:Nが24の場合「2 2 2 3」と表示せよ.)

問7(発展): 問6の結果の表示形式を以下のように変更せよ.N が24の場合「2 ^ 3 * 3」N が10の場合「2 * 5」

問8(発展):ライツアウト(Lights Out)ゲーム(3×3)を実現するプログラムを書け.

ライツアウトとは:
例えば3×3の升目からなっており,どれか一つの升目を選択するとその升目と
隣接する升目のランプが反転する.最初全てのランプがオフの状態から始まり,
最終的にすべてオンにすればあがり.今回は
000                            123
000  [ボタンの名前は右の通り] 456
000                            789
という状態から始まる.それぞれの升目は左上から123456789というナンバと対応し,
ユーザがそのナンバを押すとそのナンバとそのナンバに隣接するナンバの数字が
反転する(押される前が0であれば1に1であれば0になる).
例えば上の状態で6を入力すると
001
011
001
となる.最終的に全部1になればクリア

以上

masa-n@cs.kobe-u.ac.jp
(C) Masahide Nakamura, Kobe University