条件文を覚えることで、より一層プログラミング言語利用する意味が深まってきます。というより本格的な数値解析する場合は、条件文の利用は必須でしょう。 例えば、以下のような条件文を考えます。
aが10以上ならb=a*4+a**4
a=10ならb=a*2+a**6
a=10以下ならb=a+a**a
プログラミング言語で書くとどうなるか。
このような条件文を用いる場合、Fortranだけに限らずIf文を用います。
「aが10以上ならb=a*4+a**4」→「if(a>10)then b=a*4+a**4」
「a=10ならb=a*2+a**6」→「if(a<10)then b="a*2+a**6」
「a=10以下ならb=a+a**a」→「if(a==10)then b=a+a**a」
Fortranを使い始めたころ勘違いしていたのはif(a=○)thenというように書いていたことです。VBAなら、これでOK何ですが、フォートランだとif(a==○)thenのようにイコールが二つ付くんですね。 注意しましょう。
早速、Fortranで書いてみる。
さて、ダウンロードしたエディタ(僕はTerapad)を開いてプログラムを書いてみます。 まだコンパイラしていません。とりあえず、「Terapad」を利用している方は
「名前をつけて保存」→保存形式を「全てのファイル」として→「○○.f90」と保存してください。
そうすると、F90ファイルが生成されます。書いたプログラムはこんな感じ。
if.f90のソースコード
!条件分岐のプログラム
program if
implicit none
integer a, b
print *, "二つの数字を入力してください"
read *, a,b
if(a>b)then
print *, "aがbより大きいです"
else if(a==b)then
print *, "aとbは同じ大きさです"
else
print *, "bはaよりも大きいです"
end if
end program if
if2.f90のソースコード
!条件分岐のプログラム
program if
implicit none
integer a, b
print *, "aの数値を入力してください"
read *, a
if(a>10)then
b=a*4+a**4
Write(*,*) ' a =',a,' b =',b
else if(a==10)then
b=a*2+a**6
Write(*,*) ' a =',a,' b =',b
else
b=a+a**a
Write(*,*) ' a =',a,' b =',b
end if
end program if
if2.f90の説明
条件文の使い方はVBAとほとんど同じなので簡単でした。ポイントはif()thenの()の中身を考えて記述することや「else if」と「else」を上手く使い分けることです。
7行目のif(a>10)thenでは「もしaが10より大きいとき」という表現をしています。
8行目のif文に続く「b=a*4+a**4」では「もしaが10より大きいときb=a*4+a**4」をしなさいという意味です。
9行目のelse if文「else if(a==10)then」では7行目の「もしaが10より大きいとき」という条件に当てはまらない数値に関して「もしa=10のとき」という意味です。
10行目のelse if文に続く「b=a*2+a**6」では7行目の「もしaが10より大きいとき」という条件に当てはまらない数値に関して「もしa=10のときb=a*2+a**6」をしないさいという意味です。
11行目のelse文「else」では7行目の「もしaが10より大きいとき」and「もしa=10のとき」という条件に当てはまらない数値のときという意味です。
12行目のelse文に続く「b=a+a**a」では7行目の「もしaが10より大きいとき」and「もしa=10のとき」という条件に当てはまらない数値のときb=a+a**aという計算をします。
if2.f90をコンパイラしてみる
さて、コンパイラしてみましょう。デスクトップにある「Fortran」フォルダを開いてください。開いたらコマンドプロンプトのショートカットをクリックします。 コマンドプロンプトの画面に「g95.exe ○○○.f90」と入力してEnterキ―を押します。 お!今回も何のエラーもなくコンパイラできました!すると、フォルダ内に「a.exe」という実行ファイルが生成されます。コマンドプロンプトに「a.exe」と入力すると、
コマンドプロンプトに「aの数値を入力してください」と表示されました。
a=12
と入力してみます。bの値も問題なく表示されましたね。条件文を用いることで、プログラムの幅は一層深まりますし、とても便利です。しっかり理解しておきましょう。 次は→「Do文について」
有料メルマガを無料で見てみませんか?⇒ 忙しい社会人、学生のためのビルディング・アップデート