木村拓馬 FORTRAN プログラミング入門 –第 3 回の演習– 木村拓馬 2014 年 4 月 22 日 14:36 FORTRAN プログラミング入門,–第 3 回の演習– 1/9 木村拓馬 演習 3.1(pr3.1.f90) . 5 つの実数値をキーボードから入力すると,それらの相加平均,相乗平均,調和 平均を計算し,計算結果を画面に出力するプログラムを作成しなさい. . . n 個のデータ x1 , · · · , xn に対し, x1 , · · · , xn の相加平均,相乗平均,調和平均は, それぞれ x1 + · · · + xn n √ F = n x1 · · · xn n S = 1 + · · · + x1n x1 V= (1) (2) (3) .で表される. FORTRAN プログラミング入門,–第 3 回の演習– 2/9 木村拓馬 演習 3.2(pr3.2.f90) . 直円錐の半径と高さをキーボードから入力すると,体積,側面積,表面積を計 算し,計算結果を画面に出力するプログラムを作成しなさい. . . 半径 r,高さ h の直円錐の体積 (V ) と側面積 (F ) および表面積 (S ) は,以下のよ うに記述できる. 1 2 πr h 3 √ F = πr r2 + h2 (5) S = F + πr (6) V= . FORTRAN プログラミング入門,–第 3 回の演習– 2 (4) 3/9 木村拓馬 演習 3.3(pr3.3.f90) . 三角形の三辺の長さをキーボードから入力すると,その面積を計算し,画面に 出力するプログラムを作成しなさい. . . 三角形の三辺の長さを a, b, c とすると,面積 S は, S = √ p(p − a)(p − b)(p − c) ただし, p= a+b+c 2 で求める事ができる. . FORTRAN プログラミング入門,–第 3 回の演習– 4/9 木村拓馬 Appndix FORTRAN プログラミング入門,–第 3 回の演習– 5/9 木村拓馬 全て終わって暇な人は試してみよう(パイプライン) 準備)次の様な単純な四則演算のプログラムをいくつか用意(plus,minus,times,divide) . . 2つの実数を入力したら和を出力 (plus.f90). 2つの実数を入力したら差を出力 (minus.f90). . . program plus read(*,*) x,y write(*,*) x+y end program minus read(*,*) x,y write(*,*) x-y end . . 2つの実数を入力したら積を出力 (times.f90). . . . 2つの実数を入力したら商を出力 (div.f90). . . . program times read(*,*) x,y write(*,*) x*y end program divide read(*,*) x,y write(*,*) x/y end わかりやすい実行ファイル名(plus,minus,times,div など)でコンパイルしておく . [user@host␣˜/FPR1]$g95␣-o␣plus␣plus.f90 [user@host␣˜/FPR1]$g95␣-o␣minus␣minus.f90 [user@host␣˜/FPR1]$g95␣-o␣times␣times.f90 [user@host␣˜/FPR1]$g95␣-o␣div␣div.f90 . FORTRAN プログラミング入門,–第 3 回の演習– 6/9 木村拓馬 全て終わって暇な人は試してみよう(パイプライン) パイプライン パイプ演算子“ | ”を含むコマンド行で指定し,これの左側のコマンドの 標準出力を右側のコマンドの標準入力として使うことを表す. 要は,あるコマンドの出力を他のコマンドの入力として使用できる. パイプを使えば,複数のコマンドを組み合わせることができる. echo このコマンドは,引数として与えらえれた文字列等をそのまま並べて出力する. . echo の使用例) . [user@host␣˜/FPR1]$echo␣1␣2 1␣2 [user@host␣˜/FPR1]$echo␣˜ /home/tkimura [user@host␣˜/FPR1]$echo␣$shell /usr/bin/csh . ”echo␣1␣2”で”1␣2”を出力,これをパイプで足し算のプログラム”plus”に入力してみる . echo+パイプの使用例)1+2=3 . [user@host␣˜/FPR1]$echo␣1␣2|␣./plus ␣3. . FORTRAN プログラミング入門,–第 3 回の演習– 7/9 木村拓馬 全て終わって暇な人は試してみよう(パイプライン) カッコとセミコロン ( ; ) で,2 つの出力をまとめることができる . echo+パイプの使用例)3+1=4 . [user@host␣˜/FPR1]$(echo␣3;␣echo␣1) ␣3. ␣1. [user@host␣˜/FPR1]$(echo␣3;␣echo␣1)|␣./plus .␣4. これらを組み合わせて,逆ポーランド記法の電卓っぽい計算ができる . echo+パイプの使用例)(1+2)/(3-5)=-1.5 . [user@host␣˜/FPR1]$(echo␣3;␣echo␣1) ␣3. ␣1. [user@host␣˜/FPR1]$(echo␣3;␣echo␣1)|␣./plus ␣4. [user@host␣˜/FPR1]$(echo␣1␣2|./plus;␣echo␣3␣5|./minus) ␣3. ␣-2. [user@host␣˜/FPR1]$(echo␣1␣2|./plus;␣echo␣3␣5|./minus)|./div .␣-1.5 ※もっとスマートな書き方があれば木村に知らせてください FORTRAN プログラミング入門,–第 3 回の演習– 8/9 木村拓馬 参考文献 [1] 斎藤 信男 編:ユーザーズ UNIX,岩波書店(1988) FORTRAN プログラミング入門,–第 3 回の演習– 9/9
© Copyright 2024 ExpyDoc