Powered by SmartDoc

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

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

目次

講義資料

当日の OHP 資料

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

サンプルファイル

Download : sample-001.c ( SJIS 版 )

sample-001.c
/*
 * 2014/06/13 sample-001.c
 */

/*
 * 型の違い
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o BASENAME.exe sample-001.c
 *		実行
 *			BASENAME
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 *	main 関数
 */

int main ( void ) {

	/*
	 * 型が違っても表示は同じ
	 */

	 s_print_string ( "整数   : " );
	 s_print_int ( 9 );
	 s_print_newline();

	 s_print_string ( "文字   : " );
	 s_print_char ( '9' );
	 s_print_newline();

	 s_print_string ( "文字列 : " );
	 s_print_string ( "9" );
	 s_print_newline();

	/*
	 * 整数の場合の +1
	 */

	s_print_string ( "整数の計算 : 9 + 1 = " );
	s_print_int ( 9 + 1 );
	s_print_newline();

	/*
	 * 文字の場合の +1
	 */

	s_print_string ( "文字の計算 : '9' + 1 = " );
	s_print_char ( '9' + 1 );
	s_print_newline();

	/*
	 * 文字列の場合の +1
	 */

	s_print_string ( "文字の計算 : \"9\" + 1 = " );
	s_print_string ( "9" + 1 );
	s_print_newline();

	/*
	 * 型によって、計算結果が異る
	 */

	return 0;
}
sample-001.c の実行結果
C:\usr\c>sample-001
整数   : 9
文字   : 9
文字列 : 9
整数の計算 : 9 + 1 = 10
文字の計算 : '9' + 1 = :
文字の計算 : "9" + 1 = 
C:\usr\c> 

Download : sample-002.c ( SJIS 版 )

sample-002.c
/*
 * 2014/06/13 sample-002.c
 */

/*
 * 整数の四則計算式
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o BASENAME.exe sample-002.c
 *		実行
 *			BASENAME
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 *	main 関数
 */

int main ( void ) {

	/*
	 * 加法(足し算)
	 */

	s_print_string ( "12 + 5 = " );
	s_print_int ( 12 + 5 );				/* 整数の 12 と 5 を加える */
	s_print_newline();

	/*
	 * 減法(引き算)
	 */

	s_print_string ( "12 - 5 = " );
	s_print_int ( 12 - 5 );				/* 整数の 12 から 5 を引く */
	s_print_newline();

	/*
	 * 乗法(かけ算)
	 */

	s_print_string ( "12 * 5 = " );
	s_print_int ( 12 * 5 );				/* 整数の 12 に 5 をかける */
	s_print_newline();

	/*
	 * 商法(割り算)
	 */

	s_print_string ( "12 / 5 = " );
	s_print_int ( 12 / 5 );				/* 整数の 12 を 5 で割る */
	s_print_newline();

	/*
	 * 式の優先順位やかっこも利用可能
	 */

	s_print_string ( "1 + 2 * 3 = " );
	s_print_int ( 1 + 2 * 3 );			/* かけ算が優先される */
	s_print_newline();

	s_print_string ( "(1 + 2) * 3 = " );
	s_print_int ( (1 + 2) * 3 );		/* かっこの中の計算が優先される */
	s_print_newline();

	return 0;
}
sample-002.c の実行結果
C:\usr\c>sample-002
12 + 5 = 17
12 - 5 = 7
12 * 5 = 60
12 / 5 = 2
1 + 2 * 3 = 7
(1 + 2) * 3 = 9
C:\usr\c> 

Download : sample-003.c ( SJIS 版 )

sample-003.c
/*
 * 2014/06/13 sample-003.c
 */

/*
 * 文字列の演算式
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o BASENAME.exe sample-003.c
 *		実行
 *			BASENAME
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 *	main 関数
 */

int main ( void ) {

	/*
	 * 文字列への加法
	 */

	s_print_string ( "\"abc\" + 1 = " );
	s_print_string ( "abc" + 1 );				/* 文字列が短くなる */
	s_print_newline();

	/*
	 * 先頭の文字の取出し
	 */

	s_print_string ( "*\"abc\" = " );
	s_print_char ( *"abc" );					/* 先頭の文字が出て来る */
	s_print_newline();

	return 0;
}
sample-003.c の実行結果
C:\usr\c>sample-003
"abc" + 1 = bc
*"abc" = a
C:\usr\c> 

