• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - info1-6.ppt [互換モード]"

Copied!
21
0
0

読み込み中.... (全文を見る)

全文

(1)

平成

29年度

情報基礎演習

6回 演習

担当 光武 雄一 授業のWebsite: http://web.me.saga-u.ac.jp/~mitutake/info1/info1.html メールアドレス: [email protected]

(2)

先週のレポート課題についてのコメント

 データの入出力および計算式の記述について  実数計算式中の定数は,すべて小数点をつけた実数型とする  READ文によるデータ入力を行なうときは,入力のメッセージにより何を 入力すればよいのか分かるように工夫する.  WRITE文で計算結果を出力するときは,単に数値だけを出力するので はなく,記号などを使って分かり易くする.  良くできたプログラムとは,正しい処理を行って結果を返すだけでなく, ユーザーが関わる入力および出力において,プログラムの内部処理を 知らない人でも正しく使いこなせるユーザーフレンドリーなインターフェー ス設計を施されたプログラムである.  物理量の入力・出力においては,単位の指定が必須となる. 何も指示がなければ,,k,Mを混在して入力される恐れもある.  レポートの提出について  指示が守られていないレポート(メールの件名無記入,実行プログラム の送付など)については,今後コメントなしに減点する.

(3)

REPORT0509の解答例

PROGRAM PROBLEM2_4 ! 並列接続した抵抗R1,R2の合成抵抗Rの計算

IMPLICIT NONE REAL :: R1, R2, R

WRITE(*,*) ‘Input R1(ohm), R2(ohm)=>‘ READ(*,*) R1, R2

R = 1.0/(1.0/R1+1.0/R2)

WRITE(*,*) 'R = ', R, ‘ (ohm)‘ STOP

END PROGRAM PROBLEM2_4

 文字列のメッセージは,その前後を‘(Single quotation)で囲む.

 文字列中で‘を出力したいときは, ‘を二つ並べるか“(Double quotation)をタイプするWRITE文で,文字列,変数を並べて出力するときは,その間を” ,”(Comma)で区切る.

(4)

7回目 演習内容

 簡単な計算と入出力 総合演習 (教科書p.30~35)  整数型と整数型の混合演算  多項式の計算(30ページ)  関数の使い方(32ページ)  角度の単位変換(34ページ)

(5)

実数と整数の混合計算について

P.27参照

 代入文では,代入される(左辺の)変数の型に自動的に変換される  整数と実数の混合計算・・・自動的に実数型として計算  同じ型同士の計算では,型の自動変換は生じない REAL::X, Y, Z INTEGER::A, B, C X = A/2 +1 ! 整数の計算結果を実数型に変換して代入 X = REAL(A)/2.0+1.0 ! 整数型変数Aを実数型に強制的に変換して,実数演算の結果を代入 B = Y+3.14 ! 実数が整数型に変換して代入 B = INT(Y)+3 ! 実数型変数Yを整数型に強制的に変換して,整数演算結果を代入 Z = 1.2*C ! 整数型変数Cを実数型に変換して,実数演算の結果を代入 変数の型を強制的に変換する関数 INT(X) 整数型への変換(小数切り捨て) Xは実数型変数 NINT(X) 整数型への変換(小数四捨五入) Xは実数型変数 REAL(I) 実数型への変換 Iは整数型変数 括弧の中のXやI(引数と呼ぶ)に型の変換を行う変数(数式も可)を記述する.

(6)

計算の優先順位

 算術演算子(+, -, *, /, **)の計算順序は,  累乗(べき乗) ** ← 今週新たに説明する演算子  乗算*,除算 /  加算+,減算- の順に行われるが,丸括弧( )があれば,括弧内の演算が優先 される.  優先順位が同じ場合,左から右へ実行される.  ただし,累乗計算同士の場合は,右から左に実行 例) 4**3**2 ⇒ 49  括弧が重なっている場合には,一番内側の括弧の中の 計算が優先される.

(7)

Fortranに標準で組み込まれている

関数 (テキスト

P.32)

X**Y XのY乗(累乗,べき乗)

ABS(X) Xの絶対値(ABSolute)

SQRT(X) Xの平方根(SQuare RooT)

MOD(M, N) MをNで割った余り(整数)(MODulus) MAX(A,B,C,…) A,B,C,・・・・・の最大値(MAXimum)

MIN(A,B,C,…) A,B,C,・・・・・の最小値(MINimum)

注)べき乗計算においてY乗のYが整数の場合,整数型定数の記述が許される が,本演習では実数計算でのべき乗について,常に実数型定数での記述とする.

(8)

Fortranの関数 (テキストP.33)

LOG(X) Xの自然対数 logeX

LOG10(X) Xの常用対数 log10X

EXP(X) Xの指数関数 eX

SIN(X), COS(X), TAN(X) Xの三角関数 ASIN(X), ACOS(X), ATAN(X) Xの逆三角関数 SINH(X), COSH(X), TANH(X) Xの双曲線関数

注意)

• 三角関数の引数Xの単位は,rad

