Powered by SmartDoc

ソフトウェア概論A/B (2021/09/24)
Ver. 1.0

2021年9月24日
栗野 俊一
kurino@math.cst.nihon-u.ac.jp
http://edu-gw2.math.cst.nihon-u.ac.jp/~kurino/2021/soft/soft.html
ソフトウェア概論 A/B2021年9月24日 の資料

目次

講義資料

当日の OHP 資料

講議中に作成したプログラム

本日の課題

課題プログラム内の「/*名前:ここ*/」の部分を書き換え「/*この部分を完成させなさい*/」の部分にプログラムを追加して、プログラムを完成させます。

課題 20210924-01 : 四角数の計算 ( 再帰版 )

Download : 20210924-01.c

20210924-01.c
/*
 * 20210924-01-QQQQ.c
 *
 *	コンパイル :
 *		cc -c 20210924-01-QQQQ.c
 *		cc -o 20210924-01-QQQQ.exe 20210924-01-QQQQ.o
 *	実行 :
 *		./20210924-01-QQQQ.exe
 */

#include <stdio.h>

/*
 * int quad_number ( int n )
 *		奇数の和で二乗を計算する
 */

int quad_number ( int n ) {

	if ( n <= 0 ) {
		return 0;
	} else {
		/* 再帰呼出し */
		/* n^2 = (n-1)^2 + (2n-1) */

	/*
	**	 この部分を完成させなさい
	*/

	}

}

 /*
 * main
 */

int main ( void ) {

	/*
		sum = 1 + 3 + .. + 9 = 25 = 5^2
	*/

	/* 整数型変数 sum の値を画面に出力 */
	printf ( "1 から %d までの奇数の和は %d です。\n",
			2 * 5 - 1, quad_number ( 5 ) );

	return 0;
}
20210924-01.c の実行結果
$ ./20210924-01-QQQQ.exe
1 から 9 までの奇数の和は 25 です。
$ 

課題 20210924-02 : 四角数の計算 ( while 構文版 )

Download : 20210924-02.c

20210924-02.c
/*
 * TITLE
 *
 * 20210924-02-QQQQ.c
 *
 *	コンパイル :
 *		cc -c 20210924-02-QQQQ.c
 *		cc -o 20210924-02-QQQQ.exe 20210924-02-QQQQ.o
 *	実行 :
 *		./20210924-02-QQQQ.exe
 */

#include <stdio.h>

/*
 * main
 */

int main ( void ) {

	/* 整数型変数 odd の宣言とその初期化 ( 初期値は 1 を指定 ) */
	int odd = 1;
	/* 整数型変数 sum の宣言とその初期化 ( 初期値は 0 を指定 ) */
	int sum = 0;

	/*
		sum = 1 + 3 + .. + 9 = 25 = 5^2
	*/

	/* odd の値が 9 以下の間は繰り返す */

	while ( Q )	{

		/* sum に odd の値を「追加」する */

	/*
	**	 この部分を完成させなさい
	*/


		/* odd の値を次の奇数にする */
		odd = odd + 2;

	}

	/* 整数型変数 sum の値を画面に出力 */
	printf ( "1 から %d までの奇数の和は %d です。\n",
			2 * 5 - 1, sum );

	return 0;
}
20210924-02.c の実行結果
$ ./20210924-02-QQQQ.exe
1 から 9 までの奇数の和は 25 です。
$ 

課題 20210924-03 : ファイルの中の数値の総和

Download : 20210924-03.c

20210924-03.c
/*
 * TITLE
 *
 * 20210924-03-QQQQ.c
 *
 *	コンパイル :
 *		cc -c 20210924-03-QQQQ.c
 *		cc -o 20210924-03-QQQQ.exe 20210924-03-QQQQ.o
 *	実行 :
 *		./20210924-03-QQQQ.exe
 *
 *	ファイルの中の数値の総和
 */

#include <stdio.h>

/*
 * main
 */

int main ( void ) {
	FILE *fp;		/* 入力するファイルへのファイルポインタ値を持つ変数 */
	int num;		/* 入力された一つの整数値を持つ変数 */
	int sum;		/* 合計値 */

	/* ファイル 「num.txt」を、読込モード 「r」で開く (open) */

	/*
	**	 この部分を完成させなさい
	*/


	if ( fp != NULL ) {		/* ファイルのオープンができた */

		sum = 0;	/* 総和を 0 で初期化 */

		while ( fscanf ( fp, "%d", &num ) > 0 ) {	/* データを読み込む */
			  										/* データがある限り.. */
			/* sum に読み込んだ値 (num) を加える */


	/*
	**	 この部分を完成させなさい
	*/

		}

		printf ( "総和は %d です。\n", sum );

		/* ファイルは必ずクローズする */

	/*
	**	 この部分を完成させなさい
	*/

	} else {
		/* エラーメッセージを出力 */
		fprintf ( stderr, "ファイルがオープンできません\n" );
		return -1;		/* エラー終了 */
	}

	return 0;
}
20210924-03.c の実行結果
$ ./20210924-03-QQQQ.exe
総和は 258 です。
$