ザ・fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdffortran...

30
教科書 ザ・Fortran 90/95 戸川隼人 サイエンス社 必要に応じてプリン トを配布

Upload: others

Post on 15-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

教科書ザ・Fortran 90/95戸川隼人 著サイエンス社

•必要に応じてプリントを配布

Page 2: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

参考書

初心者のための FORTRAN77 プログラミング,第2版,冨田豊他, 共立出版 (1995)

Page 3: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

成績評価の方法

達成目標に対しては均等に重みづけして評価する. 期末試験50%,レポート課題提出物25%,受講態度25%で評価し,100点満点中60点以上を合格とする.

Page 4: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

コンピュータの基本構成

入力装置

出力装置

制御装置

演算装置記憶装置

CPUプログラム, データ

キーボード,マウス,(ファイル),etc.

ディスプレイ,(ファイル), etc.

メモリー, ハードディスク,etc.

Page 5: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムやデータ• プログラムはCPUが理解できる命令の羅列

• 計算機内部では命令もデータも2進数で表されている(0か1の羅列)

• 実際はスイッチのONかOFFの羅列.スイッチのONとOFFを制御して計算

• この命令(機械語)を直接扱うと複雑でわかりにくいので,人間がより理解しやすいプログラム言語を用いてプログラムを行う

Page 6: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラム言語• 機械語

• アセンブリ言語

• Fortran • ALGOL • C • C++ • Objective C • Basic • COBOL • Pascal • Ada • PL/I

• Lisp • Prolog • Java • 各種シェルスクリプト

• Perl • Ruby • Python • MATLAB • Mathematica • Maple • Maxima

Page 7: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラム言語と機械語

高級言語

機械語

•英語に似た言語で記述•文法を持つ•人間が意味を理解しやすい

•2進数の羅列•簡単な計算も2進数の命令の組み合わせに帰着

•見ただけではわかりにくい

Page 8: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムの作成と実行

プログラム言語

機械語

英語に似た言語で処理の手順を順番に記述

翻訳

実行

コンパイラリンカ

Page 9: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムを開発するために必要なソフトウェア

• エディタ プログラムを打ち込み,編集するソフト(ワープロのようなもの)

• コンパイラ エディタで作成したプログラム(単なる文字情報)を機械語に変換するソフト

• シェル(または統合開発環境) コンピュータに様々な操作(命令)を実行させるためのプログラム.Windowsではコマンドプロンプト

Page 10: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

本講義での環境

• エディタ SciTE

• コンパイラ g95

• シェル Windowsのコマンドプロンプト

• ビルドコマンド • make

Page 11: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムの例PROGRAM WA

IMPLICIT NONE

INTEGER :: A, B, ANS

READ(*,*) A

READ(*,*) B

ANS = A + B

WRITE(*,*) ‘Answer=‘, ANS

END PROGRAM WA

Page 12: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムの作成から実行エディタで入力・修正

ファイルとして保存

コマンドプロンプトからコンパイルコマンド,リンクコマンドを実行

コンパイルされた結果えられたプログラム名をタイプして実行

エラー

エラー

Page 13: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

①プログラム作成(資料参照)

1. パソコンの起動

2. エディタの起動

(1)スタート

(2)プログラム

(3)GNU Octave-3.0.0

(4)SciTE editor

Page 14: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• 書式の指定

• [文書の種類] を [Fortran] にする

Page 15: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• プログラムの入力PROGRAM test

IMPLICIT NONE

WRITE(*,*) ’NYAN’ END PROGRAM test

Page 16: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• プログラムの保存

• [ファイル] メニューから[名前を変更して保存]を選択する

Page 17: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• マイコンピュータ

• (Z:) ドライブ

• 新規作成 → フォルダ

• 名前を “FORTRAN” とする.

• ファイル名を “test.f90” とする.

• 文字はすべて半角英数字とすることに注意!

保存する場所

Page 18: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

プログラムのコンパイル

• コマンドプロンプトの起動

• [スタート] → [ファイル名を指定して実行]

• ファイル名に “cmd.exe” を入力

• コマンドプロンプトが起動

Page 19: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

Windowsにおけるファイル編成

• マイコンピュータ

• (C:) Windowsのシステム,アプリケーション,ライブラリ,ユーザーファイル

• (A:) フロッピィディスクドライブ

• (D:) CD, DVD

• (Z:) 共有ファイル

Page 20: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

(Z:) ファイル1ファイル2ディレクトリ1 (フォルダ1)

ファイル1ファイル2ディレクトリ1

ディレクトリ2

・・・

・・・

Page 21: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

(Z:) FORTRAN

test.f90

ディレクトリ2・・・

Page 22: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• cd FOTRAN とタイプ

• dir とタイプして,ファイルを確認

• Fortran test.f90 -o test.exe とタイプ

• dir とタイプして,test.exeを確認

• test.exeとタイプすれば実行される

Page 23: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

(Z:) FORTRAN

test.f90

ディレクトリ2・・・

test.exe

Page 24: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

• プログラムの実行

• コマンドプロンプトで,ファイル名test をタイプして実行する

• NYANと表示されればOK.

Page 25: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

PROGRAM プログラムの名前

IMPLICIT NONE

各種変数などの宣言文

各種実行文

END PROGRAM プログラムの名前

Fortranプログラムの構造

おまじない

Page 26: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

PROGRAM test

IMPLICIT NONE !おまじない

WRITE(*,*) ’NYAN’ END PROGRAM test

Fortranプログラムの構造プログラム名

空けてもよい

空けてもよいNYANという文字列を画面に表示

Page 27: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

PROGRAM test2

IMPLICIT NONE INTEGER :: a, b, ans WRITE(*,*) 'Input a:' READ(*,*) a WRITE(*,*) 'Input b:' READ(*,*) b ans = a - b WRITE(*,*) 'a=',a WRITE(*,*) 'b=',b WRITE(*,*) 'Answer=',ans

END PROGRAM test2

Fortranプログラムの構造a, b, ans は整数型の変数と宣言

Input a:と画面に表示して入力待ちキーボードから入力された

値を a に読み込むa – b を計算した結果をans に代入

Answer=の文字列に続けてansの中身を表示

Page 28: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

入出力文• WRITE文の書き方

WRITE(出力装置,書式識別子) 出力リスト

WRITE(*,*) 出力リスト

番号0~99またはUNIT=0~99を割り当て

FORMAT文の文番号または書式を表す文字列

標準の出力装置:ディスプレイ標準の書式(変数の方,大きさに応じて自動的に決定

Page 29: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

入出力文• READ文の書き方

READ(入力装置,書式識別子) 入力リスト

READ(*,*) 入力リスト

番号0~99またはUNIT=0~99を割り当て

FORMAT文の文番号または書式を表す文字列

標準の入力装置:キーボード標準の書式(変数の方,大きさに応じて自動的に決定

Page 30: ザ・Fortran 90/95be.m.nuem.nagoya-u.ac.jp/lec/soft/lecmaterials/0.pdfFortran プログラムの構造 a, b, ans は整数型 の変数と宣言 Input a:と 画面に表示 して入力待ち

入出力文入出力装置番号:特に指定しなければ

5: キーボード6: ディスプレイ

READ(5,*) A は READ(*,*) A と同じWRITE(6,*) A は WRITE(*,*) A と同じ