Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

本日の課題

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

課題 20210528-01 : 与えられた文字列の文字を二度ずつ出力する関数を作成する

Download : 20210528-01.c

20210528-01.c
/*
 * 20210528-01-QQQQ.c
 *	与えられた文字列の文字を二度ずつ出力する関数を作成する
 */

#include <stdio.h>
#include <strings.h>

/*
 * double_print
 *	与えられた文字列(message)の文字を二度ずつ出力する
 */

void double_print ( char *message ) {

  if ( !strcmp ( message, "" ) ) {	/* 空文字列だった */
	/* なにもする必要はない */
  } else {
  	putchar ( *message );			/* 取り敢えず、一つ分は出す */

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

	double_print ( message + 1 );	/* 再帰呼出しをする */
  }

}

/*
 * main
 */

int main ( void ) {

	double_print ( "abc" );

	printf ( "\n" );

	double_print ( "1234567" );

	printf ( "\n" );

	return 0;
}
20210528-01.c の実行結果
$ ./20210528-01-QQQQ.exe
aabbcc
11223344556677
$ 

課題 20210528-02 : 与えられた文字列を逆順に出力する関数を作成する

Download : 20210528-02.c

20210528-02.c
/*
 * 20210528-02-QQQQ.c
 *	与えられた文字列の文字を逆順に出力する関数を作る
 */

#include <stdio.h>
#include <strings.h>

/*
 * reverse_print
 *	与えられた文字列(message)の文字を逆順に出力する
 */

void reverse_print ( char *message ) {

  if ( !strcmp ( message, "" ) ) {	/* 空文字列だった */
	/* なにもする必要はない */
  } else {
	/* ここで再帰呼出しを行うのだが... */

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

  }

}

/*
 * main
 */

int main ( void ) {

	reverse_print ( "abc" );

	printf ( "\n" );

	reverse_print ( "1234567" );

	printf ( "\n" );

	return 0;
}
20210528-02.c の実行結果
$ ./20210528-02-QQQQ.exe
cba
7654321
$