プログラミング実習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 :