Powered by SmartDoc

ソフトウェア概論A/B (2016/06/03)
Ver. 1.0

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

目次

講義資料

当日の OHP 資料

Download

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

Download : sample-001.c ( utf8 版 )

sample-001.c
/*
 * 2016/06/03 sample-001.c
 */

/*
 * コマンドライン引数
 */

#include <stdio.h>

/*
 * main 関数
 */

int main ( int argc, char *argv[] ) {	/* main 関数の引数が変化 */
	/*
		main 関数の引数は、どちらでも良い
		「引数を宣言」する事により、「利用が可能」になる
	*/

	/*
		このプログラムを実行する場合は
			./sample-001.c.exe abc
		の様に、コマンド引数を指定する必要がある

		コマンドラインを指定しなかったりすると、
		エラー (core dumped) になったりする。
	*/

	printf ( "一つ目のコマンドライン引数は「" );
	printf ( argv[1] );
	printf ( "」でした。\n" );

	return 0;
}
sample-001.c の実行結果
$ ./sample-001.exe abc
一つ目のコマンドライン引数は「abc」でした。
$ 

Download : sample-002.c ( utf8 版 )

sample-002.c
/*
 * 2016/06/03 sample-002.c
 */

/*
 * コマンドライン引数 (2)
 */

#include <stdio.h>

/*
 * main 関数
 */

int main ( int argc, char *argv[] ) {	/* main 関数の引数が変化 */
	/*
		このプログラムを実行する場合は
			./sample-002.c.exe abc 123 zzzzz
		の様に、コマンド引数を 2 つ以上、指定する必要がある
	*/

	printf ( "プログラムファイル名は「" );
	printf ( argv[0] );					/* argv[0] はプログラムファイル名 */
	printf ( "」でした。\n" );

	printf ( "一つ目のコマンドライン引数は「" );
	printf ( argv[1] );
	printf ( "」でした。\n" );

	printf ( "二つ目のコマンドライン引数は「" );
	printf ( argv[2] );
	printf ( "」でした。\n" );

	return 0;
}
sample-002.c の実行結果
$ ./sample-002.exe abc 123 zzzz
プログラムファイル名は「./sample-002.exe」でした。
一つ目のコマンドライン引数は「abc」でした。
二つ目のコマンドライン引数は「123」でした。
$ 

Download : sample-003.c ( utf8 版 )

sample-003.c
/*
 * 2016/06/03 sample-003.c
 */

/*
 * 再起の利用
 */

#include <stdio.h>

/*
 * triangle ( N ) -- サイズ N の三角を作る
 */

void triangle ( char *N ) {

	if ( !strcmp ( N, "" ) ) {	/* サイズ 0 の時 */
		/* 何もしない */
	} else {					/* サイズが一般の N の時 */
		triangle ( N + 1 );		/* 文字列は 1 を加えると短かくなる */
								/* 再起呼び出し */
		printf ( N );			/* N を表示 */
		printf ( "\n" );		/* 改行 */
	}
}

/*
 * main 関数
 */

int main ( void ) {	/* main 関数の引数を利用しないので */

	triangle ( "***" );		/* サイズ 3 の三角 */

	printf ( "---\n" );		/* 仕切り */
	
	triangle ( "1234567" );		/* サイズ 7 の三角 */

	return 0;
}
sample-003.c の実行結果
$ ./sample-003.exe
*
**
***
---
7
67
567
4567
34567
234567
1234567
$ 

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

本日の課題

課題 20160603-01 : 高さ 3 のハノイを解く

課題 20160603-02 : コマンドライン引数で指定した高さのハノイを解く