Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

本日の課題

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

課題 20201002-01 : コマンドラインで指定された整数値の総和を計算する

Download : 20201002-01.c

20201002-01.c
/*
 * 20201002-01-QQQQ.c
 *
 * コマンドラインで指定された整数値の総和を計算する
 */

#include <stdio.h>

 /*
 * main
 */

int main ( int argc, char *argv[] ) {
	int sum = 0;	/* 総和の値を保持する変数 */
	int n = 1;		/* 現在参照している引数の番号 */

	while ( n < argc ) {				/* 引数のある限り */
		/* その引数の文字列を整数値に変換し、加える */

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

		/* 次の引数を参照するために、参照する番号を増やす */
		n = n + 1;
	}

	/* 結果を出力 */
	printf ( "引数で指定された整数値並びの総和は %d です。\n", sum );

	return 0;
}
20201002-01.c の実行結果
$ ./20201002-01-QQQQ.exe 123 456 789
引数で指定された整数値並びの総和は 1368 です。
$ 

課題 20201002-02 : コマンドラインでファイル名を指定して、画面に表示する

Download : 20201002-02.c

20201002-02.c
/*
 * 20201002-02-QQQQ.c
 *	コマンドラインでファイル名を指定して、画面に表示する
 */

#include <stdio.h>

/*
 * main
 */

int main ( int argc, char *argv[] ) {
	FILE *fp;
	int ch;			/* 入力される文字コード */

	/* 引数が指定されているかどうかを判定 */

	if ( argc < 1 ) {	/* 引数がない */
		fprintf ( stderr, "引数を指定してください\n" );
		return -1;
	}

	/* 最初の引数をファイル名として open  (二つ目以後は無視) */

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


	/* ファイルが open できたかどうかを判定 */
	if ( fp == NULL ) {
		fprintf ( stderr, "ファイル(%s)の open に失敗しました\n", argv[1] );
		return -2;
	}

	/* 最初の一文字を読み込む */

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


	while ( ch != EOF ) {	/* EOF は、ファイルの終りを表す整数値 */
		/* 画面に入力した文字を出力 */
		putchar ( ch );

		/* 次の一文字を読み込む */
		ch = fgetc ( fp );
	}

	fclose ( fp );

	return 0;		/* 正常終了 */
}
20201002-02.c の実行結果
$ ./20201002-02-QQQQ.exe sample.txt
This is sample data.
2 lines includes.
$