Microsoft Word - DF-Salford解説09.doc

Similar documents
PowerPoint プレゼンテーション

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

情報処理概論(第二日目)

フローチャートの書き方

Microsoft PowerPoint - kougi4.ppt

Microsoft PowerPoint - 講義10改.pptx

プログラミング基礎

スクールCOBOL2002

プレポスト【解説】

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

情報処理演習 B8クラス

基礎プログラミング2015

演習2

ゲームエンジンの構成要素

Microsoft PowerPoint - info1-8.ppt [互換モード]

ガイダンス

2006年10月5日(木)実施

格子点データの解析 1 月平均全球客観解析データの解析 客観解析データや衛星観測データのような格子点データは バイナリ形式のデータファイルに記録されていることが多いです バイナリ形式のデータファイルは テキスト形式の場合とは異なり 直接中身を見ることができません プログラムを書いてデータを読み出して

Microsoft PowerPoint - Prog05.ppt

※ ポイント ※

PowerPoint Presentation

Prog1_12th

PowerPoint Presentation

Microsoft PowerPoint - 第3回目.ppt [互換モード]

Prog1_6th

Taro-Basicの基礎・はじめに(公

< 中略 > 24 0 NNE 次に 指定した日時の時間降水量と気温を 観測地点の一覧表に載っているすべての地点について出力するプログラムを作成してみます 観測地点の一覧表は index.txt というファイルで与えられています このファイルを読みこむためのサブルーチンが AMD

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi6.ppt

スクールCOBOL2002

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

ポインタ変数

< 中略 > 24 0 NNE 次に 指定した日時の時間降水量と気温を 観測地点の一覧表に載っているすべての地点について出力するプログラムを作成してみます 観測地点の一覧表は index.txt というファイルで与えられています このファイルを読みこむためのサブルーチンが AMD

演習1

プログラミング入門1

スライド 1

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

ex04_2012.ppt

Taro-Basicの基礎・条件分岐(公

FORTRAN文法の基礎

Taro-ファイル処理(公開版).jtd

新版 明解C++入門編

ポインタ変数

Taro-数値計算の誤差(公開版)

Microsoft PowerPoint - prog04.ppt

Microsoft Word - java a.doc

Microsoft PowerPoint - program.ppt [互換モード]

Microsoft Word - CygwinでPython.docx

デジタル表現論・第6回

Microsoft PowerPoint - OOP.pptx

<4D F736F F D20924E82C582E082ED82A982E D834F D758DC02E646F63>

Microsoft Word - no103.docx

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

UNIX 初級講習会 (第一日目)

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

JavaScriptで プログラミング

JavaプログラミングⅠ

Microsoft Word - VBA基礎(6).docx

Microsoft PowerPoint - ruby_instruction.ppt

演算増幅器

cp-7. 配列

PowerPoint プレゼンテーション

Microsoft Word - COMP-MATH-2017-FULLTEXT.doc

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

メソッドのまとめ

情報プリント パソコンプログラミング

メソッドのまとめ

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Microsoft PowerPoint ppt

Microsoft PowerPoint - while.ppt

新規コンポーネントの作成方法

PowerPoint プレゼンテーション

Microsoft PowerPoint - info1-6.ppt [互換モード]

C 言語固有の命令で全部で32 個 の関数C 言語第 1 回 C 言語って?( シラバス 1 2 回目 ) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている 関数がプロ グラム

プログラミングI 第2回 数理物理,総合理学等向け

Java講座

Microsoft Word - VBA基礎(2).docx

Webデザイン論

Microsoft PowerPoint - visualprogram.ppt

MS-ExcelVBA 基礎 (Visual Basic for Application)

Microsoft PowerPoint - CproNt02.ppt [互換モード]

データ構造

Microsoft PowerPoint - prog03.ppt

memo

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

1999年度 センター試験・数学ⅡB

Prog1_2nd

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

Microsoft Word - Cプログラミング演習(9)

Scilab 勉強会 ( 第 3 回 ) 高橋一馬, 十文字俊裕, 柏倉守 平成 17 年 11 月 15 日 関数 ファイルはエディタを用いて作成する.Scilab にはエディタ SciPad が附属している.SciPad では なく他のエディタを利用してもよい. 作成した関数は Scilab に

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

PowerPoint プレゼンテーション

Prog1_15th

講習No.10

PowerPoint プレゼンテーション

Microsoft PowerPoint - C_Programming(3).pptx

スライド 1

フォト・ボックス

Transcription:

Digital Fortran 解説 2009/April 1. プログラム形態とデ - タ構成 最小自乗法プログラム (testlsm.for) m 組の実験データ (x i,y i ) に最も近似する直線式 (y=ax+b) を最小自乗法で決定する 入力データは組数 mと m 組の (x i,y i ) 値 出力データは直線式の係数 a,bとなる 入力データ m=4 (x i,y i ) X=1.50 Y=1.00 X=2.30 Y=1.30 X=4.05 Y=2.05 X=5.60 Y=2.60 最小自乗法( 直線近似 ) の計算法 [x]= x i,[xy]= x i y i 等として 正規方程式は次式で与えられる [x]a+ m b=[y] [x 2 ]a+[x]b=[xy] 計算結果 ( 出力データ ) a=0.3953 b=0.4084 結果の表示 3 y- 値 2 1 y=0.395x+0.408 0 0 1 2 3 4 5 x- 値 6 -DigitalFortran 1-

testlsm.for( 例題プログラム ) 01 C ### testlsm.for ### 02 C (Least Square Method) 03 C 04 DIMENSION X(100),Y(100) 05 C 06 character*48 fname0,fname50,fname6,fname51 07 write(*,'(a)') '*** Input & Output File Name ***' 08 read(*,'(a)') fname0 09 open(1,file=fname0) 10 read(1,*) fname50,fname6,fname51 11 close(1) 12 C 13 open(50,file=fname50) 14 open( 6,file=fname6) 15 open(51,file=fname51) 16 C 17 READ(50,*) NDATA 18 READ(50,*) (X(I),Y(I),I=1,NDATA) 19 WRITE(6,1000) NDATA 20 WRITE(6,1001) (I,X(I),Y(I),I=1,NDATA) 21 1000 FORMAT(1H,'Test Program (Least Square Method)'//1H, 22 * 'NDATA=',I3/) 23 1001 FORMAT(1H,' No.',I3,6X,'X=',E11.4,4X,'Y=',E11.4) 24 C 25 SUMX=0. 26 SUMY=0. 27 SUMX2=0. 28 SUMXY=0. 29 DO 10 I=1,NDATA 30 SUMX=SUMX +X(I) 31 SUMY=SUMY +Y(I) 32 SUMX2=SUMX2+X(I)*X(I) 33 10 SUMXY=SUMXY+X(I)*Y(I) 34 AB=NDATA*SUMX2-SUMX*SUMX 35 AA=(NDATA*SUMXY-SUMX*SUMY)/AB 36 BB=(SUMX2*SUMY-SUMX*SUMXY)/AB 37 WRITE(6,2000) SUMX,SUMY,AA,BB 38 2000 FORMAT(/1H,'*** SUMX=',E12.4,4X,'SUMY=',E12.4,' ***' 39 * //1H,' ===>> A=',E12.4,' B=',E12.4) 40 WRITE(51,*) SUMX,SUMY,AA,BB 41 C 42 close(50) 43 close(6) 44 close(51) 45 C 46 STOP 47 END -DigitalFortran 2-

用意するデ - タファイル testlsm.dat(=fname50/ 入力デ - タファイル /READ(50,*) に対応 ) 4 1.5 1.0 2.3 1.3 4 組のデ - タ群 (X,Y) 4.05 2.05 5.6 2.6 testlsm.txt(=fname0/ 入出力デ - タファイルの名前を格納したファイル ) './data/testlsm.dat' './data/testlsm.lst' './data/testlsm.fil' /data フォルダに 3 つの入出力ファイルを格納 パソコン内のフォルダ構成とファイルの格納 /test... (testlsm.for) 計算プログラム /data... (testlsm.txt) ファイル名デ-タ (testlsm.dat) 入力デ-タ (testlsm.lst) 印字形式出力デ-タ ( 計算時に生成 ) (testlsm.fil) 自由書式出力デ-タ ( 計算時に生成 ) 計算結果の出力 testlsm.lst(=fname6/ 印字出力用ファイル /WRITE(6,*) に対応 ) Test Program (Least Square Method) NDATA= 4 No. 1 X= 0.1500E+01 Y= 0.1000E+01 No. 2 X= 0.2300E+01 Y= 0.1300E+01 No. 3 X= 0.4050E+01 Y= 0.2050E+01 No. 4 X= 0.5600E+01 Y= 0.2600E+01 *** SUMX= 0.1345E+02 SUMY= 0.6950E+01 *** ===>> A= 0.3953E+00 B= 0.4084E+00 testlsm.fil(=fname51/ 自由書式デ - タ出力 /WRITE(51,*) に対応 ) 13.45000 6.950000 0.3952738 0.4083917 -DigitalFortran 3-

2.Fortran Soft salford の利用手順 1 計算前の準備 : 1) 使用する Fortran プログラム用のフォルダ ( 例 :/test) を作成する 2) /test フォルダにプログラム ( 例 :testlsm.for) を格納する 3) /test フォルダの下に /data フォルダを作成する 4) 入力データファイル (testlsm.dat) とファイル名データファイル (testlsm.txt) を作成し /data フォルダに格納する ( データファイルの作成にはメモ帳か Word Pad を用いる ) /test... (testlsm.for) 計算プログラム /data... (testlsm.txt) ファイル名デ-タ (testlsm.dat) 入力デ-タ (testlsm.lst) 印字形式出力デ-タ ( 計算時に生成 ) (testlsm.filt) 自由書式出力デ-タ ( 計算時に生成 ) 2 計算操作手順 : 1) fcpad.exe をダブルクリックで起動する 2)( ファイルを開く ) 操作で /test フォルダに格納したプログラム testlsm.for を読込む プログラムの修正は この状態で行う 3) 翻訳 (make)& 実行で *** Input & Output File Name *** 表示の下に ( プログラム内でキー入力を促す Input 文が置いてある )./data/testlsm.txt をキー入力して実行 (Return キー ) を押す 4) 正常終了なら Press any key to exit(---) の message が表示される エラーが生じたら エラーメッセージが表示される 5) 計算結果 (testlsm.lst,testlsm.fil) は /data フォルダ内に出力される -DigitalFortran 4-

