僕のメモ帳

僕のメモ帳です。

Goの勉強 肥満度判定BMI計算をしてみよう編

こんばんわ。たかしです。

 

さて、今日もGo言語の勉強します。

参考にしたのは、前回に続いてこちらです。

news.mynavi.jp

 

 

肥満度判定BMI計算をしてみよう

これもまた、プログラミング言語を勉強するとき、最初にやるやつですね。

BMIの計算、掛けたり割ったりの計算が入るからちょうど良いのでしょうね。

 

参考先のページによると、BMIの計算式はこちらの通りです。

BMI = 体重kg ÷ (身長m × 身長m)
適正体重 = (身長m × 身長m) × 22
肥満度 = 体重 / 適正体重 × 100 

わあ!BMI以外に肥満度まで求めるんですね!

肥満かどうかはその人の筋肉量によるやろがい!なんて野暮な突っ込みは言わず、今回はこちらの条件をプログラムに落としていくようです。

 

viでファイルを作成します。

$ vi bmi.go

 

まずは、パッケージ名の指定とパッケージの取り込みです。

今回、計算結果の出力でfmtパッケージ、計算するのにmathパッケージを使用するのでこうなります。

// パッケージ名
package main

// パッケージ取り込み
import (
"fmt"
"math"
)

パッケージを複数取り込むときは、import()で囲うんですね。

 

続いて、変数宣言。

// 体重と身長を指定
const weight = 98
const height = 178

僕はC言語がメインなので、型を指定しない書き方に不安を覚えますが(笑)、最近の言語はこのように変数名を宣言してそこに値を入れると勝手にそれに合わせた型になってくれるので便利です。

あと、main関数の中で宣言しないんですね。ここら辺はおいおいわかっていくのかも。今回は参考先の書き方に合わせます。

ちなみに、身長と体重は中肉中背なわたくしの数値でございます。笑

 

そして、メイン部分の定義。

// mainの定義
func main(){
var hm = height / 100.0 // 身長をmにする
var bmi = weight / math.Pow(hm, 2) // BMIの計算
var bestW = math.Pow(hm, 2) * 22.0 // 適正体重の計算
var per = weight / bestW * 100 // 肥満度の計算

// 結果表示
fmt.Printf("BMI = %f, 適正体重 = %f, 肥満度 = %.0f\n", bmi, bestW, per)
}

参考先では、適正体重の出力はしていなかったですが、せっかくなので表示しちゃいましょう。

 

完成したソースはこんな感じ。

// パッケージ名
package main

// パッケージ取り込み
import (
"fmt"
"math"
)

// 体重と身長を指定
const weight = 98
const height = 178

// mainの定義
func main(){
var hm = height / 100.0 // 身長をmにする
var bmi = weight / math.Pow(hm, 2) // BMIの計算
var bestW = math.Pow(hm, 2) * 22.0 // 適正体重の計算
var per = weight / bestW * 100 // 肥満度の計算

// 結果表示
fmt.Printf("BMI = %f, 適正体重 = %f, 肥満度 = %.0f\n", bmi, bestW, per)
}

 

さあ、コンパイルして実行してみましょう。

$ go build bmi.go
$ ./bmi
BMI = 30.930438, 適正体重 = 69.704800, 肥満度 = 141

 

BMIたけーーーーー

肥満度141%は面白い笑

 

と、こんな感じで出力されました。

 

体重と身長はプログラム直打ちではなく、プログラム実行してコマンドで入力したいですよね。そこらへんはまた後日調べてみます。

 

今日はここまで!

こんな小さなことから、日々積み重ねていきましょう!

 

ではまた。