プログラミング入門I 実習課題 2018.11.19

Back to text page


  1. if-else 文の基本

    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. 論理演算子の基本1

    2桁の正の整数を2つ発生させ,さらにもう一つ2桁の正の整数を発生させ,それが最初の2つの整数の間に入る場合にINと,そうでない場合にはOUTと表示するプログラムを作成しましょう.

    Boundary: 14 -- 38
    21: IN
    

    Boundary: 22 -- 43
    96: OUT
    

  3. 論理演算子の基本2

    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
    

    解答例

  4. 各月の日数

    1から12までの整数を乱数で発生させて,その月の日数(閏年では無いときの)を 答えるプログラムを作成しましょう.

    Month:  2
    Days:  28
    

    論理演算子 || を使いますが,なるべく条件の記述が短くなるように工夫してください.

    ところで,Unix系のOSではターミナルで簡単にカレンダーを表示させることができます.

    $ cal

    とすると,今月のカレンダーを見ることができます.

    $ cal [month] year

    というのが文法ですので,今年のカレンダーを全て見たければ,

    $ cal 2018

    のようにします.特定の月を見たければ,

    $ cal 12 2018

    のようにします.例えば,上の例は今年の12月を表示させるものです.注意するのは,

    $ cal 11

    のようにすると,西暦11年のカレンダーが出てくることです.月は省略可能ですが,年は最初のように引数を何もつけない場合以外には省略できません.
  5. Liverpool FC 対サンフレッチェ広島FCの夢の対決をシミュレートしましょう.0〜3の範囲の整数を乱数により2つ発生させて,それぞれを両チームの得点とします.勝ち負け,もしくは,引き分けの表示を行うプログラムを作成しましょう.

    Liverpool 0 - 1 Sanfrecce 
    Winner: Sanfrecce Hiroshima FC
    

    引き分けの場合は2行目にDrawと表示させましょう.
    解答例

  6. サイコロ2つで遊ぶ野球ゲームの基礎的な部分を作ってみましょう.以下の表のようにサイコロの目に従って安打か凡打が決まるとするとき,バッター一人分の打席を以下のように表現するプログラムを作成しましょう.

    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!
    

    なるべく少ない条件で記述しましょう.
    解答例

  7. うるう年判定

    うるう年の判定は if 文の例題としてよく使用されるものですので,ここでも試してみましょう.

    うるう年は以下のように規定されています.

    西暦年が4で割り切れる時,ただし,100で割り切れる年は除外する.しかし,400で割り切れる年はうるう年とする.

    1800以上2100以下の整数を乱数により1つ発生させそれを西暦年とするとき,その年がうるう年かどうか判定するプログラムを作成せよ.

    Year: 1820
    A leap year
    

    Year: 1999
    Not a leap year
    

    場合分けをしっかり考えてからプログラムしてください.

    なお,現在使用しているグレゴリオ暦をイギリスが導入したのは1752年なので,それまでのユリウス暦からの移行のために,その年の9月は変なことになっています.ターミナルでカレンダーを表示させるコマンドで,確認できます.

    $ cal 9 1752
    解答例


Back to text page