[itbase2017]Fortran 実習 変数・配列・演算 練習問題

練習問題 1

下は, x=0.1 のときに, f(x) = x^2 (x^n は x の n 乗を表すとする) を計算する プログラムである. このプログラムを変更し, f(x) = x^5 + 6×x^4 + 2×x^3 - x^2 + 4 の値を計算するプログラム を作り, f(0.23) の値を求めなさい

program calceq

  implicit none

  real:: x
  real:: fx

  x = 0.1

  fx = x**2

  print *, x, fx

end program calceq

答え

  • 答えは, 3.988... .

練習問題 2

下は, 半径 2 m の円の円周を計算するプログラムである. これを変更して, 底面の円の半径 5.5 m, 高さ 11 cm の円筒の体積を計算するプログラムを作り, 体積を計算しなさい.

program calccircle

  implicit none

  real, parameter :: pi = 3.141592            ! 円周率
  real            :: radius = 2.0             ! 半径
  real            :: circle                   ! 円周

  circle = 2.0 * pi * radius

  print *, circle

end program calccircle

ヒントと答え

  • 順番に少しずつ作ってみましょう.
  • 高さのための変数を用意する (値を与える)
  • 体積のための変数を用意する
  • 単位に注意すること
  • 体積を計算する
  • 答えは, 10.45... m^3.

練習問題 3

10811995 秒が何日, 何時間, 何分, 何秒に対応するかを計算するプログラムを作り, 答えを求めなさい.

ヒントと答え

  • 順番に少しずつ作ってみましょう.
  • まず, 何日に対応するかを計算する
  • 次に, 残りから何時間に対応するかを計算する
  • 次に, 残りから...
  • 答えは, 125 日 3 時間 19 分 55 秒.

練習問題 4

神戸 (東経 135.2 度, 北緯 34.7 度) と 英国オックスフォード (西経 1.3 度, 北緯 51.8 度) の間の距離を 求めるプログラムを作り, その距離を計算しなさい. ただし, 地球の半径は 6371 km とし, 計算には下の関係を用いてよい.

<URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2017/images/eq_distance.png>

ヒントと答え

  • 順番に少しずつ作ってみましょう.
  • 神戸の経度, 緯度のための変数を用意する.
  • オックスフォードの経度, 緯度のための変数を用意する.
  • 地球の半径のための変数を用意する
  • 二地点間の距離を計算する
  • 単位に注意すること
  • 答えは, 約 9506 km.

練習問題 5

温度 6000 K, 波長 0.5 μm のプランク関数の値を計算するプログラムを 作り, その値を計算しなさい. なお, プランク関数は下に示す関数である.

<URL:https://itpass.scitec.kobe-u.ac.jp/~itbase/exp/fy2017/images/eq_planckfunc.png>

ここで, λは波長 (m), T は温度 (K), h = 6.626070040e-34 J s はプランク定数, c = 299792458 m/s は光速度, k = 1.38064852e-23 J/K はボルツマン定数である.

ヒントと答え

  • 順番に少しずつ作ってみましょう.
  • プランク定数や光速度などの変数(定数)を用意する
  • 波長と温度の変数を用意する
  • プランク関数の値を計算する
  • 単位に注意すること
  • 答えは 105929.4... (W/(m**2 sr m)).
    • sr は立体角の単位で, ステラジアンと呼ぶ