Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラミングⅠ( 1 組) 第 9 回

Similar presentations


Presentation on theme: "プログラミングⅠ( 1 組) 第 9 回"— Presentation transcript:

1 プログラミングⅠ( 1 組) 第 9 回 http://www.fit.ac.jp/~matsuki/lecture.html

2 オフィス・アワーのお知らせ オフィス・アワーを以下の要領で開講 – 日時:毎週月曜日、 5 時限目(16:2 0~) – 場所: A 棟 4 階 41 番教室 – 内容:プログラミング関連科目

3 タイピングソフト 喰人王を使用して結果を記録する ステージ:第一の店(中華) Excel のシートにスコアを毎回記録してい く – 残り時間 ⇒ FeedBack ページで報告 – 総タイプ数 – ミスタイプ数 – 正確さ ⇒ FeedBack ページで報告 – 喰いっぷり ⇒ FeedBack ページで報告 このシートは,途中で提出してもらいま す

4 今日の内容 関数の概要 関数の定義 関数の呼び出し 変数のスコープ 引数の受け渡し 今日の課題

5 関数の概要 これまで使った関数 – main 関数・ printf 関数・ scanf 関数・ sqrt 関数・ rand 関数... ⇒ C 言語は関数で構成されている C 言語の関数とは,「一連の処理の集ま り」 プログラマが,独自の関数を作ることが できる

6 関数の定義 関数とは? – プログラマが与えた値(材料)を, – 指示通りに処理し, – 結果を吐き出す addnum() a b 5 5 3 3 2 2 addnum() 関数: 2つの整数値の 和を得る addnum() 関数: 2つの整数値の 和を得る 引数 処理の材料 引数 処理の材料 戻り値(返り値) 処理の結果 戻り値(返り値) 処理の結果

7 関数の定義 int addnum(int a, int b) { int x; x = a + b; return x; } 戻り値の型 関数名 型変数名 型 第1引数第2引数 return 文(関数を終了し,後に続く値(戻り値)を返す) a, b という int 型変数が, 引数の値を受け取る addnum の処理内容を ここに書く 引数の数だけ, 「, 」で区切って 変数を用意する

8 関数の定義 戻り値を持たない関数 – 戻り値の型に void (ヴォイド)と指定する void dispnum(int a) { printf(“ 引数の値は %d\n”, a); return; } dispnum() 関数:引数の整数値を表示する 戻り値を指定する必要はない(この場合, return 文はなくても OK) void は「空の」 という意味

9 関数の定義 引数を持たない関数 void hello(void) { printf(“Hello World\n”); } hello() 関数:「 Hello World 」と表示する 「 void hello() 」と書いて も OK

10 関数の呼び出し 関数呼び出しの基本 dispnum( int a ) { … } dispnum ( 5 ) ; 関数の定義 関数の呼び出し 関数名 引数 対応 a の値は5になる

11 #include void dispnum(int a) { printf(“ 引数の値は %d\n”, a); } main() { int x = 10; dispnum( 5 ); dispnum( x ); } 5を引数として, dispnum() を呼び出す 5を引数として, dispnum() を呼び出す x の値 10 を引数として, dispnum() を呼び出す x の値 10 を引数として, dispnum() を呼び出す

12 関数の呼び出し 戻り値を利用する int addnum( int a, int b ) { … } int n; n = addnum ( 2, 3 ) ; 関数の定義 関数の 呼び出し 関数の 呼び出し 対応 関数の戻り値をnに代入する

13 1 #include int addnum(int a, int b) { int x; x = a + b; return x; } main() { int n; n = addnum( 2, 3 ); printf(“ 戻り値は %d\n”, n); } addnum() 関数を実行し, 戻り値をnに格納する addnum() 関数を実行し, 戻り値をnに格納する

14 int func( ) { int y; … } main() { int x; x = 3; y = 5; } 変数のスコープ(有効範囲) ローカル変数:関数の中で定義した変数 変数yのスコープ 変数xのスコープ func() にあるyを 参照することはできない!

15 変数xのスコープ 変数yのスコープ int z; // グローバル変数 int func(... ) { int y; z = 2; } main() { int x; z = 1; } 変数のスコープ(有効範囲) グローバル変数:関数の外で定義した変 数 変数zのスコープ

16 int y; int z; void myfunc(int a) { int z; int x; x = a; y = a; z = a; } main() { int x; x = 10; y = 10; z = 10; printf(“x, y, z の値は %d, %d, %d\n”,x, y, z); myfunc( 5 ); printf(“x, y, z の値は %d, %d, %d\n”,x, y, z); } 同じ名前であっても, ローカル変数は,別の変数と見なす 同じ名前であっても, ローカル変数は,別の変数と見なす ローカル変数xのスコープ グローバル変数と同じ名前の ローカル変数があるときは, ローカル変数が優先される グローバル変数と同じ名前の ローカル変数があるときは, ローカル変数が優先される グローバル変数yとzのスコープ ローカル変数zとxのスコープ

17 プロトタイプ宣言 関数の定義 関数の呼び出し 関数の定義 プロトタイプ宣言: 関数のひな型を呼び出し前に宣言しておく プロトタイプ宣言: 関数のひな型を呼び出し前に宣言しておく

18 プロトタイプ宣言 int addnum(int, int); n = addnum(2, 3); int addnum(int a, int b) { … } 関数の 呼び出し 関数の 呼び出し 関数の定義 プロトタイプ 宣言 プロトタイプ 宣言 戻り値の型 関数名 第1引数の型 第2引数の 型

19 #include void dispnum(int a) { printf(“ 引数の値は %d\n”, a); } main() { int x = 10; dispnum( 5 ); dispnum( x ); }

20 #include void dispnum(int a); main() { int x = 10; dispnum( 5 ); dispnum( x ); } void dispnum(int a) { printf(“ 引数の値は %d\n”, a); } プロトタイプ宣言


Download ppt "プログラミングⅠ( 1 組) 第 9 回"

Similar presentations


Ads by Google