18
Fortranプログラミング入門 関根 晃太 -組み込み関数・条件分岐(2)-

Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

Fortranプログラミング入門

関根 晃太

-組み込み関数・条件分岐(2)-

Page 2: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

組み込み関数

Fortranの特徴: 数学に関する組み込み関数が多数ある! 例えば sin関数, cos関数, 平方根など… 使い方 real :: pi = 3.14159265, sinpi sinpi = sin(pi)

P-1 入力引数 関数名

多くの場合, 入力引数の型と 戻り値の型は同じ

戻り値

Page 3: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

組み込み関数

P-2

関数名 意味 入力引数の型 sqrt(x) 平方根 単/倍精度実数

単精度複素数 abs(x) 絶対値 整数

単/倍精度実数 単精度複素数

sin(x) cos(x) 正弦 余弦 (ラジアン入力)

単/倍精度実数 単精度複素数

tan(x) 正接 (ラジアン入力)

単/倍精度実数

asin(x) acos(x) atan(x) 逆正弦 逆余弦 逆正接 単/倍精度実数

Page 4: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

組み込み関数

P-3

関数名 意味 入力引数の型 exp(x) 指数関数 単/倍精度実数

単精度複素数 log(x) 自然対数 単/倍精度実数

単精度複素数 log10(x) 常用対数 単/倍精度実数 aimag(x) 虚数部 単精度複素数

(戻り値:単精度実数) conjg(x) 複素共役 単精度複素数 mod(x,y) x/yの余り 整数

単/倍精度実数

Page 5: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

組み込み関数

P-4

関数名 意味 入力引数の型 max(x,y,z,・・・) min(x,y,z,・・・)

最大値 最小値

整数 単/倍精度実数

int(x) 整数型への変換 単/倍精度実数 (戻り値:整数)

real(x) 単精度実数型への変換 整数 倍精度実数

(戻り値:単精度実数) cmplx(x)

cmplx(x,y) 複素数型への変換 xは実部,yは虚部

引数がxのみの場合は虚部が0の複素数

単/倍精度実数 (戻り値:単/倍精度

複素数)

Page 6: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題1

数学関数を用いて円周率πの近似値を倍精度実数型で作成し,表示せよ. ヒント: cos(π)=-1 tan(π/4)=1

P-5

πは実装されてい

ないので,作り方を覚えよう!!

Page 7: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題1

program makepi implicit none real(8) :: pi1, pi2 pi1 = acos(-1d0) pi2 = 4d0*atan(1d0) write(*,*) pi1, pi2 stop end program makepi

P-6

Page 8: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

課題1

πを単精度実数型を作成せよ.xを単精度実数型,zを単 精度実数型,izを単精度複素数型の変数とする.xを read文でキーボード入力し値を代入せよ.但し,z = xπ, iz = ixπとする.そのとき,De Moivreの公式 を確かめよ. (右辺と左辺それぞれを出力せよ) ファイル名はdemoi.f90とせよ.

P-7

複素数型に変換: cmplx(実部,虚部)

Page 9: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

条件分岐(select case文)

☆文法 select case (式) case (選択子1) 実行文1 case (選択子2) 実行文2 ・・・・ case default 実行文3 end select P-8

・式は整数型,文字型,論理型 ・選択子は カンマ区切り で同じ型の定数を指定か, 下限:上限 のようにコロンで範囲を指定 ・case defaultはいずれの選択子 にも含まれない場合に実行さ れる.記述しなくてもOK!

Page 10: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

条件分岐(select case文)

☆文法 select case (式) case (選択子1) 実行文1 case (選択子2) 実行文2 ・・・・ case default 実行文3 end select P-9

integer :: n read(*,*) n select case (n) case (1,2,3) 実行文1 case (3:6) 実行文2 case (7:) 実行文3 case default 実行文4 end select

Page 11: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題2

整数型でnを宣言し,read文で値をキーボードから入力せよ.さらにnが 1,2,3 のとき 1,2,3 4から5 のとき 4:5 -3から0あるいは6のとき -3:0,6 7以上のとき 7: それ以外のとき default と出力するプログラムを作成せよ.

P-10

Page 12: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題2

P-11

program seltest implicit none integer :: n write(*,*) 'n=' read(*,*) n select case (n) case (1,2,3) write(*,*) '1,2,3' case (4:5) write(*,*) ‘4:5' case (-3:0,6) write(*,*) '-3:0,6' case (7:) write(*,*) '7:' case default write(*,*) 'default' end select stop end program seltest

Page 13: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

課題2

整数型の変数sを宣言し,read文でキーボードから値を読み込めるようにせよ.そのとき,sの値が ・3,4,5のときspring ・6,7,8のときsummer ・9,10,11のときautumn ・12,1,2のときwinter ・それ以外のとき? を出力するプログラムを作成せよ.但し,select case文を使うこと.ファイル名はseason2.f90とせよ.

P-12

Page 14: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

go to文

☆文法 go to 文番号 ・文番号が一致する行へジャンプする 例 go to 1000 ・・・ 1000 write(*,*) ‘check 1000’ ・・・ ※現在のFortranでは非推奨の書き方 P-13

Page 15: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題3

整数型の変数nを宣言し,read文で値を読み込む.nの値が0以下ならばn<=0と表示し,再度read文でnの値を読み込む.nが0よりも大きいならばn>0と表示し,終了するプログラムを作成せよ.

P-14

If文とgo to文を 組み合わせよう!!

Page 16: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

例題3

P-15

program ifgo implicit none integer :: i 1000 write(*,*) 'i=' read(*,*) I if (i <= 0) then write(*,*) 'i<=0...' go to 1000 end if write(*,*) 'i > 0!!' stop end program ifgo

Page 17: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

課題3

整数型の変数nを宣言する.read文でnの値を代入する.nが0以下ならn<=0と出力し,read文で再度nの値を代入可能にする.nに正の値が代入されたのなら,1からnまでの値を出力するプログラムを作成せよ.

P-16

1ずつ増加させて 出力する変数iを

宣言しよう

Page 18: Fortranプログラミング入門...組み込み関数 Fortran の特徴: 数学に関する組み込み関数が多数ある! 例えば sin 関数, cos関数, 平方根など…

エクストラ課題

整数型の変数nを宣言する.read文でnの値を代入する.nが偶数ならThis is an even number,0以下ならn<=0と出力し,read文で再度nの値を代入可能にする.nに奇数が代入されたのなら,1からnまでの奇数の和を求め出力せよ.

P-17

偶奇の判定は mod関数を使おう!