3.Fortran の文法 (JISBasic との対応 ) # 書式 : 1 行の 1~5 桁に行番号を 7~72 桁に命令文を書く 1 行で書けない場合は 次行の 6 桁目に継続記号を書いて続ける 注釈行(1 桁目に C と書く 演算とは関係ない行 ) I,J,K,L,M,N で始まる変数は整数扱い STOP プログラムの実行の終了 END プログラムの最後 # 入出力 : ファイルからデータを読み取り ( 入力 ) ファイルに計算結果を書出す( 出力 ) READ(50,*) NDATA READ(50,*) (X(I),Y(I),I=1,NDATA) WRITE(6,1000) NDATA WRITE(6,1001) (I,X(I),Y(I),I=1,NDATA) 1000 FORMAT(1H,'Test Program (Least Square Method)'//1H,'NDATA=',I3/) 1001 FORMAT(1H,' No.',I3,6X,'X=',E11.4,4X,'Y=',E11.4) WRITE(51,*) SUMX,SUMY,AA,BB >READ(50,*) 50 番で OPEN した ( 書式自由の ) ファイルから数値を読み込む >WRITE(6,1000) 6 番で OPEN したファイルに 1000 行の仕様 (FORMAT) で書き出す >1000 FORMAT( データ出力の書式を書く ( 印刷形式の出力の際に必要 ) 1H, 改行 'NDATA=' 見出し語 / 空白行を入れる 6X 6 桁の空白文字を入れる I3 整数を 3 桁で書く E11.4 実数 (1.5) を指数の形 (0.1500E+01) で書く ( 全体 11 桁 小数部 4 桁 ) F7.3 実数 (1.5) を通常の形 (1.500) で書く ( 全体 7 桁 小数部 3 桁 ) >WRITE(51,*) 51 番で OPEN したファイルに ( 自由書式で ) 書き出す # 演算 制御関係 basic の LET は不要 四則演算(+,-,*,/) は同じ ベキ乗 (x 3 は x**3 と書く ) 関数平方根 SQRT(X) 逆正接 ATAN(X) など違うものもあるが 大体は basic と同じ -DigitalFortran 5-