角度degからradへの換算は,次式のように行なう.

RAD = DEG*4.0*ATAN(1.0)/180.0 または RAD = DEG*3.141593/180.0

• 逆三角関数のXの定義域は,主値の範囲

• 関数の引数Xには,変数名だけでなく,計算式の記述も可

(9)

三角関数の引数の単位について

教科書

p.34

Fortranで利用できる三角関数(sin,cos,tan)の引数および逆三角関 数(asin,acos,atan)の単位は,全てラジアンである.  度とラジアンとの間の単位換算は,以下の通り. 180 [deg] =  [rad] 1 [deg] = /180 [rad] 1[rad] = 180/  [deg]  単位換算に用いるの値は,なるべく高い精度(実数計算の有効桁 数は,6桁程度)で与えないと,換算誤差が大きくなる, PI = 3.1416(5桁)△または PI=3.141593(7桁)◎を用いるか 逆正接関数atanを用いて, PI=4.0*atan(1.0)の計算式◎で与える.

(10)

例題

2.4 多項式の計算の解説

p.30

 多項式y=2x3+5x2+3x+1の値を計算するとき, Fortranプログラムでは,数式通りに a) Y = 2.0*X**3 + 5.0*X**2 + 3.0*X + 1.0 と書くことができるが,累乗演算子’**’を使わず, 積の形に展開した b) Y = ((2.0*X+5.0)*X+3.0)*X + 1.0 を用いて計算するのが定石である. 理由:累乗計算に伴う計算精度の低下を避けるため 例えば累乗計算x**3は,積の演算が3回行われる. a)の計算式では,8回の掛け算を実行 b)の計算式では,3回の掛け算を実行 演算回数が少ないほど,実数の演算に伴う桁落ち誤差が小さい 計算機における実数演算は,近似計算であるため,条件が悪い場合には,大きな 誤差を生じる場合があることに注意しなければならない

(11)

計算式中の定数の型について

Y = ((2.0*X+5.0)*X+3.0)*X + 1.0 の定数に注目 ‘2.0’,’5.0’,’3.0’,’1.0’は実数型の定数 この計算では,XとYが実数型変数なので Y = ((2*X+5)*X+3)*X + 1 と書いても,整数型の定数が実数型へ自動的に変換して計算されるた め,場合は正しい結果が得られる. しかし,いつも正しい結果が得られるとは限らない.

特に,整数の割り算に注意せよ.

X = 3/10は,0.3でなく 0.0となる → 実数の計算式中の定数には,無条件に小数点をつける癖をつけよう. レポートのプログラムで実数型定数とすべき所を整数型定数としたもの は減点とする.

(12)

演習1(数式の計算)

p.30

教科書P.30の例題2.4を参考にして,問5のプログラ ムを作成し,実行せよ. ただし,プログラム名は,problem2_5,ソースファイル 名をprobem2_5.f95とせよ. 注意点) 多項式のべき乗は,積の形に分ける 式中の定数は,すべて実数型定数とする

(13)

演習2(ヘロンの公式)

p.32

教科書P.32,問6 三角形の3辺の長さA,B,Cを入力し,三角形の面積Sを 求めるプログラムを作成し,実行せよ. ただし,プログラム名は,problem2_6,ソースファイル 名をprobem2_6.f95とせよ. 注意) データの入力・出力において,適切なメッセージをつける 実行結果は正三角形に対して確認して見よ.

(14)

書式付き出力 (P.37)

 例題2.8の計算結果を時分秒の出力をWRITE(*,*)で行うと, その表示は以下のようになる.  しかし, 例題3.2と同様にWRITE(*,’(1X, I3, 3F9.6)’) で出力すると,各数値 の表示位置と桁数が揃えられて出力されている.  このように,数値や文字列を出力する場合,WRITE文の(*,*)の2つ目の *の代わりに書式制御を指示するFORMAT文の行番号を記述する. WRITE(*, 601) H2, ‘JI ‘, ・・・・・・  FORMAT文内に記述した書式制御文字列をWRITE文の行番号の記述欄に 直接記述することもできる. WRITE(*,’(1X, I3, 3F9.6)’) N, X, Y, Z

12JI 34HUN 56BYOU 7JI 31HUN 31BYOU

---5JIKAN 3HUN 25BYOU

時分秒の数値の表示が揃って いないので見にくい

時分秒の数値の表示が揃って いるので非常に見易くなる

12JI 34HUN 56BYOU 7JI 31HUN 31BYOU

(15)

書式付き出力

