20
Fortranプログラミング入門 -入出力-

Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

Fortranプログラミング入門

-入出力-

Page 2: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

入力文

☆文法 read(装置番号,書式) 入力対象, 入力対象, …

・「装置番号」から「書式」の通りに入力し,「入力対

象」に代入する

・装置番号が*か5は標準入力(キーボード入力)

・書式を*にすると標準書式で入力

1

Page 3: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

出力文

☆文法 write (装置番号,書式) 出力対象, 出力対象, …

・「装置番号」に「書式」の通りに「出力対象」を出力.

・装置番号 * か 6 は標準出力 (ディスプレイ出力)

・書式 * は標準書式で出力.自動的に設定.

2

Page 4: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

例題1

整数型の変数iとjを宣言し,read文でキーボードから値を読み込めるようにせよ.また,変数iとjをwrite文で端末に出力せよ.

3

Page 5: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

例題1

program disp

implicit none

integer :: i, j

read write(*,*) ‘Please input i and j’

read(*,*) i, j

write(*,*) ‘i and j are’

write read(*,*) i, j

stop

end program disp

4

Page 6: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

☆文法 open(装置番号,オプション)

ファイルを開き装置番号との関連付けを行う

・装置番号を表す自然数.0と5と6は使用不可

・オプション

file = ‘ファイル名’

-> ファイル名を指定する

装置番号は 0 から2147483647 の値で自由に設定可能

※ 0 は標準エラー出力

5は標準入力

6は標準出力

のため使用しない5

Page 7: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

☆文法 close (装置番号,オプション)

ファイルを閉じ装置番号との関連付けを取り消す

・装置番号はopen文で開いたファイルを指定する

ファイルの使用開始(open文)

ファイルへの入出力(read文,write文)

ファイルの使用終了(colse文)

6

Page 8: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

例題1

「kaki」ファイルと「yomi」を作成せよ.

「yomi」ファイルには

1, 2

3, 4, 5

と記入せよ.

そのとき,「yomi」ファイルの内容を「kaki」ファイルにコピーするプログラムを書け.ファイル名は「copy.f90」とせよ.

・「yomi」と「kaki」ファイルをopen文で開く

・「yomi」ファイルをread文で読み込む

・write文で「kaki」ファイルに書き込む

・close文で「yomi」と「kaki」ファイルを閉じる

7

Page 9: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

例題1外部ファイルへの入出力

ファイル copy.f90

program copy

implicit none

integer :: a, b, c

open(10,file='yomi')

open(20,file='kaki')

read(10,*) a,b

write(20,*) a,b

read(10,*) a,b,c

write(20,*) a,b,c

close(10)

close(20)

stop

end program copy

ファイル yomi

1, 2

3, 4, 5

ファイル kaki

?

8

Page 10: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

☆文法 open(装置番号,オプション)

ファイルを開き装置番号との関連付けを行う

・装置番号を表す自然数.5と6は使用不可

・オプション

status = ‘NEW’‘OLD’‘REPLACE’‘SCRATH’ ‘UNKOWN’

->NEW : 開くファイルが既に存在するとエラー

OLD :開くファイルが存在しないとエラー

REPLACE : 開くファイルが既に存在するなら上書き.

ファイルが存在しないなら新規作成.

SCRATH : 一時ファイルに対し指定

UNKOWN : 不明時.statusを書かないとUNKOWN

9

Page 11: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

☆文法 open(装置番号,オプション)

ファイルを開き装置番号との関連付けを行う

・装置番号を表す自然数.5と6は使用不可

・オプション

action = ‘READ’ ‘WRITE’ ‘READWRITE’

-> READ : 読み込み専用でファイルを開く

WRITE : 書き込み専用でファイルを開く

READWRITE : 特に制限なくファイルを開く.Actionを書

かないとREADWRITEになる.

10

Page 12: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

☆文法 open(装置番号,オプション)

ファイルを開き装置番号との関連付けを行う

・装置番号を表す自然数.5と6は使用不可

・オプション

err = s

-> ファイルを開くときにエラーが発生した場合,

文番号sに飛んで処理を続ける(エラー処理).

補足 : 文番号とは

文に番号が付けられる.

文番号 実行文

11

Page 13: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

外部ファイルの入出力

program プログラム名

implicit none

・・・

open(10, file=‘kaki’, status=‘NEW’,err=1000)

open(20, file=‘yomi’, status=OLD’,err=2000)

・・・

stop

1000 write(*,*) ‘ERROR : cannot open kaki file’

stop

2000 write(*,*) ‘ERROR : cannot open yomi file’

stop

end program プログラム名12

Page 14: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・I形編集記述子 i数字

整数型の変数や定数の値を読み込み,書き込みするた

めの編集記述子.

˽˽˽#####

・˽はスペース, #は表示する数字

・iの後ろの数字の数だけ表示

・iの後ろの数字よりも表示桁が小さい場合

スペースで埋める

・ iの後ろの数字よりも表示桁が大きい場合,表示不可

13

Page 15: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・I形編集記述子 i数字

整数型の変数や定数の値を読み込み,書き込みするた

めの編集記述子.

integer :: a = 1234

write(*,100) a

write(*,200) a

100 format(‘a=’,i3)

200 format(‘a=’,i5)

出力結果

a=***

a=˽1234

i3 : 3桁の数字を表示

表示できない…

i5 : 5桁の数字を表示

スペースで埋める

14

Page 16: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・I形編集記述子 i数字

整数型の変数や定数の値を読み込み,書き込みするた

めの編集記述子.

integer :: a = 1234

write(*,100) a, a

100 format(‘a=’,i3,’ a=’,i5)

出力結果

a=*** a=˽1234

15

Page 17: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・F形編集記述子 f数字1.数字2

実数型の変数や定数の値を読み込み,書き込みするた

めの編集記述子.

˽±###.####

: 小数点以下の数字を数字2の数だけ表示

: スペース,符号,小数点を含めた数字を数字1の数

だけ表示

数字2の幅

数字1の幅

16

Page 18: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・F形編集記述子 f数字1.数字2

実数型の変数や定数の値を読み込み,書き込みするた

めの編集記述子.

real :: a = -12.3456

write(*,100) a

write(*,200) a

100 format(‘a=’,f10.2)

200 format(‘a=’, f12.4)

出力結果

a=˽˽˽˽-12.35

a=˽˽˽˽-12.3456

17

Page 19: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・E形編集記述子 e数字1.数字2

実数型の変数や定数を指数表示で読み込み,書き込み

するための編集記述子.

˽±0.####E±###

: 小数点以下の数字を数字2の数だけ表示

: スペース,符号,小数点,Eを含めた数字を数字1の数

だけ表示

数字2の幅

数字1の幅

18

Page 20: Fortranプログラミング入門 · 例題1 整数型の変数iとjを宣言し,read文でキーボードから値を 読み込めるようにせよ.また,変数iとjをwrite文で端末に

書式

☆文法文番号 format(カンマで区切った編集記述子)

編集記述子

・E形編集記述子 e数字1.数字2

実数型の変数や定数を指数表示で読み込み,書き込み

するための編集記述子.

real :: a = -12.3456

write(*,100) a

write(*,200) a

100 format(‘a=’,e10.2)

200 format(‘a=’, e12.4)

出力結果

a=˽-0.12E+02

a=˽-0.1234E+02

19