繰り返し計算(basic の for I=n1 to n2 ~ next I) DO 150 I=n1,n2 ~ 150 CONTINURE 行番号 (150) までの演算を 変数 Iを n1 から n2 まで変えて繰り返す GO TO n 分岐 ( 行番号 n まで飛べ ) 条件分岐(basic の if a>b then ***) IF (a.gt.b) *** a>b なら *** を行え 否なら下行の演算へ.EQ.: 等しい.NE.: 等しくない.GE.: 以上.LE.: 以下 DIMENSION A(100),B(20,5) 配列宣言 ( プログラムの先頭に置く ) C ### ex2jis.bas ### Example-2 <Fortran> <JisBasic> 40 PRINT READ(50,*) NA INPUT PROMPT" フ ンカツスウ (0= シュウリョウ ) ":NA IF NA=<0 THEN STOP DA=180/NA LET DA=180/NA CK=3.14159/180 LET CK=3.14159/180 S=0.0 LET S=0 DO 100 I=1,NA-1 FOR I=1 TO NA-1 A=DA*I*CK LET A=DA*I*CK S=S+SIN(A) LET S=S+SIN(A) 100 CONTINUE NEXT I S=S*DA*CK LET S=S*DA*CK SE=(2.-S)/2.*100 LET SE=(2.-S)/2.*100 WRITE(6,1000) S,SE PRINT PRINT USING" メンセキ =##.#### / コ サ =##.## percent":s,se 1000 FORMAT(/1H, メンセキ =,E9.2, /, コ サ =,E10.3, percent ) STOP GOTO 40 END END Fortran で数値 (NA) を変えて計算を繰り返す場合は NA 自体を変数にし READ から WRITE までを DO ループとし 繰り返し計算を行う NA に関する数値データは予め複数個用意する -DigitalFortran 6-