時間・時刻を計算する関数を使う - 情報処理IIレジュメ(10)

時間・時刻関数を使ったプログラム作成

以下の問題を計算するプログラムを作成せよ。なお、手計算の結果と比較すること。 プログラムは一度に作成するのではなく、1 問ずつ順に作り上げていく方がよい。 すべての計算が終了し、検算が正しければプログラムと結果を提出すること。

  1. とある高専の授業は朝8:40から始まり、一つの授業を二コマ単位(90分)で実施している。2限終了時と6限終了時には15分の休憩時間、4限終了時には50分の昼休みがある。ここに現れている数値のみから、この高専の時刻表を計算し、表示せよ。
  2. この高専は定期試験期間には特別な時刻表になる。朝9:00から1 限が開始され、午前中に 3 つの試験が行われる。試験時間は50分である。また、各試験の間の休憩時間は20分である。50分の昼休み後に 4 限の試験が実施される。この高専の試験時刻表を計算し、表示せよ。
  3. この高専では、実験実習の最終日にプレゼンテーションを実施する。実験実習は 4 コマであり、2 年生では班ごとに 10 班が発表する。実験実習の最後に振り返りの時間を 30 分残すとすると、各班の発表+質疑の時間は何分取ることができるか。ただし、班と班の間には 1 分の交代時間を含むこととする(途中の 20 分の休憩時間は適当なタイミングで入れることとすることで無視し、90×2として計算すればよい)。
  4. 3 年生以上は一人ずつ発表を行う。プレゼンテーションは2週にかけて行い、二週目の終わりに振り返りの時間を30分取ることとする。各学生の発表+質疑の時間を求めよ。上記同様、学生間には1分の交代時間を含むこととする。なお、クラスの人数は40人とする(3と同様休み時間は無視してよい。また、初日の時間オーバした分は、二日目に削ることとし、正味 90×4 で計算してよい)。
/* mytimeMain.c by H.Kobayashi */
#include <stdio.h>
#include <stdlib.h>
#include "mytime.h"

/* 問題1 */
void q1() {
    問題1 を解く
}

/* 問題2 */
void q2() {
    問題2 を解く (問題 1 が終わってから書く)
}

...........

int main() {
/* 問題 1 */
    q1();
/* 問題 2 */
    q2();
    ......
    return 0;
}

注意: このプログラムは makeだけで実行できる。

hkob.hatenablog.com