プログラミング入門 • 小テスト (10分ほど) • 小テストの解答 • 今回の講義内容: 関数Ⅱ プログラム入門(第10回) 1 補講のお知らせ • 12月に補講を以下の様に致します – 12月13日 3限 第9回 – 12月22日 2限 第11回 プログラム入門(第10回) 2 プログラミング入門 • • • • • • • • • • • • • 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) プログラミング評価 プログラム入門(第10回) 3 Program language C • Local variable value & Grobal variable value 今回の学習の目標 •プロトタイプ宣言 •ローカル変数とグローバル変数について •ローカル変数とグローバル変数との違い •双方の変数の使い方 プログラム入門(第10回) 4 C言語の構造 自作関数 基本的に自作関数は main 関数より 上に記述 これは使う自作関数の型や引数の 数等の情報を main 関数で認識する ためである. main 関数 プログラム入門(第10回) 5 C言語の構造 もし,自作関数を main 関数より 下に記述すると... main 関数 使う自作関数の型や引数の数等の情報が main 関数で認識できないため, 型は int として,引数は無しとして main 関 数の中で扱う. 自作関数 後で自作関数と合わなくなりコンパイルエ ラーとなる. プログラム入門(第10回) 6 p.173 プロトタイプ宣言 プロトタイプ宣言とは 自分で作った関数の呼び出しが行われる前 に,呼び出した関数に対して – 戻り値 – 引数の数とデータ型 の情報を伝える. プロトタイプ宣言を使うと,自作関数は main 関数の下に記述できる. プログラム入門(第10回) 7 C言語の構造 プロトタイプ宣言 関数の情報 使う関数の情報がこの中に あるので,main 関数では正 しく自作関数を使うことがで きる. main 関数 自作関数 プログラム入門(第10回) 8 p.174 プロトタイプ宣言の記述 include <stdio.h> これがプロトタイプ宣言 double maxdt( double a, double b); int main( void ) { 自作関数の先頭行に;をつけて, 上にもっていく double data1, data2; ... maxdt( data1, data2 ); } double maxdt( double a , double b ) { ... } プロトタイプ宣言によって 呼び出す側(main関数) では どんな関数を呼び出すかが わかる. プログラム入門(第10回) 9 p.174 プロトタイプ宣言の記述方法 戻り値の型 関数名 (引数型 引数名 ...); double maxdt( double a, double b); セミコロンを忘れないように 自作関数の最初の部分を copy してくればOK プログラム入門(第10回) 10 プロトタイプ宣言がないと.. include <stdio.h> int main( void ) { double data1, data2; ... maxdt( data1, data2 ); 戻り値があるか,引数のデ ータ型とかがわからない. わからないから,仮にint 型 と勝手に解釈しする. } double maxdt( double a , double b ) { コンパイルのときにエラー か警告がでる ... } sample.c(15) : error C2371: 'maxdt' : 再定義されています。異なる基本型です。 プログラム入門(第10回) 11 p.185 ローカル変数とグローバス変数 • ローカル変数 – 関数内で宣言 – 宣言された関数内でしか使えない • グローバル変数 – 関数の外で宣言 – どの関数からでも使える プログラム入門(第10回) 12 p.195 ローカル変数とグローバル変数 外部変数の宣言 ; グローバル変数 void main( void ) { 内部変数の宣言 ; 実行文 ; } どの関数から でも使える 自作関数(引数) { 内部変数の宣言 実行文 ; } ローカル変数 関数内だけで しか使えない プログラム入門(第10回) 通常の変数や 配列等が使える 13 グローバル変数の使用例 • 共通で大量のデータを持つ場合 • 返値を複数持つ必要がある場合 • 複数のファイルにプログラムが分割し,共 通してデータを持つ必要がある場合 プログラム入門(第10回) 14 Discussion • prog10a.c (授業用HomePageより) • このプログラムについて周りの人に説明 – – – – – プロトタイプ宣言はどれか main 関数以外の関数はどれか ローカル変数,グローバル変数はどれか それぞれどのような目的で使われているか このプログラムは何をしようとしているのか プログラム入門(第10回) 15 課題 • • • • • 3×3の2次元配列を用意する.これは外部変 数とする. キーボードから任意の実数を9個入力し,順番 に配列にいれる.([0][0]->[0][1]->[0][2]->....) その入力データから3×3の配列の縦と横のそ れぞれの平均(実数)を求め,画面に表示する. なお,平均を求めるプログラムは関数化するこ と.(引数は使わないように) プロトタイプ宣言,外部変数を使うこと 入力データ – 1.1 1.2 1.3 1.4 1.5 ・・・・ • • • [0][0] [0][1] [0][2] [1][0] [1][1] [1][2] [2][0] [2][1] [2][2] それぞれの平均 プログラム名 prog10b.c 画面出力 prog no10.txt Webrep にて提出 • 期限 来週の水曜日まで ヒント:外部変数を複数持てばよい プログラム入門(第10回) 16
© Copyright 2024 ExpyDoc