我被要求设计一个伪代码,根据体重和身高计算和显示一个人的体重指数 (BMI)。
我想知道我是否正朝着正确的方向前进,或者我是否完全偏离了方向。
这是我目前所拥有的:
Start
DECLARE NUMBER height, weight, bmi
DISPLAY "Enter person's information:"
DISPLAY "height in inches? "
INPUT height
DISPLAY "weight in pounds? "
INPUT weight
height = height * 0.0254 # convert inches to meters
weight = weight * 0.453592 # convert pounds to kilograms
bmi = weight / (height * height)
IF bmi < 18.5
DISPLAY "underweight"
ELSE IF bmi >= 18.5 AND bmi < 25
DISPLAY "normal"
ELSE IF bmi >= 25 AND bmi < 30
DISPLAY "overweight"
ELSE
DISPLAY "obese"
END IF
END
伪代码是正确的,但它执行了不必要的比较。
例如,当第一个条件为假时,您因此知道
bmi >= 18.5
。在接下来的IF
子句中无需验证。
所以
IF..ELSE IF..
结构可以简化为:
IF bmi < 18.5
DISPLAY "underweight"
ELSE IF bmi < 25
DISPLAY "normal"
ELSE IF bmi < 30
DISPLAY "overweight"
ELSE
DISPLAY "obese"
END IF