第1回:オリエンテーションと復習 - ax

木村拓馬
FORTRAN プログラミング
–第1回 オリエンテーション–
木村拓馬
2014 年 9 月 30 日
FORTRAN プログラミング,–第1回 オリエンテーション–
1/15
木村拓馬
授業情報
.
授業内容
.
プログラミング技術習得を目指す上でのアドバンスド科目
実践的なプログラミング+演習
.
.
到達目標
.
1. 実践的プログラミング技術の習得
「FORTRAN プログラミング入門」で学んだ内容を踏まえて、科学技術計算、デー
タの加工等、実践的事例を取り入れ、プログラミング技術の向上を目標とする。
. プログラミングにおける総合的知識・技術の習得
本科目では、作品を完成させる演習を行う。演習を通して、設計・開発・評価とい
うソフトウェア開発における一連の工程を実践することで、プログラミングにおけ
る総合的知識・技術を習得する。
.
.
本講義では,Fortran 90 を扱う
.
1965 年に ISO (国際標準化機構) にて国際的な標準言語として認定 (FORTRAN66).
その後 FORTRAN77, Fortran90, Fortran95, Fortran2003, Fortran2008 と改良され続
けている(次は Fortran 2015?).
Fortran90 にて大幅な改訂
2
.
従来の FORTRAN77 プログラムはすべて動くように改訂,95 以降いろいろ廃止
FORTRAN プログラミング,–第1回 オリエンテーション–
2/15
木村拓馬
授業情報
.
授業内容
.
プログラミング技術習得を目指す上でのアドバンスド科目
実践的なプログラミング+演習
.
.
到達目標
.
1. 実践的プログラミング技術の習得
「FORTRAN プログラミング入門」で学んだ内容を踏まえて、科学技術計算、デー
タの加工等、実践的事例を取り入れ、プログラミング技術の向上を目標とする。
. プログラミングにおける総合的知識・技術の習得
本科目では、作品を完成させる演習を行う。演習を通して、設計・開発・評価とい
うソフトウェア開発における一連の工程を実践することで、プログラミングにおけ
る総合的知識・技術を習得する。
.
.
本講義では,Fortran 90 を扱う
.
1965 年に ISO (国際標準化機構) にて国際的な標準言語として認定 (FORTRAN66).
その後 FORTRAN77, Fortran90, Fortran95, Fortran2003, Fortran2008 と改良され続
けている(次は Fortran 2015?).
Fortran90 にて大幅な改訂
2
.
従来の FORTRAN77 プログラムはすべて動くように改訂,95 以降いろいろ廃止
FORTRAN プログラミング,–第1回 オリエンテーション–
2/15
木村拓馬
授業計画(シラバスと少し違う,進捗状況等により適宜変更)
第 1 回 オリエンテーション
第 2 回 Fortran の基礎知識とグラフソフト
第 3 回 配列の動的割り当て・Gauss の消去法
第 4 回 数値計算ライブラリとシミュレーション
第 5 回 プログラミング演習
第 6 回 モジュール化
第 7 回 構造体
第 8 回 分割コンパイル・プログラミング演習
第 9 回 多重分岐・再帰手続
第 10 回 プログラミング演習
第 11 回 ポインタ
第 12 回 リスト構造(ポインタ・構造体を応用)
第 13 回 プログラミング演習
第 14 回 プログラミング演習
第 15 回 レポート(対面講義は行わない)
FORTRAN プログラミング,–第1回 オリエンテーション–
3/15
木村拓馬
授業情報
.
授業用 Web ページ
.
講義資料を下記に随時掲載する.
http://www-it.sci.waseda.ac.jp/FPR2/class01/index.html
講義開始時に講義資料を開いておくことを推奨.
.
.
連絡事項
.
急な休講や教員不在の演習回となる場合は,Course N@vi の「お知らせ」に掲
.載するので定期的に目を通すこと
.
教科書・参考書
.
教科書は指定しないが,自分に合った参考書を 1 冊手元に置くことを推奨.
例えば
田辺誠, 平山弘: 「実践 Fortran95 プログラミング第 3 版」, 共立出版
冨田博之: 「Fortran90 プログラミング」, 培風館
.
戸川隼人: 「ザ・Fortran90/95」, サイエンス社
..
.
FORTRAN プログラミング,–第1回 オリエンテーション–
4/15
木村拓馬
成績評価
成績評価
成績は出席,課題評価,平常点により評価する.
期末試験は実施しない.
10 回以上の出席が必要.それ未満の学生は原則として評価対象外とする.
出席点が満点であっても,課題の提出状況によっては成績を F とする.
課題の提出方法・締切等は,その都度指示する.
出欠
出欠の確認:
毎回,講義開始時に出席カードを配布.
講義終了の 10 分前に出席登録用キーワードを公開.
各自 Course N@vi で出席登録をすること .. Link .
授業当日に Course N@vi にログインできない場合は欠席.
各自の出欠状況は Course N@vi から確認できる.
遅刻は授業開始時刻から 10 分まで,10 分を過ぎた場合は要相談.
電車の遅延等でやむを得ず遅刻する場合は,遅延証明等を提出.
事故,病気,忌引等により遅刻・欠席した場合は,診断書等の正式な証明
書を提出.事由内容が承認されれば,遅刻・欠席としない(出欠状況は
「その他」となるかも).
FORTRAN プログラミング,–第1回 オリエンテーション–
5/15
木村拓馬
注意事項
質問
講義時間内:挙手をして知らせて下さい.TAか木村がサポートします.
講義時間外:木村のメールアドレス(tkimura @ aoni.waseda.jp)
もしくは Course N@vi の私書箱.
端末室に関すること:理工メディア事務局 のヘルプデスクへ
場所: 63 号館 3 階, E-mail: helpdesk @ mse.waseda.ac.jp
科目登録・履修,出欠に関すること:site @ list.waseda.jp
講義中
ノート,メモを取ることを推奨
私語をして講義の邪魔をしないこと
携帯電話は必ず電源を切るかマナーモードにしておくこと
飲食物は持ち込まないこと
FORTRAN プログラミング,–第1回 オリエンテーション–
6/15
木村拓馬
注意事項
レポート
他人のレポートや既存の文献、Web 上の情報をコピーしないこと.
文献を参照,引用することは構わない.但し,参照,引用した文献を
明記すること
(http://web.waseda.jp/gec/about/info/academic/info report).
インターネット上の資料の参照・引用は推奨しない(信用できない場
合がある,書き換えられる).インターネット上の資料を引用する際
は,URL と閲覧した日付を明記すること.
FORTRAN プログラミング,–第1回 オリエンテーション–
7/15
木村拓馬
63 号館理工 UNIX システムの利用
本講義では,
理工 UNIX システム(CentOS 6.5)
と
g95(無料の Fortran95 コンパイラ)
を使用.
■ 理工 UNIX システムの利用申請が必要.
Waseda-net ポータルにログイン
⇓
理工系学生のページ (https://webs.sci.waseda.ac.jp/STUDENT/)
理工 UNIX システム ⇒ 利用設定
Linux 環境利用申請
■ 理工 UNIX システム利用環境
(http://www.mse.waseda.ac.jp/pc-room/unix/environment.html)
FORTRAN プログラミング,–第1回 オリエンテーション–
8/15
木村拓馬
63 号館理工 UNIX システムの利用
.
理工 UNIX システムへのリモート接続 (リモート接続について)
.
例えば木村は以下を使ってます:
.
例)ssh+TeraTerm で CUI
例)ssh+PUTTY+Xming で GUI
(学外からの利用は Waseda VPN 学外からの理工 UNIX への接続方法
を参照)
(リモートからの接続制限をしています.学外から上記の GUI 接続し
てみたけど凄く遅い?)
.
Windows と UNIX 間のファイル転送
.
.
Windows ⇒ UNIX
http://www-it.sci.waseda.ac.jp/links/winscp/ を参照.
Windows ⇐ UNIX
http://www2.sci.waseda.ac.jp/tools/HLPQA/show.php?id=107 を参照.
FORTRAN プログラミング,–第1回 オリエンテーション–
9/15
木村拓馬
テキストエディタ
.
.
本講義では,自分に合った好きなエディタを利用してください.
.
UNIX 系の代表的なテキストエディタ
.
どのOSにも大抵入ってる
プログラミングのプロに根強い人気
vi(ヴィーアイ)
.
Emacs(イーマックス)
.
最近流行り?のテキストエディタ
.
最近の Linux にはけっこう入ってるらしい
gedit(ジーエディット)
- Windows 系のキー操作,notepad 感覚
nano(ナノ)
- wonderfully easy-to-use and friendly らしい
- 初心者でも比較的容易に扱える?
.
.
..
FORTRAN プログラミング,–第1回 オリエンテーション–
10/15
木村拓馬
コンパイルと実行
本講義ではフリーの Fortran コンパイラ「g95」を使用.
.
.[user@host␣˜/FPR2]$g95␣ex01.f90
コンパイルが成功すると,a.out という実行ファイルができているはずです.
実行する場合は,以下のように実行ファイル名を入力します.
.
[
. user@host␣˜/FPR2]$./a.out
このとき,カレントディレクトリを表す./ を忘れないこと.
a.out が嫌な場合はコンパイルオプション -o で出力ファイル名を
.
[user@host␣˜/FPR2]$g95␣-o␣ex01.out␣ex01.f90
.
ex01.out の部分は好きな名前を付けてよい(e.g. sukinanamae.o)
ヘルプを見るには
.
[user@host␣˜/FPR2]$g95␣--help
.
FORTRAN プログラミング,–第1回 オリエンテーション–
11/15
木村拓馬
「FORTRAN プログラミング入門」の復習
. FORTRAN プログラミング入門の講義資料をざっと眺めてみよう
1
理工情報関連科目・情報教育 web サイト
「 FORTRAN プログラミング入門 」
:http://www-it.sci.waseda.ac.jp/FPR1/
春学期に神山先生の講義を履修した学生は木村の授業ページ
春学期に山中先生または木村の講義を履修した学生は神山先生の授業
ページ
その他の学生はとりあえず木村の授業ページ
コレ習ってない!というのがあれば,木村かTAに知らせてください.
. 演習問題
2
この講義では演習・課題のファイル名を指定することがあります.
他の講義とファイル名が重複するかもしれないので,
• home に”FPR2”等のディレクトリを作成し,その上で作業する.
• 他の講義のファイルを別のディレクトリに置いておく.
など注意すること.
FORTRAN プログラミング,–第1回 オリエンテーション–
12/15
木村拓馬
演習(DO+WRITE+OPEN&CLOSE)
.
演習 1.1(pr1.1.f90)
.
1. 0 度から 360 度まで 10 度刻みで,sin, cos の値を出力するプログラムを作成しなさい.
ただし,
円周率は ACOS(-1.0) など数学関数を用いて計算したものを使用すること
SIN, COS の引数は度ではなくラジアンであることに注意すること.
π
度とラジアンの関係は,1 度=
ラジアンである.
180
出力は以下のようにすること (角度は 6 桁右詰め,他は 10 桁で小数点以下 6 桁).
angle の前に# .
【出力例】
#angle
0
10
| (省略)
360
sin
0.000000
0.173648
cos
1.000000
0.984808
0.000000
1.000000
. 画面だけでなく,”pr1.1.dat”なるファイルにも出力するようにしなさい.
.
2
FORTRAN プログラミング,–第1回 オリエンテーション–
13/15
木村拓馬
演習(READ, 配列, IF,副プログラム)
.
演習 1.2(pr1.2.f90)
.
n を 3 以上 1000 以下の整数定数とする(n は READ しなくてよい,PARAMETER は OK).
7 つの実数 a, b, c, d, e, f, g が与えられたとき,
1. 以下の n × n 三重対角行列 M を2次元配列に記憶させ(空白は零),

 a
 c



M = 




b
d
..
.
e
..
..
.
..
.
.
..
.
..
c
.
d
f






 ,



e 

g
 1

 −1
例えば n = 5 とき M =  0
 0

0
−1
2
−1
0
0
0
−1
2
−1
0
0
0
−1
2
0
0
0
0
−1
1



 ,


. 画面と”pr1.2.dat”なるファイルの両方に出力する,
2
プログラムを作成しなさい.
. (終わった人は,
「n > 20 ならば画面には出力しない」ように書き換えてみよう)
4. (終わった人は, 1. の行列を作成する部分をサブルーチンにしてみよう)
3
.
FORTRAN プログラミング,–第1回 オリエンテーション–
14/15
木村拓馬
参考文献
[1]
WEB シラバス (2014 年 9 月 29 日閲覧)
[2]
JIS X 3001-1:2009 (プログラム言語 Fortran – 第 1 部:基底言語)
[3]
戸川隼人:ザ・Fortran90/95,サイエンス社(1999)
[4]
早稲田大学理工学術院,”レポート作成に関する注意” (2014 年 9 月 29 日閲覧)
[5]
早稲田大学グローバルエデュケーションセンター,”レポートにおける剽窃(盗用)行為につい
て” (2014 年 9 月 29 日閲覧) .. Link
[6]
早稲田大学学生部,剽窃・カンニングは不正行為だ!,早稲田ウィークリー,1235 (2010)
http://www.waseda.jp/student/weekly/contents/2010b/1235/235a.html
[7]
早稲田大学学生部,マナーを守る早大生になろう!,早稲田ウィークリー,1274 (2012)
http://www.wasedaweekly.jp/detail.php?item=329
[8]
早稲田大学理工学術院:”情報関連科目 FAQ,Q6. やむを得ない事由により欠席する(した)場
合は、どうすれば良いですか ”(2014 年 9 月 29 日閲覧) .. Link
[9]
The G95 Project,http://g95.org(2014 年 9 月 29 日閲覧)
.. Link
.. Link
[10] 渡部 善隆:Fortran 90 の紹介, 九州大学大型計算機センター広報, Vol.29
[11] 日本ニューメリカルアルゴリズムズグループ株式会社,Fortran とは (2014 年 9 月 29 日閲覧)
http://www.nag-j.co.jp/fortran/index.html
FORTRAN プログラミング,–第1回 オリエンテーション–
15/15