FORTRAN
時代遅れ?いいえピチピチです。
FORTRANの魅力
メリット
- およそ50年前に開発された言語でありながら科学の分野では今なお現役である。
- 科学分野で扱われるだけあって計算が速い。
- Cより習得がやや楽。
- 数式を書くのが楽。
- 変数をわざわざ宣言しなくてもよい。
- 美しい。
デメリット
- 無料の総合開発環境の質が悪い。
- 現在では一般にあまり使用されていない言語であるから習得しても見返りは少ない。
- 美しくない。
program main
print *,"Hello, World!"
end program main
stop
end
リファレンス(入門)
大学の講義「アルゴリズムとプログラミングⅠ」で配布された教科書を基に作成。特に断りがなければ1~8カラムは省略されているものとする。
何も動作しないプログラム
コメント文
c 先頭がcで始まる一行はコメント文です。
stop
end
変数に数字を代入する
- FORTRANではわざわざ変数を宣言する必要はありません。
文字を画面に出力する
- ここでは変数a,bそれぞれに代入した値を出力する。
- 文字列を出力する際は'(クォーテーション)で囲む必要がある。
a=1.0
b=1.1
print *, a,b,'test'
stop
end
簡単な計算をする
| 足し算 |
+ |
| 引き算 |
- |
| 掛け算 |
* |
| 割り算 |
/ |
| 累乗 |
** |
a=1.0
b=1.1
solution=a+b
print *, solution
少し複雑な計算をする
- ここでは解の公式
を例とする。ただし±のうち+の方のみを再現する。
- 括弧は()のみ扱える。
- 平方根を返す関数はsqrt(x)。
a=1.0
b=-1.0
c=-1.0
x=(-b+sqrt(b**2-4*a*c))/(2*a)
print *, x
stop
end
変数の種類を変更する(型宣言)
| 型 |
宣言 |
備考 |
| 整数型 |
integer |
I~N及びi~nで始まる変数はデフォルトでこれ |
| 実数型 |
real |
I~N及びi~nで始まらない変数はデフォルトでこれ |
| 文字型 |
character*n |
nに数字を入れて最大の文字数を指定できる |
| 複素数型 |
complex |
|
| 論理変数 |
logical |
|
- 有効数字の桁数を増やしたければ型宣言のすぐ後ろに「*n」を添えればよい。(桁数がn倍になる)
real number1
real*2 number2
number1=3.14
number2=3.14159265
print *, number1,number2
stop
end
data文を利用して変数に値を代入する
- data文を利用すれば一行で多くの変数に値を代入できる。
- //内に代入したい数値を対応する通り並べる。
data a,b /1.0,1.1/
print *, a,b
stop
end
端末から文字を入力する
read(*,*) a
print *,a
stop
end
DO文 (繰り返し)
- 下のソースは1から10までの連続した自然数の総和を出力するもの。
sum=0
do i=1,10
sum=sum+i
end do
print *,sum
stop
end
IF文 (条件分岐)
| .EQ. |
= |
| .NE. |
≠ |
| .LT. |
< |
| .GT. |
> |
| .LE. |
≦ |
| .GE. |
≧ |
- 条件式(等式や不等式)を用意しそれが満たされるか満たされないかで分岐する。
- 条件式を記述する際は上の表を参考にせよ。
- 以下のソースは端末からの入力が5.0以上かどうかを示す。
read(*,*) a
if(a.GE.5.0) then
print *,'OK!'
end if
else
print *,'NO'
end if
stop
end
上のソースの簡易版
read(*,*) a
if(a.GE.5.0) print *,'OK!'
else print *,'NO'
stop
end
配列
- 配列とは添え字付き変数に対応するものである。
- ここでは配列の値の代入にdata文を、出力にDO文を用いた。
dimension abc(3)
data abc/1.0,1.1,1.2/
do i=1,3
print *,'i=',i,'abc=',abc(i)
end do
stop
end
最終更新:2013年11月07日 01:47