make

連絡

2023年5月30日
遅くなりましたが、システムコールのページを仮作成しました。

資料

  1. 「複数ファイルからなるソースコード」 スライド
  2. 「インクルードガード」 スライド
  3. 「makeについて」2020年度版make2020
    • makeの基本的な使い方(録画) (情報基盤センターのWeb File Serviceにも置いています。Xドライブ→2022年度→生活環境学部専門教育科目→2022計算機実験1(鴨)→make-1)
  4. 三角形の心
  5. プログラム例
    1. 分割コンパイルの例
    2. main関数の引数を表示するプログラム
    3. コマンドライン引数を浮動小数点数に変換して総和を計算して出力するプログラム(エラー処理の手を抜いた版)

練習問題

提出物
問題3のファイル一式と解説文書(LaTeXソース)
提出方法
電子メールに添付して送ってください。メールアドレスは授業中に指示します。
  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変数とサフィックスルルールを活用するように書き換えよ。(詳細は口頭で)

参考書


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