Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

本日の課題

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

課題 20210625-01 : 異る国の挨拶をする ( switch 構文 版 )

Download : 20210625-01.c

20210625-01.c
/*
 * 課題 CNAME-01
 *
 * CDATE FILENAME
 *
 *	キーボードから一文字入力し、その文字によって異る国の挨拶をする
 */

#include <stdio.h>

/*
 * hello ( char contry )
 *	char contry : 国を表す一文字
 *		j : 日本
 *		e : 英語
 *		c : 中国
 *		f : フランス語
 *		g : ドイツ語
 */

void hello ( char cmd ) {

	switch ( cmd ) {
	case 'j':					/* 'j' の時は、日本語にする */
		printf ( "こんにちは\n" );
		break;
    case 'e':					/* 'e' の時は、英語にする */

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

		break;
	case 'c':					/* 'c' の時は、中国語にする */
		printf ( "ニイハオ\n" );

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

	case 'f':					/* 'f' の時は、フランス語にする */
		printf ( "Bonjour\n" );
		break;

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

		printf ( "Guten tag\n" );
		break;
	default:					/* どれでもなければ.. */
		printf ( "???\n" );
		break;					
	}
}

/*
 *	main
 */

int main( void )
{

	printf ( "国を表す文字を入力してください\n" );
	printf ( "\tj\t日本\n" );
	printf ( "\te\t英語\n" );
	printf ( "\tc\t中国\n" );
	printf ( "\tf\tフランス\n" );
	printf ( "\tg\tドイツ\n" );

	hello ( getchar() );	/* getchar() で文字を入力し、それに対応する結果を出す */

	 return 0;
}
入力例
f
20210625-01.c の実行結果
$ ./20210625-01-QQQQ.exe
国を表す文字を入力してください
	j	日本
	e	英語
	c	中国
	f	フランス
	g	ドイツ
Bonjour
$ 

課題 20210625-02 : if 構文の入れ子 ( 文字種を判定する関数 )

Download : 20210625-02.c

20210625-02.c
/*
 * 20200710-02-QQQQ.c
 *	三つの整数値の内、真ん中の数値を返す関数
 */

#include <stdio.h>
#include "s_input.h"
#include "s_print.h"

/*
 *  middle
 *	引数で指定された三つの数値の内、真ん中の数値を返す関数
 */

int middle ( int a, int b, int c ) {

	if ( a >= b ) {
		if ( b >= c ) {
			/* a >= b >= c となるので、真ん中の数値は b */
			return b;
		} else if ( a >= c ) {
			/* a >= c > b となるので、真ん中の数値は c */

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

		} else {
			/* c > a > b となるので、真ん中の数値は a */
			return a;
		}
	} else if ( c >= b ) {
		/* c >= b > a となるので、真ん中の数値は b */
		return b;

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

	} else {
		/* b > c > a となるので、真ん中の数値は c */
		return c;
	}
}

/*
 * main
 */

int main ( void ) {

	s_print_string ( "キーボードから三つの整数値を入力すると、真ん中の数値を表示します\n" );

	s_print_int ( middle ( s_input_int(), s_input_int(), s_input_int() ) );
	s_print_newline();

	return 0;
}
入力例
10
30
20
20210625-02.c の実行結果
$ ./20210625-02-QQQQ.exe
キーボードから三つの整数値を入力すると、真ん中の数値を表示します
10
30
20
20
$