(P.37~39)

 編集記述子 (各編集記述子の文字列は,カンマ“,”で区切る)  nX n文字進める(指定した数だけスペースを入れるときに使う)  In 整数型変数を±****の形式で表示.負号を含め全部でn桁  Fn.m 実数型変数を±**.******の固定小数点形式で表示 小数点,負号を含め表示が全n桁,小数点以下m桁  En.m 実数型変数を±**.*****E±**の指数部付き形式で表示 負号,小数点,指数部(4桁)を含め表示が全n桁,小数点以下m桁  Gn.m 実数型変数をF型とE型のいずれか自動選択して表示  An 文字型変数をn文字*****の形式で表示.  反復指定  kFn.m 編集記述子(Fn.m ) の書式指定をk回続ける(‘Fn.m, Fn.m, ・・・, Fn.m’と同じ)  行送り制御  書式制御文字列の最初の1字は,行送り制御コードと解釈(Fortranの処理系によって違う)  空白:シングルスペース(一行改行後出力)  0:ダブルスペース(二行改行後出力)  1:改ページして一行目より出力  最初の‘1X’は,改行して新しい行から表示 書式付きWRITE文の一例

WRITE(*, ’(1X, I3, 3F9.6)’) DEG, S, C, T WRITE(*, '(1X, 2F15.7)’) X1, X2

(16)

書式制御出力結果の例

(P.38)

 -365を ‘I8’で出力 _ _ _ _ - 3 6 5 整数を全8桁右づめで表示 左4桁は空白  3.1415926532を ‘F7.3’で出力 _ _ 3 . 1 4 2 実数を全7桁,小数点以下を3桁 で表示. 左2桁は空白  -256.1093を ‘E15.7’ で出力 _ - 0 . 2 5 6 1 0 9 3 E + 0 3 実数を全15桁,小数点 以下7桁で指数表示 -0.2561093x103

(17)

演習

3(書式制御出力) p.39

教科書P.39 問7 1/3の値をいろいろな書式で出力して,どのように表示 されるか調べてみよう. ただし,プログラム名は,problem2_7,ソースファイル 名をprobem2_7.f95とせよ. 注意点) 書式はF型,E型,G型を試すこと. 数値と伴にメッセージを出力するときはA型を用いること.

(18)

演習4 台形の面積計算

 教科書p.44 演習問題2.3のプログラムを作成せよ. ただし,プログラム名はdrill2_3, ソースファイル名 drill2_3.f95,実行プログラム名drill2_3,実行結果スクリ プトファイル名drill2_3.txtとしなさい.  入力および出力において,適切なメッセージを出力する こと.

(19)

演習

5 円の面積計算

 教科書p.44 演習問題2.4のプログラムを作成せよ. ただし,プログラム名はdrill2_5, ソースファイル名 drill2_5.f95,実行プログラム名drill2_5,実行結果スプリ プトファイル名drill2_5.txtとしなさい.  円周率PIの値は,逆正接関数ATANを用いて,計算で与 えること.(第5回演習の説明資料参照)  入力および出力において,適切なメッセージを出力する こと.

(20)

演習

6(関数を用いた数式) p.44

「ザ・Fortran90/95」 p.32,33のFortranの関数の書き方を参考にして, p.44 演習問題2.5 について,変数a, b, x, t, , の値を入力し,(1) ~(7)の各計算式の値を計算し,その計算結果を表示するプログラム を作成せよ.  ギリシャ文字の変数名は,教科書p.45の解説を参考にすること.  データの入力と出力については,適切なメッセージを出力を行うこと.  必要に応じて各変数への入力データの単位に注意を払うこと. 指数関数の引数,三角関数の引数は単位の指定が必要.  必要に応じて関数の引数には,単位換算を施すこと.  円周率は,逆正接関数を用いて数式で与えること.  実行結果の確認は,意味のある数値を入力すること.(0や1では×)  メールの題名は,report0516とすること.  プログラム名,ソースファイル名,実行結果ファイル名は,それぞれ

(21)

今週の課題

REPORT0516

〆切5月22日(月) 19時 メール送付先:[email protected] 本日の演習6のソースプログラムおよび実行結果を記録したテキストファイル を添付ファイルにて送付しなさい.課題での指示および注意事項をよく読むこ と.単位指定が必要な変数は,ω,t,θの3つである. 評価点14点(適切な入出力メッセージと計算式のセットで2点) ボーナス課題 本日の演習1,2,4,5 各演習課題について,ソースプログラムと実行結果を記録したテキストファイ ルを送付すると,1問に付き1点のボーナス加点を行なう.

参照

関連したドキュメント

を提出させ、写しを添付して下さい。 ■提示書類 ①出勤簿又は出面表 ②建設業退職金共済証紙貼付状況報告書

C =>/ 法において式 %3;( のように閾値を設定し て原音付加を行ない,雑音抑圧音声を聞いてみたところ あまり音質の改善がなかった.図 ;

ドリル教材 教材数:6 問題数:90 ひきざんのけいさん・けいさんれんしゅう ひきざんをつかうもんだいなどの問題を収録..

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

ダウンロードした書類は、 「MSP ゴシック、11ポイント」で記入で きるようになっています。字数制限がある書類は枠を広げず入力してく

ERROR  -00002 認証失敗または 圏外   クラウドへの接続設定及びア ンテ ナ 接続を確認して ください。. ERROR  -00044 回線未登録または

有利な公判と正式起訴状通りの有罪評決率の低さという一見して矛盾する特徴はどのように関連するのだろうか︒公