Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

本日の課題

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

課題 20211015-01 : 0 〜 99 の偶数を出力する (for 構文 版)

Download : 20211015-01.c

20211015-01.c
/*
 * 20211015-01-QQQQ.c
 *
 *	0 〜 99 の偶数を出力する (for 構文 版)
 *
 *	コンパイル :
 *		cc ' -c 20211015-01-QQQQ.c
 *		cc -o 20211015-01-QQQQ.exe 20211015-01-QQQQ.o
 *	実行 :
 *		./20211015-01-QQQQ.exe
 *
 */

#include <stdio.h>

/*
 *	二つのアプローチを考える
 *		a) 0 〜 99 の整数を考え、その中から偶数だけを出力する
 *			問題の条件 ( 0 〜 99, 偶数 ) をそれぞれ別に考える
 *			基本的な発想で、まず、これができるようにする
 *		b) はじめから 0 〜 99 の偶数だけを考えるようにする
 *			効率的だが、汎用性に欠ける
 */

/*
 * print_even_a()
 *	a) 実直版:
 *		for 構文で、パラメータ変数を 0 から 99 の整数値とする
 *		それが偶数だったら、出力する (if 構文を使う)
 */

void print_even_a ( void ) {
	int n;		/* for 構文のパラメータ */

	for ( n = 0; /* p:ここ */; n++ ) {				/* n を 0 〜 99 の値にする */
		if ( /* q:ここ */ ) {				/* 偶数だったら.. */
			printf ( "%d\n", n );
		}
	}

}

/*
 * print_even_b()
 *	b) 効率版:
 *		for 構文で、パラメータ変数を 0 から 99 の偶数値だすようにする
 */

void print_even_b ( void ) {
	int n;		/* for 構文のパラメータ */

	for ( n = 0; /* p:ここ */; /* r:ここ */ ) {		/* n を 0 〜 99 の偶数値にする */
		printf ( "%d\n", n );
	}

}

/*
 * main
 */

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

	printf ( "a) 実直版:\n" );
	print_even_a();

	printf ( "b) 効率版:\n" );
	print_even_b();

	return 0;
}
20211015-01.c の実行結果
$ ./20211015-01-QQQQ.exe
a) 実直版:
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
b) 効率版:
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
$