TVアニメ「僕の彼女がマジメ過ぎるしょびっちな件」PV
アニメ『僕の彼女がマジメ過ぎるしょびっちな件』(2017)
ラブコメは頭を使わないので疲れを癒してくれます。
相変わらずFORTRANです。配列を使います。
配列は、変数名(添え字) で、定義します。BASICと同じですね。まあ、BASICはFORTRANの文法が基になっているようですので当然ですね。配列の添え字は1始まりです。
takk@deb9:~$ cat var.f
PROGRAM MAIN
INTEGER A(5)
A(1) = 10
A(2) = 20
A(3) = 30
A(4) = 40
A(5) = 50
WRITE(*,11111) A(3)
11111 FORMAT(I10)
STOP
END
takk@deb9:~$ gfortran var.f
takk@deb9:~$ ./a.out
30
takk@deb9:~$
配列はすんなり理解できそうなので、次に繰り返しをしてみます。
DO~CONTINUEを使います。
takk@deb9:~$ cat for.f
PROGRAM MAIN
INTEGER A(5)
A(1) = 10
A(2) = 20
A(3) = 30
A(4) = 40
A(5) = 50
DO 11111 I = 1,5
WRITE(*,22222) A(I)
11111 CONTINUE
22222 FORMAT(I10)
STOP
END
takk@deb9:~$ gfortran for.f
takk@deb9:~$ ./a.out
10
20
30
40
50
takk@deb9:~$
DOで指定するのは、CONTINUEがある行のラベル名と、繰り返しの範囲です。
ラベルは必要ないような気もしますが、こんなこともできます。
takk@deb9:~$ cat for.f
PROGRAM MAIN
DO 11111 I = 1,2
DO 11111 J = 1,3
WRITE(*,22222) I,J
11111 CONTINUE
22222 FORMAT(2I5)
STOP
END
takk@deb9:~$ gfortran for.f
takk@deb9:~$ ./a.out
1 1
1 2
1 3
2 1
2 2
2 3
takk@deb9:~$
少し感動しました。FORTRANの学習を初めてよかったなあ、と。
BASICのFOR~NEXTでは、NEXTは2か所必要でしたが、FORTRANではまとめて書くことができるんです。
DOの行も範囲をすっきり指定できますし、優れた文法を持っているんですね。
あと、忘れていましたが、変数Iと変数Jについて、いつのまにか整数型になっています。
実は、I~Nで始まる変数名は、デフォルトで整数型になります。(これ以外は実数型)
takk@deb9:~$ cat disp.f
I=100
J=200
K=200
L=200
M=200
N=200
WRITE(*,11111) I,J,K,L,M,N
11111 FORMAT(6(I5/))
STOP
END
takk@deb9:~$ gfortran disp.f
takk@deb9:~$ ./a.out
100
200
200
200
200
200
takk@deb9:~$
思いもよらない変数名の仕様です。古い言語ですが、新しい発見があって面白いです。


コメント