~
」のようなファイルができてしまうのはなぜでしょう。
~
という形で残しています。emacs での編集を間違えたり, 編集の結果を無効にしたい場合には, このバックアップファイルを用いて編集前の状態に戻ることができます。
program sumup isum = 0←これにどういう意味があるのかわかりません。 do 10 i = 1, 10 isum = isum + i**2 10 continue write(*,*) stop end
変数の型 (整数型, 実数型) について, 暗黙の型宣言に従わないという指定です。また implicit の使い方として ``implicit integer a, b'' とすると, a または b で始まる名前を持つ変数は全て整数型になります。詳しくは文法書を参照のこと。
``10'' は行番号で, この行に ``10'' という名前をつけています。``continue'' は何ら特別な実行内容を持たない文で, ただ存在しているだけの文です。Do ループで繰り返しの範囲を指定するときの末端の行としてよく使われます。詳しくは文法書や入門書を参照のこと。
次ページ以降にも説明がありますが, コンピュータは有限のメモリを用いて計算をするので, 無限に大きい数や無限桁の有効数字を扱うことはできません。整数は 9 桁 (-2147483648 から 2147483647), 実数は有効数字 7 桁 (絶対値は 0 または 1e-78 から 1e75 の範囲), 倍精度実数は有効数字 16 桁まで (絶対値のとりうる範囲は実数と同じ) しかあつかえません。詳しくは文法書を参照のこと。 特に整数について, 規定の範囲を越えた場合にどうなるかを説明します。コンピュータ内部では二進数で数値は表現されています。今 8 bit で整数を表現する場合を考えると, とりうるビットパターンは 00000000, 00000001, 00000010, ..., 11111110, 11111111 の 256 通りです。これを用いると -128 から 127 までの整数を次のように表現することができます。10000000 (-128), 10000001 (-127), ..., 11111111 (-1), 00000000 (0), 00000001 (1), 00000010 (2), ..., 01111110 (126), 01111111 (127)。 この様な表現を用いると, 十進整数の加法が二進数の加法に置き換えられます。例えば 1 + (-1) = 0 は 00000001 + 11111111 = 100000000 ですが, 最上位の 1 は桁あふれしてしまうので, 計算結果として残るのは 00000000 です。さてこの系で規定範囲を越えた整数を扱おうとするとどうなるでしょうか ? 例えば 127 + 1 = 128 について考えてみましょう。これは 8 bit の二進数では 01111111 + 00000001 = 10000000 となります。しかしこれは意図した 128 ではなくて -127 の意味ですね。コンピュータでの数値計算で気をつけなければいけない点の一つです。
プリント 1.2 の二つ目, 上の (i), および文法書を参照のこと。
write 文は括弧書きの制御情報並びで出力装置番号の指定と書式の指定を行ないますが, これを * とすることで, 出力装置は標準出力装置 (unix では コンソール画面) に, 書式は出力変数に応じて適切な形にしていされたものとして動作します。詳しくは文法書を参照のこと。