プログラミング入門 • 小テスト (5分ほど) • 小テストの解答 • 今回の講義内容: 関数Ⅰ プログラム入門(第9回) 1 プログラミング入門 • • • • • • • • • • • • • 1 2 3 4 5 6 7 8 9 10 11 12 13 授業概要 プログラムの作成から実行まで (教科書 1.1~1.6, 2.1) 変数と標準入出力 (教科書 3.1~3.2,2.2,2.4,6.4) 演算子 (教科書 4.1~4.9) 制御文,条件判断と分岐 (教科書 5.1~5.2,5.6~5.7) 繰り返し処理 (教科書 5.3~5.5,5.8) 配列と文字列 (教科書 3.3~3.4) 2次元配列 (教科書 3.3) 関数Ⅰ (教科書 7.1~7.3) 関数Ⅱ (教科書 7.4) 構造体 (教科書 9.1) ファイルの入出力 (教科書 12.1~12.3) プログラミング評価 プログラム入門(第9回) 2 補講のお知らせ • 12月に補講を以下の様に致します – 12月13日 3限 第9回 – 12月22日 2限 第11回 プログラム入門(第9回) 本日 3 Program language C • Function 今回の学習の目標 •関数について •main関数とその他の関数との違い •関数のデータの受け渡し プログラム入門(第9回) 4 p.166 関数とは.. • それを呼び出すと何かの仕事をする – 仕事をした後,値を返す場合がある (戻り値) 画面に “computer”と いう文字を表示して! ① main 関数 終わったよ! これが戻り値 画面に “computer” という文字を表示 ② ③ computer printf 関数 プログラム入門(第9回) 5 main 関数とその他の関数 main 関数 scanf 関数 printf 関数 自作 関数 ・ ・ scanf や printf も 何か仕事をしているので 関数と言える. そして.... 自分で何か仕事をする 関数を作ることもできる. 自分で関数を作るには... プログラム入門(第9回) 6 p.23 C 言語の構造は.. 外部変数の宣言 ; データ型 関数名(引数) { 内部変数の宣言 ; 実行文 ; } void main( void ) { 内部変数の宣言 実行文 ; } 自作関数 プログラム全体 Main 関数 プログラム入門(第9回) C言語のプログラムは 関数の集まりである 7 関数を使う mainも関数である void main( void ) { test1( ) ; test2( ) ; } 使いたい関 数を記述 ・見やすくなる ・機能毎にまとめられれる ・使い回しができる void test1(void) { ….. return ; } 機能を関数として定義 void test2(void) { ….. return ; } プログラム入門(第9回) 8 C の記述例 #include “stdio.h” int fa(x) { (実行文) } void main( void ) { (実行文) } 種々の宣言が含まれるファイル 呼び出される関数を先に書く (例えば自作関数など) 呼び出す側の関数は後 void : 引数を持たない プログラム入門(第9回) 9 関数の使用例 データ型 関数名 引数 int fa( int x ) { int y ; y=2*x*x+6*x+4; return (y) ; } void main( void ) { int a, i ; for ( i=0 ; i<=10 ; i++ ) { a = fa( i ) ; printf ( “i -> %d, fa -> %d\n”, i, a ) ; } } プログラム入門(第9回) 10 p.170 関数の構成 戻り値の型 関数名 (仮引数およびその宣言) { 内部変数の宣言 ; 関数の最初と終わりに ..... { と } が必要 実行文 ; ..... return 戻値 ; } プログラム入門(第9回) 11 p.170 関数の記述例 データ型 関数名 fa(x) = 2x2 + 6x + 4 関数 入力 処理内容 int fa( int x ) 仮引数とその宣言 { int y ; 変数の宣言 y=2*x*x+6*x+4; 処理内容 return (y) ; } 関数 fa の結果(戻り値) プログラム入門(第9回) 12 p.170 データ型 戻り値の型 関数名 (仮引数) 関数も変数と同様にデータ型を持つ. これは関数の戻り値がどの様なデータ型式をもって返され るかを示すものである. 戻り値は使わないときもある( p.171) char, int , long, float, double, unsigned, void 等々... 省略すると int 型と見なされる. プログラム入門(第9回) 13 戻り値と関数の例 void main( void ) { int a, i ; for ( i=0 ; i<=10 ; i++ ) { a = fa( i ) ; printf ( “i -> %d, fa -> %d\n”, i, a ) ; } } ① i の値を渡す fa( i ); ③ 結果を変数 a に入れる ②答え データ型 関数名 引数 int fa( int x ) { int y ; y=2*x*x+6*x+4; return (y) ; } i に基づいた yの算出 これが 戻り値 プログラム入門(第9回) 14 関数名 戻り値の型 関数名 (仮引数) • • • • 関数名はそれぞれつける わかりやすい関数名にすること 同じ関数名はつけないこと 関数名には英数字とハイフン“-”,アンダーバー“_” が使 える プログラム入門(第9回) 15 p.169 関数のデータの受け渡し 戻り値の型 関数名 (仮引数) • 関数のデータの受け渡し方法 – Call by Value 方式 関数の呼び出し側 変数 a 引数名 (例) void menseki (int tate, int yoko) 値(value) を渡す { ・・・・・ データ型 } 変数 b 呼び出される 関数側 その他アドレスを渡す方式がある プログラム入門(第9回) 16 仮引数と関数の例 void main( void ) { int a, i ; for ( i=0 ; i<=10 ; i++ ) { a = fa( i ) ; printf ( “i -> %d, fa -> %d\n”, i, a ) ; } } データ型 関数名 引数 int fa( int x ) { int y ; y=2*x*x+6*x+4; return (y) ; } ① i の値を渡す fa( i ); ③ 結果を変数 a に入れる ②答え i に基づいた yの算出 これが 仮引数 プログラム入門(第9回) 17 記述例 • 事例 – 基本事例 • 三角形と四角形の面積を求める (no9_sample1) • p.170 のリストについて隣の人に説明する – maxdt関数とdisp_sqrt関数は main 関数の前に書かれていると 考える。なお,プロトタイプ宣言は今は考えなくて良い。 – 応用事例 • 常微分方程式 • 画像フィルタ処理プログラム プログラム入門(第9回) 18 課題 • • • • キーボードから実数を5個入力し,その入力データのう ち3つのデータから実数の平均値をもとめる. 求める平均は最初のデータから3個分,次のデータから 3個分および3番目のデータから3個分の計3種類とす る. 平均をするプログラムは関数化すること.このとき,ど のようにプログラムを分割するかを熟考すること.引数 で値を渡すようにすること。 入力データ – – • 1.1 1.2 1.3 1.4 1.5 さらに自分で考えた値 それぞれの確認データ毎に画面に出力した結果とソー スファイルをwebrep に登録のこと 1 2 3 4 5 [1] [2] [3] プログラム名 prog9a.c 画面出力 prog9a.txt • 期限:来週の月曜日 18時まで (第7回の課題を元にしてみること) プログラム入門(第9回) 19 参考資料 プログラム入門(第9回) 20 C言語の関数 • 関数 – 入力に対してある処理を行い出力をする – Black Box : 値を与えるだけで結果が得られる 出力のデータ型 入力のデータ型 入力 出力 関数 (引数) 関数のデータ型 fa(x) = 2x2 + 6x + 4 関数 入力 プログラム入門(第9回) 処理内容 21
© Copyright 2024 ExpyDoc