2017年度「プログラミング言語1」「プログラミング言語演習」のページ

練習問題

2017年6月2日出題
  1. 2016年4月14日出題の課題1aの各問の解答を、心の座標の計算を関数として独立させた形で書き直せ。

    • 心の座標の計算を行う関数は、それ以外の動作はいっさい行ってはならない。たとえば、入出力などを行ってはならない。
    • 下請けの関数を別に作成して使用することは、かまわない。
    1. 心の座標の計算を行う関数を以下の形式にせよ。

      void
      関数名(double x1, double y1, double x2, double y2, double x3, double y3, double *xp, double *yp);
      	    
      x1 頂点 \(A\) の \(x\) 座標
      y1 頂点 \(A\) の \(y\) 座標
      x2 頂点 \(B\) の \(x\) 座標
      y2 頂点 \(B\) の \(y\) 座標
      x3 頂点 \(C\) の \(x\) 座標
      y3 頂点 \(C\) の \(y\) 座標
      *xp 心の \(x\) 座標を代入
      *yp 心の \(y\) 座標を代入
    2. 心の座標の計算を行う関数を以下の形式にせよ。

      void
      関数名(const double *a, const double *b, const double *c, double *p);
      	    
      a[0] 頂点 \(A\) の \(x\) 座標
      a[1] 頂点 \(A\) の \(y\) 座標
      b[0] 頂点 \(B\) の \(x\) 座標
      b[1] 頂点 \(B\) の \(y\) 座標
      c[0] 頂点 \(C\) の \(x\) 座標
      c[1] 頂点 \(C\) の \(y\) 座標
      p[0] 心の \(x\) 座標を代入
      p[1] 心の \(y\) 座標を代入
    3. 心の座標の計算を行う関数を以下の形式にせよ。

      void
      関数名(const double *a, double *p);
      	    
      a[0] 頂点 \(A\) の \(x\) 座標
      a[1] 頂点 \(A\) の \(y\) 座標
      a[2] 頂点 \(B\) の \(x\) 座標
      a[3] 頂点 \(B\) の \(y\) 座標
      a[4] 頂点 \(C\) の \(x\) 座標
      a[5] 頂点 \(C\) の \(y\) 座標
      p[0] 心の \(x\) 座標を代入
      p[1] 心の \(y\) 座標を代入
    4. 心の座標の計算を行う関数を以下の形式にせよ。

      void
      関数名(const double (*a)[2], double *p);
      	    
      a[0][0] 頂点 \(A\) の \(x\) 座標
      a[0][1] 頂点 \(A\) の \(y\) 座標
      a[1][0] 頂点 \(B\) の \(x\) 座標
      a[1][1] 頂点 \(B\) の \(y\) 座標
      a[2][0] 頂点 \(C\) の \(x\) 座標
      a[2][1] 頂点 \(C\) の \(y\) 座標
      p[0] 心の \(x\) 座標を代入
      p[1] 心の \(y\) 座標を代入

      補足「const double (*a)[2];

  2. 魔方陣についての解説を読み、以下の問題を解け。

    並べられた整数はintで表現できる範囲に収まり、縦・横・斜めの和もintで表現できる範囲に収まると仮定してよい。

    1. 4×4の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。

    2. 5×5の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。

    3. 6×6の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。

    4. 7×7の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。

    5. 8×8の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。

    6. 9×9の正方形状に並べられた整数を入力し、完全魔方陣ならば3を、魔方陣だが完全魔方陣でなければ2を、半魔方陣だが魔方陣でなければ1を、半魔方陣でなければ0を出力するプログラムを書け。


戻る
奈良女子大学生活環境学部情報衣環境学科生活情報通信科学コース