ari23の研究ノート

メーカ勤務エンジニアの技術ブログです

Julia超入門|回答 三角形の面積

こちらの問題の回答です🐜

回答例

スクリプト例と出力結果です。


<スクリプト例>calctriangle.jl

function istriangle(a, b, c)
    if a >= (b + c)
        ret = false
    elseif b >= (c + a)
        ret = false
    elseif c >= (a + b)
        ret = false
    else
        ret = true
    end

    return ret
end

function calccos(a, b, c)
    ret = (a^2 + b^2 - c^2) / (2. * a * b)
    return ret
end

function calcsin(a, b, c)
    ret = sqrt(1 - (calccos(a, b, c))^2)
    return ret
end

function calctriangle(a, b, c)
    # 三角形が成立するかどうか
    flag = istriangle(a, b, c)

    if flag == false
        # 成立しない場合はfalseを戻す
        ret == false
    else
        # 成立する場合は面積を計算
        sinC = calcsin(a, b, c)
        ret = 0.5 * a * b * sinC
    end

    return ret
end

function main()
    # 3辺の長さ
    a, b, c = 5, 3, 4

    ret = calctriangle(a, b, c)
    println(ret)
end

if abspath(PROGRAM_FILE) == @__FILE__
    main()
end


<出力結果>

0.6

まず、三角形の成立条件を見て、成立する場合は面積を求めます。一応、三角形の面積の公式を載せておきます。

 \displaystyle
S = \frac{1}{2} a b \sin \angle \rm{C}

すでにおわかりかと思いますが、この三角形は直角三角形です。従って、プログラムの計算結果も正しいことがすぐにわかりますね。

回答例は以上です。

続きはこちら