2桁の正の整数を乱数により1つ作成し,その数が50以上の場合にはGreater than or equal to 50と,小さい場合にはLess than 50と答えるプログラムを作成しましょう.
Random number: 65 Greater than or equal to 50 |
Random number: 45 Less than 50 |
2桁の正の整数を2つ発生させ,さらにもう一つ2桁の正の整数を発生させ,それが最初の2つの整数の間に入る場合にINと,そうでない場合にはOUTと表示するプログラムを作成しましょう.
Boundary: 14 -- 38 21: IN |
Boundary: 22 -- 43 96: OUT |
1,2,もしくは3のどれかを乱数により発生させることを3回行い,3つとも全部同じ数字だったら Miracle! と,2つが同じだったら One pair と表示するプログラムを作成しましょう.
Random numbers: 2 2 2 Miracle! |
Random numbers: 1 3 1 One pair |
Random numbers: 3 1 2 |
解答例
1から12までの整数を乱数で発生させて,その月の日数(閏年では無いときの)を 答えるプログラムを作成しましょう.
Month: 2 Days: 28 |
論理演算子 || を使いますが,なるべく条件の記述が短くなるように工夫してください.
ところで,Unix系のOSではターミナルで簡単にカレンダーを表示させることができます.
$ cal
とすると,今月のカレンダーを見ることができます.
$ cal [month] year
というのが文法ですので,今年のカレンダーを全て見たければ,
$ cal 2018
のようにします.特定の月を見たければ,
$ cal 12 2018
のようにします.例えば,上の例は今年の12月を表示させるものです.注意するのは,
$ cal 11
のようにすると,西暦11年のカレンダーが出てくることです.月は省略可能ですが,年は最初のように引数を何もつけない場合以外には省略できません.
Liverpool 0 - 1 Sanfrecce Winner: Sanfrecce Hiroshima FC |
引き分けの場合は2行目にDrawと表示させましょう.解答例
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
1 | Home run! | Out | Out | Out | Out | Single hit! |
2 | Out | Three base hit! | Out | Out | Single hit! | Out |
3 | Out | Out | Two base hit! | Single hit! | Out | Out |
4 | Out | Out | Single hit! | Two base hit! | Out | Out |
5 | Out | Single hit! | Out | Out | Two base hit! | Out |
6 | Single hit! | Out | Out | Out | Out | Single hit! |
Dice: 6 1 Result: Single hit! |
なるべく少ない条件で記述しましょう.解答例
うるう年の判定は if 文の例題としてよく使用されるものですので,ここでも試してみましょう.
うるう年は以下のように規定されています.
西暦年が4で割り切れる時,ただし,100で割り切れる年は除外する.しかし,400で割り切れる年はうるう年とする.
1800以上2100以下の整数を乱数により1つ発生させそれを西暦年とするとき,その年がうるう年かどうか判定するプログラムを作成せよ.
Year: 1820 A leap year |
Year: 1999 Not a leap year |
場合分けをしっかり考えてからプログラムしてください.解答例
なお,現在使用しているグレゴリオ暦をイギリスが導入したのは1752年なので,それまでのユリウス暦からの移行のために,その年の9月は変なことになっています.ターミナルでカレンダーを表示させるコマンドで,確認できます.
$ cal 9 1752