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:~$
思いもよらない変数名の仕様です。古い言語ですが、新しい発見があって面白いです。
コメント