วันพฤหัสบดีที่ 19 กันยายน พ.ศ. 2556

โปรแกรม คำนวนดัชนีมวลกาย(BMI)


ในบทความนี้จะนำโปรแกรมที่พื้นฐานมาบอกกล่าคือ โปรแกรม Eclipse จะมีหุ่นยนต์ ที่มีชื่อว่า Karel มาเป็นตัวแสดงผลของการเขียนโปรแกรม
ตัวอย่างตัวโปรแกรมEclipse









ซึ่งการเขียนก็จะคล้ายๆกับการเขียนโปรแกรมทั่วๆไป สำหรับคนที่เคยเขียนโปรแกรมหรือเคยเห็นมาบ้างเช่นโปรแกรม C หรือ C++ ก็รู้ว่า โปรแกรมจะทำการอ่านคำสั่งแบบเรียงบรรทัดลงมาเรื่อยๆ

มาลองดูตัวอย่างโปรแกรมและคำอธิบาย เป็นโปรแกรมคำนวนดัชนีมวลกาย เป็นสิ่งที่เขียนแบบง่ายๆนะครับ เนื่องจากการคำนวนจริงจะมีอะไรที่ยุ้งยากกว่านี้ครับ  ตัวโปรแกรมที่ทำนี้ เป็นประเภทที่ให้เรากรอกข้อมูลลงไปแล้วโปรแกรมจะทำารคำนวน จะบอกถึงค่าBMI และ ประเมินเบื้องต้นว่าท่านมีลักษณะอย่างไร เช่น ผอม ปกติ อวบ และอ้วน

คำที่จะพบในตัวโปรแกรม

import คือ การบ่งบอกว่าเราจะนำเอา โปรแกรมอะไรมาใช้งาน
public class คือ การประกาศชื่อโปรแกรมของเรา
System.out.println คือ การออกคำสั่งให้กับโปรแกรมว่าจะให้มันแสดงค่า
try คือ โปรแกรมรับจะรับค่าเข้าไปเก็บ
catch คือ โปรแกรมจะแสดงค่า
double คือ การรับค่าเป็นตัวเลขที่เป็นทศนิยม
if คือ เงื่อนไขที่จะนำไปสู่การสังการ


เริ่มจากเราต้องมารู้จักก่อนว่าดัชนีมวลกาย มีสิ่งใดที่ต้องใช้บ้าง เพื่อนำมาใส่ในโปรแกรมแล้วจะต้องทำการคำนวน

สิ่งที่ต้องใช้คือ ส่วนสูง (m) (เมตร), น้ำหนัก (kg)(กิโลกรัม)

สรุตคำนวนคือ ส่วนสูงยกกำลังสอง หาร น้ำหนัก   (นี้เป็นสรูตแบบคราวๆ)

มาดูโปรแกรมกัน..


import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class bmi{

public static void main(String[] args) {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Scanner sc = new Scanner(System.in);
   
    String name = "";

    System.out.println("Please Enter Your Name:");
   
    BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
   
    try{
        name = dataIn.readLine();
    }

    catch (IOException e){
        System.out.println("Error!");
    }
   
    System.out.println(" Hello " +name+ "!");
   
    System.out.println("Please Enter Your Height Is M");
   
    System.out.println("Please Enter Your Weight Is Kg");
   
    double height ;
    String  H  = "";
   
    double weight ;
    String W  = "";
    double b = 0.0d;


try{
    System.out.println("enter Height");
    H =  br.readLine();
    System.out.println("enter weight");
    W = br.readLine();
       
   }

catch (IOException e){
    System.out.println("Error!"); }


height= Double.parseDouble(H);
weight = Double.parseDouble(W);
b= weight/(height*height);

System.out.println("BMI"+ b );

 
        if(18.5<b){
            if(b<22.5)
            System.out.println("narmal");
           
        }
        if(23.0<b){
            if(b<29.9)
        System.out.println("plump");
        }
       
        if(b>30){
            System.out.println("fat");
        }
       
        if(b<18.5){
            System.out.println("thin");
        }

}
}

