1 から 5 までの整数のどれか1つを乱数により発生させ,それを原点を中心とする円の半径とします.次に,-5 から 5 の範囲の整数を乱数により2つ発生させ,それを点 P の座標とします.そして,点 P が円の内側にあるか,外側にあるか,円周上にあるのかを答えるプログラムを作成しましょう.
Student number: s236099 Point P(3, 1) is in a circle with radius 5. ------------------------ | Student number: s236099 Point P(1, 5) is out of a circle with radius 2. ------------------------ | Student number: s236099 Point P(1, 0) is on the circumference of a circle with radius 1. ------------------------ | |||
内側の場合 | 外側の場合 | 円周上の場合 |
なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.これらは解答用紙にあらかじめ入っているものを自分のものに修正するだけでよいので,必ず行ってください.
やり方はいろいろありますが,今回の課題で特別に数学関数の平方根などを呼び出す必要はありません.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
解答例
# ############################# # # プログラミング入門I 宿題 2023.11.6 # 学生番号: s236099 # 氏名: 松江 花子 # # ############################# import random print('Student number: s236099') print('') r = random.randint(1, 5) x = random.randint(-5, 5) y = random.randint(-5, 5) #r, x, y = 1, 1, 0 print(f'Point P({x}, {y}) is ', end = '') if x * x + y * y < r * r: print('in ', end = '') elif x * x + y * y > r * r: print('out of ', end = '') else: print('on the circumference of ', end = '') print(f'a circle with radius {r}.') print('\n------------------------') |