Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

本日の課題

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

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

Download : 20200925-01.c

20200925-01.c
/*
 * 20200925-01-QQQQ.c
 */

#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;
}
20200925-01.c の実行結果
$ ./20200925-01-QQQQ.exe
1 から 9 までの奇数の和は 25 です。
$ 

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

Download : 20200925-02.c

20200925-02.c
/*
 * 20200925-02-QQQQ.c
 *	四角数の計算 ( while 構文 版 )
 */

#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;
}
20200925-02.c の実行結果
$ ./20200925-02-QQQQ.exe
1 から 9 までの奇数の和は 25 です。
$ 

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

Download : 20200925-03.c

20200925-03.c
/*
 * 20200925-03-QQQQ.c
 *	ファイルの中の数値の総和
 */

#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;
}
20200925-03.c の実行結果
$ ./20200925-03-QQQQ.exe
総和は 258 です。
$