2004/04/23 資料は、3 枚配布 前回のプログラムに関する解説は、今回しない。 今週から、4 限の演習は、931 で == データ型 # 計算機が扱う情報は、予め分類されている。 # 情報の分類名が型 # 型が異なれば、異なる扱いをする。 # 型が異れば、異なる計算が行われる。 # できることとできないことがある。 # 実数の 1.0 と、整数 1 は、異なる扱いがなされる !! 数値型 実数型 1.0, 3.141592, - 0.1 整数型 0, 1, 2, -1, -2 複素数型 i, 1.2 - 3.4i 非数値型 文字型 "a", "b", "0", "1" 論理型 真, 偽 # Fortran では、情報を入れるための変数は、予め ( 型を指定して ) 宣言する # ことが望まれる。 # 変数は、情報を入れる箱なので、箱にどんな ( 型の ) ものが入れられるか # しらないと計算機は、変数を扱えない。 演算子 型が定まれば、その型の情報に対する、報操作方法 = 計算方法 = 演算子 が決る。 数に対する操作 四則 ( 和、差、積、商 ) 羃乗 操作を表現する記号 +, -, *, / ** 数式の扱い ( 数学と、Fortran の違い ) 積は、省略できない y = a(x+3) y = a*(x+3) かっこは、( と ) しか使えない y = a[x+3] y = a*(x+3) 羃乗は ** x^a x ** a 平方根は、 \sqrt{x} = x ^ \frac{1}{2} x ** (1/2) # 優先順位に注意 # 判らなければ、明示的にかっこを補う。 # 判っていても、読みやすいならば、かっこを付ける。 代入文 変数 = 式 # = (等号) を使うが、数学の等号と異なり、「等しい」の意味でない。 # むしろ、 「← (やじるし)」とみなすとよい。 式の値を計算して、その値を変数に設定する。 左辺には、変数しか置けない。 右辺は、好きな式がかける。 代入文を実行し終ると、変数の前の値は失われる。 右辺にも左辺の変数が現れてよい。 その場合は、変更前の値が利用される。 cf. I = I + 1 現在の I の値に 1 を加え、その値を新しく I に入れる。 # 代入文は、最初は、奇妙に見えるが、慣れるとなんてことはないので、 # とりあえずは、こんなものだともって、しばらくは進む Program の基本構造 Program は、program 文から始まり、end 文で終る program 文は、program の後にプログラム名をかいたもの end 文は、end だけでよい cf. 最小限度のプログラム -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- program minimum end -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- プログラム名の制限 英字から始まり英数字と _ だけからなる文字列 空白は入れられない . や - なども駄目 コメント ! から始まる行は、無視される ( 何をかいても問題なし ) # コメント文 コメント文は、どこに入れてもよい。 # Program 文の前でももちろん、構わないが、 # コメント文は、無視されるので、プログラムの構成要素ではない 構文規則 命令 ( 文 ) は、一行に一つ入れるのが基本 # 「行」は、改行を押せばよい。 一行の中に、複数の文を入れるには、改行の代りに ; を入れる。 宣言文 プログラムの中で利用する変数の型を宣言する # 型が決まらないと、どんな情報を入れることができるか判らない real 実数型 internger 整数型 出力文 ( write 文 ) write(6,*) 一つめの '6' の所には、出力装置番号 ( * でもよい ) を指定する 6 は、標準出力 ( 要するに、Display.. ) を意味する # 将来、ファイル出力を扱う予定 装置番号を変更することにより、出力先が替られる。 二つめの '*' の所には書式設定を指定する '*' は、標準書式 # 当分は、決め打ちと思えばよい。 本来は、フォーマット文の行番号を指定し、フォーマット文で書式を指定する wite(6,*) 式 [ , 式 ] で、式の値が表示される。 write( 6, * ) '...' で、' の間の文字列が表示される。 入力文 ( read 文 ) read(5,*) 一つめの '5' の所には、入力装置番号 ( * でもよい ) を指定する 5 は、標準入力 ( 要するに、キーボード.. ) を意味する # 将来、ファイル入力を扱う予定 装置番号を変更することにより、入力元が替られる。 二つめの '*' の所には書式設定を指定する ( write と同じ ) read(5,*) [ '..' : ] 変数 [, 変数..] で、入力した値を変数に代入する。 入力の前には、'..' が表示される。 == 課題 円柱の高さ (H) と、直径 (R) を入れて、その体積 V と、表面積 S を求めるプログラム 公式 V = \pi \frac{R^2}{4}H S = 2 \pi \frac{R^2}{4} + \pi R H -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< -- program example3_1 real R, H, V, S real PAI PAI = 3.141592 -- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< --