อธิบาย

1.นี้คือตัวโปรแกรมทั้งหมด เมื่อเราไปดูที่ช่องประมวลผล สิ่งแรกที่เห็นคือ

 Please Enter Your Name: คือให้เราใส่ชื่อ จากโปรแกรมคือ  String name = "";

    System.out.println("Please Enter Your Name:");

เมื่อเรากรอกชื่อไปเเล้วมันจะเข้าไปอยู่ที่
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
   
    try{
        name = dataIn.readLine();
    }

    catch (IOException e){
        System.out.println("Error!");
    }
2.โปรแกรมจะตอบกลับ เป็นชื่อที่เราพิมพ์ไป จาก System.out.println(" Hello " +name+ "!");

3. Please Enter Your Height Is M,Please Enter Your Weight Is Kg คือโปรแกรมบอกให้เรากรอกน้ำหนักกับส่วนสุง  จาก
System.out.println("Please Enter Your Height Is M");
   
    System.out.println("Please Enter Your Weight Is Kg");

4. double height ;
    String  H  = "";
   
    double weight ;
    String W  = "";
    double b = 0.0d;
เป็นการบอกว่าเราจะรับข้อมูลเป็นตัวเลขที่เป็นทศนิยม ที่มีชื่อว่า height,weight

5. try{
    System.out.println("enter Height");
    H =  br.readLine();
    System.out.println("enter weight");
    W = br.readLine();
เป็นโปรแกรมที่รับค่าเข้าไป เพื่อไปคำนวน

6. height= Double.parseDouble(H);
  weight = Double.parseDouble(W);
เนื่องจาก String  เป็นค่าแบบตัวหนังสือจึงเปลี่ยนเป็นตัวเลขโดย Double.parseDouble(H);

7. เราให้ b = ค่า BMI ที่เราต้องการจะหา    b= weight/(height*height);

(*)สัญลักษณ์ของการคูณ , (/)สัญลักษณ์ของการหาร

b= weight/(height*height); คือตัวสูตรที่เราต้องใช้

8.หลังจากที่กรอกข้อมูลลงไปเรียบร้อยเเล้ว จะขึ้นผลของ BMI มาให้ และพร้อมด้วยแสดงด้วยว่าท่าน ผอม ปกติ อวบ หรืออ้วน

9. ตัวคำสั่งที่เป็นตัวบอกว่าท่าน  ผอม ปกติ อวบ หรืออ้วน คือ

if(18.5<b){
            if(b<22.5)
            System.out.println("narmal");
           
        }
        if(23.0<b){
            if(b<29.9)
        System.out.println("plump");
        }
       
        if(b>30){
            System.out.println("fat");
        }
       
        if(b<18.5){
            System.out.println("thin");
        }
เป็นการกำหนดเงื่อนไขค่า BMI ที่ได้จากการคำนวนของสูตร

ตัวอย่างการแสดงผล

Please Enter Your Name:
Tanawat
 Hello men!
Please Enter Your Height Is M
Please Enter Your Weight Is Kg
enter Height
1.74
enter weight
100
BMI33.029462280354075
fat

(** สีเขียวเป็นส่วนที่เราใส่ค่าเข้าไป**)

10. สี่ต้องระวังในการโปรแกรมคือ การใส่เครื่องหมาย { } เพราะต้องดูให้ดีๆว่าครบหรือไม่ และการเขียนโปรแกรมบางตัวต้องใช้ตัวใหญ่ บางตัวต้องใช่ตัวเล็ก


ขอบคุณที่เข้าชมครับ

 อ้างอิง

 https://docs.google.com/file/d/0BzreHZ54Xr4TMFhtQ1JuRW5pZms/edit?usp=sharing