Fortranで三角形の面積を求めるプログラムを作ろう!

デジタルとコンピューター

三角形の面積は、以下の公式で求めることができます。 面積=12×底辺×高さ\text{面積} = \frac{1}{2} \times \text{底辺} \times \text{高さ}

本記事では、Fortranを使って三角形の面積を計算するプログラムを作成し、ユーザー入力に対応する方法ヘロンの公式を用いた計算方法についても紹介します。


三角形の面積を求める基本プログラム(底辺 × 高さ ÷ 2)

まずは、三角形の底辺高さを入力し、それを使って面積を求める基本的なプログラムを書いてみましょう。

💻 プログラム

program triangle_area
  implicit none

  ! 変数の宣言
  real :: base, height, area

  ! ユーザーからの入力
  print *, "底辺を入力してください: "
  read *, base
  print *, "高さを入力してください: "
  read *, height

  ! 面積の計算
  area = 0.5 * base * height

  ! 結果の出力
  print *, "三角形の面積は: ", area

end program triangle_area

🔍 コードの解説

  1. implicit none を使用(すべての変数を明示的に宣言)
  2. real 型の変数 base(底辺), height(高さ), area(面積)を宣言
  3. print * でユーザーに入力を求め、read * で値を取得
  4. 面積の計算を area = 0.5 * base * height で実行
  5. 計算結果を print * で表示

🖥 実行例

底辺を入力してください:
10
高さを入力してください:
5
三角形の面積は:    25.0000000

このプログラムは、最も基本的な三角形の面積計算方法を実装したものです!


ヘロンの公式を使って三角形の面積を求める

三角形の3辺(a, b, c)が与えられた場合、ヘロンの公式を使って面積を求めることができます。 s=a+b+c2s = \frac{a + b + c}{2} 面積=s×(s−a)×(s−b)×(s−c)\text{面積} = \sqrt{s \times (s – a) \times (s – b) \times (s – c)}

💻 プログラム

program heron_area
  implicit none

  ! 変数の宣言
  real :: a, b, c, s, area

  ! ユーザー入力
  print *, "三角形の3辺を入力してください(a, b, c): "
  read *, a, b, c

  ! 半周長の計算
  s = (a + b + c) / 2.0

  ! ヘロンの公式による面積の計算
  area = sqrt(s * (s - a) * (s - b) * (s - c))

  ! 結果の出力
  print *, "三角形の面積は: ", area

end program heron_area

🔍 コードの解説

  1. 三角形の3辺 a, b, creal 型で宣言
  2. 半周長 s = (a + b + c) / 2.0 を計算
  3. ヘロンの公式を使って area = sqrt(s * (s - a) * (s - b) * (s - c)) を計算
  4. sqrt() 関数を使って平方根を求める
  5. 計算結果を出力

🖥 実行例

三角形の3辺を入力してください(a, b, c):
3 4 5
三角形の面積は:    6.00000000

この方法を使えば、底辺と高さが分からなくても三角形の面積を求めることができます!


三角形の入力値チェックを追加する

三角形の3辺に関する制約(三角不等式)を考慮して、正しい三角形が入力されたかをチェックするようにしましょう。

💻 改良版プログラム

program heron_area_check
  implicit none

  ! 変数の宣言
  real :: a, b, c, s, area

  ! ユーザー入力
  print *, "三角形の3辺を入力してください(a, b, c): "
  read *, a, b, c

  ! 三角形が成立するかチェック
  if (a + b > c .and. a + c > b .and. b + c > a) then
    ! 半周長の計算
    s = (a + b + c) / 2.0

    ! ヘロンの公式による面積の計算
    area = sqrt(s * (s - a) * (s - b) * (s - c))

    ! 結果の出力
    print *, "三角形の面積は: ", area
  else
    print *, "入力された辺の長さでは三角形を作ることができません。"
  end if

end program heron_area_check

🔍 追加したポイント

三角形が成り立つかをチェック

  • 三角形の成立条件:「どの2辺の和も、他の1辺より長いこと
  • if (a + b > c .and. a + c > b .and. b + c > a) then でチェック

エラーメッセージを出力

  • 成立しない場合は "入力された辺の長さでは三角形を作ることができません。" と表示

🖥 実行例(正常な場合)

三角形の3辺を入力してください(a, b, c):
3 4 5
三角形の面積は:    6.00000000

🖥 実行例(三角形にならない場合)

三角形の3辺を入力してください(a, b, c):
1 2 3
入力された辺の長さでは三角形を作ることができません。

この改良により、ユーザーが誤った値を入力しても安全に処理できるようになりました!


まとめ

プログラム計算方法
基本版底辺 × 高さ ÷ 2
ヘロンの公式版3辺の長さから計算
改良版三角形の成立チェックを追加

Fortranを使えば、簡単な計算プログラムを作ることができ、条件分岐を加えることでより実用的なプログラムに改良できます!

🚀 ぜひ、自分でもFortranを使って試してみましょう! 🚀

コメント