計算機言語 I 第 7 回 関数
この資料: http://www.math.u-ryukyu.ac.jp/~suga/gengo/2019-1/07.pdf
レポートへのツッコミ
白版でします.
教科書
6章の補足
関数については, 教科書に従って白板で解説します. 教科書に書かれていない事を補足します. 関数の返り値(教科書では型,英語ではreturn value)として使えるのは,これまでに出てきた,
(unsigned, signed) char, int, float, double
とこれから出てくる,ポインタ型, 構造体,共用体で, 配列を関数の返り値にはできません.
関数を利用する最も大きな理由は,「プログラムを適当な大きさに分割して書く」です. 処理の長さが100行 を超えるくらいから,その処理を人間が追うのは難しくなることが知られています. そこで,関数を利用してプ ログラムを小さく分割して書いていく様にします.
教科書, p. 86は正確でないところがあります. 関数の使い方なのですが, Cの正確な仕様は,
C では, 関数呼び出しをする前にその関数の素性をコンパイラに知らせなければならない.
です. 上のことを実現するには,次のいずれかの方法をとる必要があります. 1. その関数呼び出しの前にその関数自体を記述してしまう.
2. 関数呼び出しの前に,その関数のプロトタイプ宣言を記述する(教科書 p. 86).
教科書には, 1. の方法が書いてありませんが, そのようなプログラムを書いても大丈夫です. コンパイラは 関数の素性(返り値,引数の型)を用いることにより,機械語を効率よく作成できますが, これがないと, どのよ うな機械語を作り出して良いかがわかりません. そのために,上のような仕様があります.
1
レポート問題
締切は, 6月3日10:00 (JST).
• 前回のレポートの3番目(gengo2019-1 report 6-3): 件名は改めて, gengo2019-1 report 7-1
• 次の様なプログラムを作れ. (件名: gengo2019-1 report 7-2)
– Heronの公式により3角形の3辺からその面積を計算する関数heron を書く
関数heron では, 3つのdouble型の引数(3辺の値)を取り, 面積の値をdouble型で返す. ただし, 3つの引数の値が3角形を作らないときには, 0以下の値を返す(値は,何でも良い).
– main関数では, 3つのdoubleを標準入力から読み取り,関数heronを利用して,それらが3角形 を作ればその面積,作らなければ「入力した3数は3角形を作りません」を出力する.
Heronの公式の特性をうまく利用したプログラムを書いてください.
2