練習問題5-3-1
上のプログラムを、printBMI(h, w) という関数を使った形に書き換えなさい。
- 身長と体重は 引数 で渡す(
hは身長、wは体重) - 関数の中で BMI を計算し、
printで表示する(戻り値はまだ使わない) setupから3人分、関数を呼び出す
let numberoftimes=1
function setup() {
printBMI(1.65, 55);
printBMI(1.72, 62);
printBMI(1.58, 48);
}
function printBMI(h, w) {
let bmi=w/(h*h)
print(numberoftimes+"人目のBMI"+bmi)
numberoftimes++
}
function setup() {
printBMI(1.65, 55, 1);
printBMI(1.72, 62, 2);
printBMI(1.58, 48, 3);
}
function printBMI(h, w, n) {
let bmi=w/(h*h)
print(n+"人目のBMI"+bmi)
}
そして今回は二つの方法が思い浮かびましたので、どちらも作ってみました。三人だけなら下のほうがいいと思いますが、百人単位だと上のほうが使い勝手がいいと思います。
それ以外にもやり方があったのかもしれませんがあいにくと思い浮かびませんでした。
練習問題5-3-2
練習問題5-3-1の printBMI を、calcBMI(h, w) に作り替えなさい。
- 関数は 計算だけ 行い、結果を
returnで返す - 表示(
print)はsetupに残す - 3人分、次のように表示しなさい(例:
print("1人目のBMI: " + calcBMI(1.65, 55));)
function setup() {
print("1人目のBMI: " + calcBMI(1.65, 55));
print("2人目のBMI: " + calcBMI(1.72, 62));
print("3人目のBMI: " + calcBMI(1.58, 48));
}
function calcBMI(h, w){
return w / (h * h)
}
下にあっても動く理由はある程度分かるので、これから使っていく中でその理解を深めたいです。
練習問題5-3-3
練習問題5-3-2で作った calcBMI(h, w) を使い、BMIの判定まで行いなさい。
judgeBMI(bmi)を作る(BMIの数値を引数で受け取り、次の文字列を 戻り値 で返す)bmiが 18.5 未満 →"低体重"bmiが 25 未満 →"普通体重"- それ以外 →
"肥満" setupで、身長 1.72 m・体重 62 kg のBMIを計算し、判定し、表示する- 表示は次の形式にする(
XXXは計算したBMIの値)
function setup() {
let bmi=calcBMI(1.72, 62)
print("bmiが"+bmi+"のため"+judgeBMI(bmi))
}
function calcBMI(h, w) {
return w / (h * h);
}
function judgeBMI(bmi){
if(bmi<18.5){
return"低体重"
}else if(bmi<25){
return"通常体重"
}else{
return"肥満"
}
}
それと、変数名のこれでよかったのかという感じは否めませんが、思いつかなかったので仕方ないと思います。
それと、小数点は切り捨てたほうがよかったのでしょうか?どうなのでしょうか
練習問題5-3-4
直方体の体積を求める calcBoxVolume(w, h, d) を作りなさい。
体積は 幅 × 高さ × 奥行き です(引数は w, h, d。ここでは width・height・depth の略。p5.js の width, height とは別)。
計算結果は戻り値で返し、setup で表示しなさい。
function setup() {
let v1 = calcBoxVolume(3, 4, 5);
let v2 = calcBoxVolume(10, 2, 6);
print("1つ目の体積: " + v1);
print("2つ目の体積: " + v2);
}
function calcBoxVolume(w, h, d){
return w*h*d
}
練習問題5-3-5
2つの関数を使って、テストの結果を判定しなさい。
calcAverage(a, b, c):3教科の平均点を返すjudgePass(avg):平均が60以上なら"合格"、それ以外は"再挑戦"を返す
計算結果は戻り値で受け取り、setup で表示しなさい。
function setup() {
let avg = calcAverage(70, 55, 80);
let result = judgePass(avg);
print("平均点: " + avg);
print("結果: " + result);
}
function calcAverage(a, b, c){
return (a+b+c)/3
}
function judgePass(avg){
if(avg>=60){
return"合格"
}else{
return"再挑戦"
}
}