Powered by SmartDoc

ソフトウェア概論A/B (2013/11/15)
Ver. 1.0

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

目次

講義資料

当日の OHP 資料

当日のOHP資料です。

講義で利用するサンプルプログラム

サンプルファイル

Download : sample-001.c ( SJIS 版 )

sample-001.c
/*
 * 2013/11/15 sample-001.c
 */

/*
 *  グローバル(大域)変数の利用
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-001.exe sample-001.c
 *		実行
 *			sample-001
 */

#include <stdio.h>

/*
 * 大域変数 (call_count) の宣言
 */

int call_count = 0;		/* 関数を何度呼出したか ? */

/*
 * 関数 print_message
 *	void print_message ( char *string )
 *		指定された文字列を表示する
 *		呼び出された回数を記録するために、大域変数 (call_count) を変更する
 *		返り値 : なし
 */

void print_message ( char *string ) {

	call_count++;	/* 1 度呼出し度に、1 増やす */

	printf ( "(call %d times) 文字列 : %s\n", call_count, string );

}

/*
 * 関数 print_three_times_message
 *	void print_three_times_message ( char *string )
 *		指定された文字列を 3 度表示する
 *		print_message を 3 度呼び出す事で実現
 *		返り値 : なし
 */

void print_three_times_message ( char *string ) {

	print_message ( string );
	print_message ( string );
	print_message ( string );

}

/*
 *	main (関数を呼ぶだけ)
 */

int main( int argc, char *argv[] )
{

	printf ( "最初 : %d\n", call_count );		

	print_message ( "最初の呼出し" );
	printf ( "呼出し回数が増えている : %d\n", call_count );

	print_message ( "もう一度" );
	printf ( "呼出し回数が更に増えている : %d\n", call_count );

	print_three_times_message ( "間接的な呼出し" );
	printf ( "間接的でも呼出し回数の増加が確認できる : %d\n", call_count );

	return 0;
}
sample-001.c の実行結果
C:\usr\c>sample-001
最初 : 0
(call 1 times) 文字列 : 最初の呼出し
呼出し回数が増えている : 1
(call 2 times) 文字列 : もう一度
呼出し回数が更に増えている : 2
(call 3 times) 文字列 : 間接的な呼出し
(call 4 times) 文字列 : 間接的な呼出し
(call 5 times) 文字列 : 間接的な呼出し
間接的でも呼出し回数の増加が確認できる : 5
C:\usr\c> 

Download : sample-002.c ( SJIS 版 )

sample-002.c
/*
 * 2013/11/15 sample-002.c
 */

/*
 *  グローバル(大域)変数とローカル変数の違い
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-002.exe sample-002.c
 *		実行
 *			sample-002
 */

#include <stdio.h>

/*
 * 大域変数 (call_count) の宣言
 */

int call_count = 0;		/* 関数を何度呼出したか ? */

/*
 * 関数 print_message
 *	void print_message ( char *string )
 *		指定された文字列を表示する
 *		呼び出された回数を記録するために、大域変数 (call_count) を変更する
 *		返り値 : なし
 */

void print_message ( char *string ) {

	call_count++;	/* 1 度呼出し度に、1 増やす */

	printf ( "(call %d times) 文字列 : %s\n", call_count, string );

}

/*
 * 関数 print_three_times_message
 *	void print_three_times_message ( char *string )
 *		指定された文字列を 3 度表示する
 *		print_message を 3 度呼び出す事で実現
 *		返り値 : なし
 */

void print_three_times_message ( char *string ) {

	print_message ( string );
	print_message ( string );
	print_message ( string );

}

/*
 *	main (関数を呼ぶだけ)
 */

int main( int argc, char *argv[] )
{

	printf ( "最初 : %d\n", call_count );		

	print_message ( "最初の呼出し" );
	printf ( "呼出し回数が増えている : %d\n", call_count );

	print_message ( "もう一度" );
	printf ( "呼出し回数が更に増えている : %d\n", call_count );

	print_three_times_message ( "間接的な呼出し" );
	printf ( "間接的でも呼出し回数の増加が確認できる : %d\n", call_count );

	return 0;
}
sample-002.c の実行結果
C:\usr\c>sample-002
最初 : 0
(call 1 times) 文字列 : 最初の呼出し
呼出し回数が増えている : 1
(call 2 times) 文字列 : もう一度
呼出し回数が更に増えている : 2
(call 3 times) 文字列 : 間接的な呼出し
(call 4 times) 文字列 : 間接的な呼出し
(call 5 times) 文字列 : 間接的な呼出し
間接的でも呼出し回数の増加が確認できる : 5
C:\usr\c> 

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

本日の課題

ありません