Download : sample-004.c ( SJIS 版 )

sample-004.c
/*
 * 2014/06/13 sample-004.c
 */

/*
 * 関数呼出しを含む形の「式」
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o BASENAME.exe sample-004.c
 *		実行
 *			BASENAME
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 *	main 関数
 */

int main ( void ) {

	/*
	 * 加法(足し算)
	 */

	s_print_string ( "12 + 5 = " );
	s_print_int ( 12 + 5 );				/* 整数の 12 と 5 を加える */
	s_print_newline();

	/*
	 * 減法(引き算)
	 */

	s_print_string ( "12 - 5 = " );
	s_print_int ( 12 - 5 );				/* 整数の 12 から 5 を引く */
	s_print_newline();

	/*
	 * 乗法(かけ算)
	 */

	s_print_string ( "12 * 5 = " );
	s_print_int ( 12 * 5 );				/* 整数の 12 に 5 をかける */
	s_print_newline();

	/*
	 * 商法(割り算)
	 */

	s_print_string ( "12 / 5 = " );
	s_print_int ( 12 / 5 );				/* 整数の 12 を 5 で割る */
	s_print_newline();

	return 0;
}
sample-004.c の実行結果
C:\usr\c>sample-004
12 + 5 = 17
12 - 5 = 7
12 * 5 = 60
12 / 5 = 2
C:\usr\c> 

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

本日の課題

課題 20140613-01 : 二つの整数値をキーボードから入力し、その四則並びに余りを出力する

Download : 20140613-01.c ( SJIS 版 )

20140613-01.c
/*
 * CDATE FILENAME
 *
 *	二つの整数値をキーボードから入力し、その四則並びに余りを出力する
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 * print_int_result
 */

void print_int_result ( char *name, int a, int b, char op, int value ) {

	 s_print_string ( name );
	 s_print_string ( " : " );
	 s_print_int ( a );

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

	 s_print_char ( '=' );
	 s_print_int ( value );
	 s_print_newline();
}

/*
 *	print_int_calc
 */

void print_int_calc ( int a, int b ) {

	 print_int_result ( "和", a, b, '+', a + b );
	 print_int_result ( "差", a, b, '-', a - b );

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

	 print_int_result ( "余り", a, b, '%', a % b );

}

/*
 *	print_int_calc_1
 */

void print_int_calc_1 ( int a ) {

	 print_int_calc ( a, s_input_int() );
}

/*
 *	main
 */

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

	print_int_calc_1 ( s_input_int() );

	return 0;
}
入力例
12
5
20140613-01.c の実行結果
C:\usr\c\> 20140613-01-QQQQ
和 : 12+5=17
差 : 12-5=7
積 : 12*5=60
商 : 12/5=2
余り : 12%5=2
C:\usr\c\> 

課題 20140613-02 : 二つの浮動小数点数値をキーボードから入力し、その四則を出力する

Download : 20140613-02.c ( SJIS 版 )

20140613-02.c
/*
 * CDATE FILENAME
 *
 *	二つの浮動小数点数値をキーボードから入力し、その四則を出力する
 */

#include <stdio.h>

#include "s_input.h"
#include "s_print.h"

/*
 * print_double_result
 */

void print_double_result ( char *name, double a, double b, char op, double \
    value ) {

	 s_print_string ( name );
	 s_print_string ( " : " );
	 s_print_double ( a );

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

	 s_print_char ( '=' );
	 s_print_double ( value );
	 s_print_newline();
}

/*
 *	print_double_calc
 */

void print_double_calc ( double a, double b ) {

	 print_double_result ( "和", a, b, '+', a + b );
	 print_double_result ( "差", a, b, '-', a - b );

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


}

/*
 *	print_double_calc_1
 */

void print_double_calc_1 ( double a ) {

	 print_double_calc ( a, s_input_double() );
}

/*
 *	main
 */

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

	print_double_calc_1 ( s_input_double() );

	return 0;
}
入力例
12.34
5.67
20140613-02.c の実行結果
C:\usr\c\> 20140613-02-QQQQ
和 : 12.340000+5.670000=18.010000
差 : 12.340000-5.670000=6.670000
積 : 12.340000*5.670000=69.967800
商 : 12.340000/5.670000=2.176367
C:\usr\c\> 

Links

その他