سلام دوستان :) امیدوارم که حالتون خوب باشه...
امروز میخوام که درکنار هم طریقه محاسبه شاخص توده بدنی یا Body Mass Index که به اختصار BMI گفته میشه رو یاد بگیرم، و در آخر هم با زبان PHP اون رو مینویسیم.
خب، برای این کار نیاز به قد و وزن داریم.
وزن رو با مقیاس کیلوگرم و قد رو با متر مشخص میکنیم. همه ما قد رو با سانتیمتر بیان میکنیم که برای تبدیل به متر تقسیم بر 100 میکنیم.
خب بریم سراغ فرمول:
اول اینکه وزن رو در صورت کسر مینویسیم و در مخرج طول قد(متر) به توان 2
خب تا اینجا ما محاسبه BMI رو یاد گرفتیم ولی اون چیزی که برای ما مهمِ نتیجه این کسر هستش.
باید بدونیم که عدد به دست اومده نشان دهنده کمبود وزن، اضافه وزن و یا سالم بودن ما هست.
اگر نتیجه کسر زیر 18.5 باشه که باید بگم لاغری :|
ولی اگر زیر 25 و بالای 18.5 بود تبریک میگم شما یک مدل هستید (خودم 22 هستم :دی )
وااااااااای اگر نتیجه بین 25 و 30 بود چیزی نیست یکم اضافه وزن دارید.
ولی اگه بالای 30 بود بازم تبریک میگم شما چاق نیستید توپُرِ جذاب تشریف دارید.
خب الان دیگه کم کم باید آماده شده باشید برای نوشتن این برنامه، که من میخوام اونو با زبان PHP بنویسم.
توی قدم اول یک تابع(function) با نام BMI تعریف میکنیم که این تابع دو ورودی (قد و وزن) رو از یوزر میگیره.
function BMI($height, $weight) { //Your Code ! }
از الان به بعد همه کدهای من توی این تابع نوشته میشه...
بریم سراغ طول قد و تبدیل سانتی متر به متر
$height /= 100; or $height = $height / 100;
به دو صورت میتونید بنویسید که خودم روش اول رو بیشتر دوست دارم (برای محاسبه جمع، تفریق، ضرب و باقیمانده هم به همین شکل میتونید انجام بدید).
خب خب خب اصل ماجرا و نوشتن فرمول...
$bmi = round($weight / pow($height , 2), 2);
توی فرمول بالا برای راحتی کار از توابع php استفاده کردم.
تابع POW:
این تابع برای به توان رسوندن اعداد استفاده میشه که دو ورودی میگیره، اولین ورودی پایه و دومی توان هست
که در بالا قد رو به توان 2 رسوندیم.
تابع ROUND:
این تابع برای رُند کردن اعداد اعشاری به کار میره چون جواب تقسیم اعشار زیادی داره از این تابع استفاده کردم. که ورودی اول نتیجه کسر و ورودی دوم تعداد رقم اعشاری که نیاز داریم.
این تابع ورودی سومی هم میگیره که اینجا نیاز به نوشتن نبود اما توضیح کوتاهی میدم خدمت رفقای گُلم
- PHP_ROUND_HALF_UP : عدد رو به سمت بالا رند میکنه مثلا 1.5 میشه 2 - PHP_ROUND_HALF_DOWN : عدد رو به سمت پایین رند میکنه مثلا 1.5 میشه 1 - PHP_ROUND_HALF_EVEN عدد رو به نزدیک ترین عدد زوج رند میکنه مثلا 1.5 رو به 2 و هم چنین 2.5 رو هم به 2 تبدیل میکنه - PHP_ROUND_HALF_ODD عدد رو به نزدیک ترین عدد فرد رند میکنه مثلا 1.5 رو به 1 و 2.5 رو به 3 تبدیل میکنه
در ادامه با چند تا شرط IF میتونیم بفهمیم که کمبود یا اضافه وزن داریم.
متغییر out رو برای نمایش خروجی تعریف کردم که در ابتدا خالی هست.
$out = "" if($bmi < 18.5) { $out = "Under Weight , BMI : ". $bmi; } elseif($bmi < 25) { $out = "Normal , BMI : ". $bmi; } elseif($bmi < 30) { $out = "Over Weight , BMI : ". $bmi; } else{ $out = "Fat , BMI : ". $bmi; }
در هر مرحله نتیجه محاسبه BMI حساب میشه و در صورت درست بودن متغییر out مقدار دهی میشه، که اینجا با نقطه ( . ) یک متغییر رو به رشته متصل کردم (اینجا چون از دابل کوت " استفاده کردم میتونستم متغییرم رو همونجا وارد کنم، بصورت زیر.. )
$out = "Fat , BMI : $bmi" ;
و در آخرین خط قبل از آکولاد بسته شدن تابع، متغییر out رو به عنوان خروجی این تابع پاس میدم.
return $out;
فقط کافیه این تابع رو با قد و وزن خودمون صدا بزنیم، یادتون نره چون از return استفاده کردیم تابع رو echo کنید.
echo bmi(174, 64); //output -> Normal , BMI : 21.14
خیلی ممنون که تا اینجا کنار من بودید، اگر ایده جالبی تو سر دارید و دوست دارید به کُد تبدیل شه حتما تو کامنت بگید♥ خوشحال میشم پیج اینستام رو فالو کنید.
من محمد
اینجا ویرگول
امروز 25 بهمن 1400