プログラミング実習II (2025) 課題
[T4] 第5章 関数(1)
(T4_1) 本問については,プログラムは問題 2 のみを提出し,考察については 1, 2 双方について記すこと.
int powint(int x, int p) // 正整数x の p 乗を求める関数 powint() の定義
{
int i;
int y = 1; // 戻り値 y の初期化
for ( i = 0; i < p; i++ ) { // i の値を次々に加算し,p に達するまで繰り返し
y *= x;
}
return y; // y をこの関数の戻り値とする
}
|
(T4_2)
以下のプログラムを手入力した上でコンパイルおよび実行し,どのような結果が得られるかをレポートに記せ(このプログラムは「キックオフ C言語」のソースコード 3.2 に変更を加えたものです).
さらに,このプログラムに関する以下の1〜6の質問に対して考察欄にて詳しく説明せよ.
#include <stdio.h>
int square( int x ){
int y;
y = x * x;
return y;
}
int main(void){
int i;
int z;
for( i = 0; i < 10; i++ ){
z = square( i );
printf("(%d, %d) \n", i, z );
}
return 0;
}
|
(T4_3)
前問のプログラムは,簡単な式を扱う場合や表示のみが目的であれば,以下のように簡潔に書くこともできる.前問との相違に注意しながら,これを手入力し,コンパイル,実行して出力を確認せよ.
#include <stdio.h>
int square( int x ){
return x * x;
}
int main( void ){
for( int i = 0; i < 10; i++ ){
printf("(%d, %d) \n", i, square( i ) );
}
return 0;
}
|
(T4_4) 半径が与えられたとき,円の面積(半径の2乗と円周率の積)を求めて表示するプログラムを作成せよ.ただし関数 area は,半径を引数とし,面積を戻り値とする.
表示例: 半径 1.0 の円の面積は ??????? 半径 3.0 の円の面積は ??????? 半径 5.0 の円の面積は ??????? 半径 7.0 の円の面積は ???????
#include <stdio.h>
#include <math.h>
double area( double r ){
double s;
printf("pi = %.10f\n", M_PI);
return s;
}
int main( void )
{
double r, a;
scanf("%lf", &r);
printf(" 半径 %f の円の面積は %f \n", r, a );
return 0;
}
|
(T4_5)
2個の整数 x,y を入力(引数)とし,x3 + 3 x2y + 3 xy2 + y3 を計算して出力する(戻り値として返す)関数 int comp( int x, int y ) を作成せよ.
次に,整数 x を引数とし,その 3 乗 x3 を計算して戻り値とする関数 int cubic( int x ) を作成せよ.
最後に,main 関数の中で,キーボードから 2 個の整数を受け取り,int 型の変数 a および b に代入する.
a と b の和の 3 乗 (a+b)3 を関数 comp を用いて計算した結果と,関数 cubic を用いて計算した結果を表示し,それらが一致することを確認せよ(様々な a と b の値に対して検証すること).
(T4_6)
1以上10以下の数に対してそれぞれの 3 乗を表示するプログラムを作成せよ.
3 乗の計算には,(T4_1) で扱った関数 powint を使用し,powint を呼び出す際には for 文を用いること.
表示例
i i^3
------------
1 1
2 8
3 27
4 64
5 125
: