make

連絡

2021年8月27日10:32
  • 課題提出先が事故で不通になっていました。たった今、修理しました。再送をお願いします。
    • つきましては、締め切りを9月2日12:00とします。
2021年8月3日
課題のレポートの提出方法を下の「提出方法」の項目に書きました。
2021年7月29日
課題の提出先の準備に手間取っています。しばらくおまちください。
2021年6月1日
6月1日もオンラインです。
2021年5月25日
5月25日もオンラインです。
2021年5月17日
鴨担当分前半の準備ができました。

資料

  1. 「複数ファイルからなるソースコード」
  2. 「インクルードガード」
  3. 「makeについて」昨年度版make2020
  4. 三角形の心
  5. 講義録画
  6. プログラム例
    1. 分割コンパイルの例
    2. main関数の引数を表示するプログラム
    3. コマンドライン引数を浮動小数点数に変換して総和を計算して出力するプログラム(エラー処理の手を抜いた版)

練習問題

提出物
問題3のファイル一式と解説文書(LaTeXソース)
提出方法
電子メールに添付して、
make2021-kadai-☆@gemini.ics.nara-wu.ac.jp
に送ってください。ただし、☆は正四面体の辺の本数である一桁の整数に置き換えてください(迷惑メール避け)。
提出期限
2021年9月2日12:00(日本標準時)
  1. 三角形の頂点の座標を入力し重心と内心と外心と垂心とジェルゴンヌ点とナーゲル点と類似重心の座標を出力するプログラムをCで書け。ただし、以下のようにファイルを分割すること。

    input.c 点の座標の入力
    output.c 点の座標の出力
    calc_G.c 重心の座標の計算
    calc_I.c 内心の座標の計算
    calc_O.c 外心の座標の計算
    calc_H.c 垂心の座標の計算
    calc_Ge.c ジェルゴンヌ点の座標の計算
    calc_Na.c ナーゲル点の座標の計算
    calc_K.c 類似重心の座標の計算
    main.c 入力・計算・出力を順に呼び出す
    ヘッダファイル (必要に応じて)
    その他のソースファイル (共通の下請け関数などのために必要ならば)
    1. 重心、内心、外心、垂心、ジェルゴンヌ点、ナーゲル点、類似重心を出力する一つのプログラムを書け。
    2. 重心、内心、外心、垂心、ジェルゴンヌ点、ナーゲル点、類似重心のそれぞれについて、それだけを出力するプログラムを、あわせて7個書け。
      ヒント
      プログラムが7個なので素朴に実装するとmain関数を定義するファイルが7個必要になりますが、そのファイルの名前はmain.cと指定されているので、同じディレクトリに7個作ることはできません。対策としては、たとえば、次のようなものがあります。(他にもあります)
      1. 7個のサブディレクトリに分ける。
      2. マクロ定義を活用して、一つのmain.cから7個の.oが作れるようにする。
      3. 心の計算を行う関数を定義する7個のファイルで、計算を行う関数が同名となるように定義する。
      ヒント動画
    参考データ
  2. 問題1の成果に、Makefileを追加せよ。(詳細は口頭で)
  3. 問題2の成果のMakefileをmake変数とサフィックスルルールを活用するように書き換えよ。(詳細は口頭で)

参考書


奈良女子大学生活環境学部情報衣環境学科生活情報通信科学コース
数学科出身だけどプログラミングを教えている人