計算機言語 I 第 2 回 教科書 2 章の補足とレポートに対するコメ ント
この資料
: http://www.math.u-ryukyu.ac.jp/~suga/gengo/2019-1/02.pdf
1 #include について
まずは
,
教科書p. 18 – p. 20
の内容を読んで,
プログラムを実行してください.
前回述べましたが
, C
言語の処理系では,
処理を分割して最終的な成果物を作成します.
その際,
行の先頭 が#
で始まる行はcpp (C pre processor)
が処理をします.
それは, C compiler (ccom)
が処理をする前に,
コ メント文の削除や,
マクロの展開などの文字列処理を行いなす.
プログラムの先頭に書かれる
#include
は,
別ファイルに記述してある内容をプログラムの中に取り込む操 作が行われます.
教科書に書かれている
#include <stdio.h>
は
, stdio.h
という名前のファイルをプログラムに取り込んでいます.
この時,
ファイル名の両脇にある記号
<, >
は,
プログラム処理系で特に定まった場所にあるファイルを取り込むという意味になります. Linux
などのUnix
系処理系では,
その場所は, /usr/include
というディレクトリです.
実際そこには, stdio.h
や,
math.h
という名前のファイルがあります.
2 マクロ置換 : #define
教科書
p. 24
にあるように,
行頭の#define
はcpp
により,
マクロ置換と呼ばれる操作が行われます.
#define HOGE hogehoge
とあると
, cpp
がプログラムソース内のHOGE
という文字列をhogehoge
という文字列に置き換えて,
その結果を
C compiler
に渡します.
実行していることは単純な置き換え以外の何者でもありません.
2.1 教科書とレポートへのツッコミ
さて
,
ファイルmath.h
を前回のプログラム,
レポート問題,
この後の教科書のプログラムで用います.
math.h
というのは,
数学関数を利用するにあたって,
それらの宣言が記述されたファイルです.
当然,
その中には
,
計算に重要な数学定数も定義されているはずです.
1
bash-4.2$ less /usr/include/math.h
を実行してみると,
# define M_PI 3.14159265358979323846
という行があります
.
従って
, double
型で数値計算をするときには, math.h
をinclude
して, M_PI
を利用するのが通常で,
教科 書のように, #define PAI ....
と書いたりはしません.
レポートの解答で
,
このような優れたものがありました.
レポートの解答で
, sin(30)
を計算した方がいました.
通常, sin
の変数はradian
ですので,
当然,
間違った 答えになっています.
間違いを犯すのは
,
よくあることなのですが,
重要なのは間違いに気づくことです. sin(30
◦) =
12 は,
三角比 を習った時点ですぐに知る内容なはずです. 0.5
に近い値が出なかったときに,
「何かを間違えている」と気づ けないようでは,
数理の学生として失格です.
また
, 3
角関数の変数がradian
を単位にする理由もきちんとわかっていてください. (sin x)
′= cos x
のそ こそこ厳密な証明くらいはできるようになって, (
あるいは,
高校の教科書のlim
x→0
sin x
x = 1
の証明のどこにゴ マカシがあるのかを理解して)
卒業してください.
レポート問題
1. (
必修) double
型を利用して,
(
a
)640320 · 640320 · 640320
(
b
)640320 · 640320 · 640320 + 744
(
c
)e
π√163− 640320 · 640320 · 640320 − 744
の