プログラミング実習II (2026) 課題

[T4] 第5章 関数(1)

(T4_1)

「キックオフ C言語」の ソースコード 3.3(2乗を求める関数を呼び出す)を入力した上でコンパイルおよび実行し,どのような結果が得られるかをレポートに記せ.さらに,このプログラムに関する以下の1~5の質問に対して考察欄にて詳しく説明せよ.

  1. double f( double x )double 型変数 x は何と呼ばれるか.また, x の値はどのようにして与えられるか.
  2. double f( double x ) の最初の double は実数型を意味するが,何が実数型であるのか.
  3. f 関数の中の "return x * x;" によりどのようなことが行われるか.また,return に続く式の値は何と呼ばれるか.
  4. main 関数の中の result = f(0.5); の "0.5" は何と呼ばれるか.また,この文によりどのような操作が行われているか.
  5. 結局,このプログラムは何をしているのか?
(T4_2)

本問については,プログラムは問題 2 のみを提出し,考察については 1, 2 双方について記すこと.

  1. [リスト 5.1] をコンパイルせよ.コンパイルは失敗するので,どのようなエラーメッセージが表示されるか,それがどういう意味かレポートに記せ.
  2. [リスト 5.3] の powint を以下に示す関数 powint におきかえたプログラムを作成し,教科書と同じ実行結果が得られることを確認せよ.
int powint(int x, int p) // 正整数 x の p 乗を求める関数 powint() の定義
{
    int y = 1;           // 戻り値 y の初期化

    for (int i = 0; i < p; i++) {	// i の値を次々に加算し,p に達するまで繰り返し
        y *= x;
    }

    return y;            // y をこの関数の戻り値とする
}
《補足》 以下に必ず目を通すこと.
(T4_3)

実数 r を引数とし,これを半径とする円の面積を戻り値として返す関数 double area( double r ) を作成せよ.なお,#include <math.h> により,十分な精度の円周率が M_PI により利用できる.作成した関数を用いて,半径が1以上10の整数値である場合の円の面積を表示せよ.関数 area() を呼び出す際に,int 型の半径の値を double 型にキャストすること.

表示例:
          半径が  1 である円の面積は 3.1415926 です.
          半径が  2 である円の面積は           です.半径が 10 である円の面積は           です.
#include <stdio.h>
#include <math.h>

int main( void )
{
	printf("円周率は %.10f\n", M_PI);

	return 0;
}
(T4_4)

2個の整数 xy を引数とし,x3 + x2y + xy2 + y3 を計算して戻り値として返す関数 int comp( int x, int y ) を作成せよ.この関数は return 文の 1 行のみを含むものとする.

main 関数で 2 個の整数の組 a, b に適当な値を代入した上で,a3 + a2b + ab2 + b3を表示する.これを 5 組の整数に対して行うこと.実行後,電卓などを用いて計算結果が確かに正しいことを確認すること.

int comp( int x, int y )
{
	return (ここに適切な式を記述する)
}
表示例:
a = 1, b = 3, 40
a = 2, b = 5, 203
a = 4,b = 7,715
a = ???,b = ???,???
a = ???,b = ???,???

(T4_5)

角度について,単位を度からラジアンに変換するプログラムを作成する.

表示例:
0 度は 0.000000 ラジアン
30 度は 0.523599 ラジアン
60 度は 1.047198 ラジアン
90 度は 1.570796 ラジアン
120 度は 2.094395 ラジアン
150 度は 2.617994 ラジアン
180 度は 3.141593 ラジアン
(T4_6)

キックオフ C 言語, p. 42,3.4節,ソースコード3.7 を参考にして,三角形の 3 辺の長さが与えられたとき,その三角形の面積を表示するプログラムを作成し,実行結果が正しいことを確認せよ.

その上で,キックオフ C 言語, p. 52,3章 章末問題 7 に解答せよ.すなわち,このプログラムにおいて printf("s=%g\n", s); を挿入できる行の範囲を理由とともにレポートにて説明せよ.