UNIXシステムコールプログラミングのページ(仮)

第1回

プログラム例

  1. コマンドライン引数
    • コマンドライン引数を、一行に一つずつ、順序通りに標準出力に出力するプログラム。
      • nara.c argc を使って個数を数える方法を使う。
      • ikoma.c argv[argc]NULL が入っていることを利用する方法を使う。
    • 正四面体数を順に出力するプログラム。 ただし、以下のオプションをとる。
      -r
      20カラム右揃えで出力する。
      -N 整数
      整数以下の正四面体数のみを出力する。指定しなければ無制限。
      -n 整数
      最初の整数個を出力する。デフォルト値は10。-Nと同時に指定したときは、-Nの引数として与えられた限界を超えると途中でも打ち切る。
  2. 環境変数の使用例
    1. 環境変数の表示
    2. 環境変数の値により動作を変えるプログラムの例

課題

    1. コマンドライン引数を、一行に一つずつ、以下の順序で標準出力に出力するプログラムを書け。
      • 最初に、アルファベットで始まる引数のみを出現順に出力する。
      • 次に、数字で始まる引数のみを出現順に出力する。
      • 最後に、残りの引数を出現順に出力する。
      ヒント1
      isalpha()isdigit()を使いましょう。文字コードの大小比較を使う方法は、環境依存で好ましくありません。
    2. 以下のオプションにも対応するよう、kyoto.cを改良せよ。
      -O
      奇数の正四面体数のみを出力する。
      -R 整数
      整数カラム右揃えで出力する。
      ヒント1
      オプション-R 整数の実装方法
  1. 三角形の三頂点の座標を入力し、指定された心の座標を出力するプログラムを書け。
    1. 以下の条件で書け。
      • 入力は標準入力で出力は標準出力とする。
      • 座標を出力する心はコマンドラインオプション-cの引数または環境変数TCENTERの値で指定する。両方指定されている場合はコマンドラインオプションを優先する。どちらも指定されていない時は、重心のみ出力する。
      • 心を指定は、下記の表に従って一文字が一つの心に対応し、出現順が出力の順に対応するものとする。
        G
        重心
        H
        垂心
        I
        内心
        K
        類似重心
        N
        九点円の中心
        O
        外心
        たとえば、コマンドラインオプションに -c GIO があれば、重心、内心、外心の順に出力する。
    参考
    三角形の心
    A = ( 0 , 0 ) ,  B = ( 1 , 0 ) ,  C = ( 107 169 , 8 35 169 ) の場合
    x 座標 y 座標
    頂点A 0.000000000000 0.000000000000
    頂点B 1.000000000000 0.000000000000
    頂点C 0.633136094674 0.280051113992
    重心G 0.544378698225 0.093350371331
    垂心H 0.633136094675 0.829401379566
    内心I 0.615384615385 0.130023731497
    類似重心K 0.657342657343 0.165484749178
    九点円の中心N 0.566568047337 0.277363123390
    外心O 0.500000000000 −0.274675132787

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