【コラム】
第22回は、FORTRANでのHello Worldです。FORTRANでは、リスト1のようにWRITE文を使って記述します。各行の行頭から6文字分は、行番号などのために確保されているため、プログラムは行頭から(半角)スペース6個分空けてから書き始めます。
FORTRANのプログラムは、大文字と小文字を区別しないため、ここではすべて大文字で記述しています。ただし、文字列本体の大文字と小文字はそのままの状態で解釈されます。
文字列は、シングルクォートまたはダブルクォートで囲みます。どちらも同じ意味になります。
WRITE文の( )の中の左側の「*」は、デフォルトの出力装置(標準出力)に出力することを表します。その右側の「'(A)'」は、書式指定(フォーマット)として文字型のデータを出力するすることを指定しています。文字列の出力のあと、改行コードも出力されます。
FORTRANのプログラムは、実行例1のようにコンパイルして実行します。ここでは、コンパイラとしてGNUのg77を使用しています。
WRITE文などで指定する装置番号のうちのいくつかは、標準入力は5番、標準出力は6番、標準エラー出力は0番というように、あらかじめ定義されています。
前掲リスト1では「*」で指定していた装置番号を、「6」と指定し、標準出力への出力を明示することができます(リスト2)。同様に、「0」を指定して、標準エラー出力に出力することもできます。
フォーマット指定として、直接文字列を記述してしまうこともできます(リスト3)。フォーマットの中で、クォートされた部分はそのまま文字列とみなされますが、ここではクォートがネスティングされるため、内側をダブルクォートにしています。
フォーマットとして「H」を使うと、クォートを使わずに文字列を記述できます(リスト4)。「11H」は、この直後の11文字分が、そのままの文字列であることを表します。
フォーマットの最後に「$」を付加すると、改行なしでの出力ができます。リスト5は、改行なしの出力を試すため、前半「Hello 」を改行なしで出力し、同じ行の続きに「World」を出力するというものです。
WRITE文で出力装置番号として「*」を指定する場合は、これをPRINT文で簡潔に記述することができます(リスト6)。PRINT文では、出力装置番号の指定がなくなったほか、括弧やカンマの付け方が変わります。
同様に、PRINT文を使って、そのフォーマットとして文字列を直接記述してもかまいません。前掲リスト3をPRINT文で書くと、リスト7のようになります。
WRITE文やPRINT文で使用するフォーマットは、FORMAT文であらかじめ記述しておくことができます。WRITE文やPRINT文には、FORMAT文の行番号を記述します。リスト8はWRITE文を使う場合です。
同様に、PRINT文でFORMAT文を使うとリスト9のようになります。
FORMAT文を使う場合でも、そのFORMAT文自体に文字列を記述してしまうことができます(リスト10)。
もう少しプログラムらしく、出力する文字列をいったん変数に入れてみましょう(リスト11)。文字列を代入する変数は、このように長さ11の文字型の変数として宣言します。
FORTRANでは、長さ2以上の文字型の変数と、文字型の配列とは異なります。文字型の配列を使う場合は、リスト12のようになります。ここでは、配列の各要素に文字を1文字ずつ代入しています。配列への代入にはDATA文を使います。WRITE文のフォーマットの'(11A1)'は、11個の配列要素から、1文字ずつ出力するという意味です。
さらに、DO文によるループを使ってみましょう。ここでは、文字型配列に1文字ずつ代入したあと、これをDO文のループで1文字ずつWRITEしています(リスト13)。DO文には、ループの終了の行番号と、ループ変数とその値の範囲を記述します。ループの終了行には、何も実行しないCONTINUE文を使うのが普通です。ループ中のWRITE文では改行なしで1文字ずつ出力し、ループを抜けた後のWRITE文では、フォーマットを空にして、改行のみを出力しています。
明示的にDO文を記述せずに、暗黙のDOと呼ばれる方法で、式の中にループを記述することもできます(リスト14)。これは、WRITE文の右に「C(1), C(2), C(3),...」と並べたのと同じことになるため、WRITE文のフォーマットには、'(11A)'を指定します。
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。