TVアニメ「Code:Realize~創世の姫君~」PV第2弾
アニメ『Code:Realize~創世の姫君~』(2017)
一話見ただけですが、普通に面白かったです。
FORTRAN77のことは分かってきたつもりですが、いまだにまったく使えていないのが文字列です。プログラマーの感を働かせても使い方がまったく分かりません。
相変わらず古い教科書が頼りです。
いまどきの言語なら、文字列はa = ‘hello’とやるだけで使えてしまいますが、FORTRAN77では、宣言が必要です。しかも文字列のサイズも指定してやる必要があります。
宣言の方法は、
CHARACTER*サイズ 変数名
です。
このように使います。
takk@deb9:~$ cat string.f
PROGRAM MAIN
CHARACTER*3 S
S='ABC'
WRITE(*,11111) S
11111 FORMAT(A5)
STOP
END
takk@deb9:~$ gfortran string.f
takk@deb9:~$ ./a.out
ABC
takk@deb9:~$
初めて出てきましたが、FORMATで文字列を指定する場合は、Aを使います。
次は文字列結合します。
文字列結合は、
変数C = 変数A//変数B
で、できます。
最初に動かないプログラムを見ます。
takk@deb9:~$ cat string.f
PROGRAM MAIN
CHARACTER*10 S1,S2,S
S1='ABC'
S2='DEF'
S=S1//S2
WRITE(*,11111) S
11111 FORMAT(A10)
STOP
END
takk@deb9:~$ gfortran string.f
takk@deb9:~$ ./a.out
ABC
takk@deb9:~$
S=S1//S2で結合しているはずなのに、ABCしか表示されません。
今はまだ知識不足で原因不明なのですが、こうすれば動きました。
takk@deb9:~$ cat string.f
PROGRAM MAIN
CHARACTER*3 S1,S2,S*10
S1='ABC'
S2='DEF'
S=S1//S2
WRITE(*,11111) S
11111 FORMAT(A10)
STOP
END
takk@deb9:~$ gfortran string.f
takk@deb9:~$ ./a.out
ABCDEF
takk@deb9:~$
やはり古いプログラミング言語は、制約が多そうで覚えるのが難解です。
まあ、それが面白いんですが。


コメント