プログラミング入門I 宿題 2025.11.05

Back


0から23の整数のどれかを乱数を用いて発生させそれを時間とし,0から59の整数のどれかを同じく乱数を用いて発生させ,今度はそれを分として,例えば 17:23 などと表示します.次に同じようにして時間と分を乱数で発生させてそれを経過時間 (Elapsed time) とします.

ことのき以下のように最終時間を計算して表示するプログラムを作成しましょう.日をまたいだ場合には0時に戻るようにします.

Student number: s246099

Start time   -- 17:09
Elapsed time -- 00:36
Finished time - 17:45

------------------------
Student number: s246099

Start time   -- 13:24
Elapsed time -- 07:38
Finished time - 21:02

------------------------
Student number: s246099

Start time   -- 23:16
Elapsed time -- 16:34
Finished time - 15:50

------------------------
繰り上げが無い場合 分の繰り上げがある場合 24時を越す場合

なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.これらは解答用紙にあらかじめ入っているものを自分のものに修正するだけでよいので,必ず行ってください.

時刻を表示させるので数値は必ず2桁として0を補う表示形式とします.f文字列の中に,例えば {hoge:02} のように書式指定の桁数の前に0をつけることで可能になります.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

# #############################
#
# プログラミング入門I 宿題 2025.11.5
# 学生番号:  s246099    
# 氏名:     松江 花子   
#
# #############################

import random

print('Student number: s246099')  
print()

h0 = random.randint(0, 23)
m0 = random.randint(0, 59)
he = random.randint(0, 23)
me = random.randint(0, 59)

print(f'Start time   -- {h0:02}:{m0:02}')
print(f'Elapsed time -- {he:02}:{me:02}')

hf = 0
mf = m0 + me

if mf >= 60:
    hf += 1
    mf -= 60

hf += h0 + he

if hf > 23:
    hf -= 24

print(f'Finished time - {hf:02}:{mf:02}')

print('\n------------------------\n')


Back