Home / Homework3

Homework3


 
         สรุปความรู้ที่ได้จากการเรียนในวันที่  6/07/50 
          
เรื่อง การใช้ Class Math ในภาษาจาวา

                 
Class math ในภาษาจาวา มีไว้เพื่อช่วยในการเขียนโปรแกรมคำนวณทาง
      คณิตศาสตร์ที่มีความซับซ้อนมากกว่าการคำนวณเพียงบวก ลบ คูณ หารเท่านั้น
      ให้ง่ายและสะดวกมากขึ้น Class Math ประกอบด้วย method ต่างๆ
      ซึ่งการเรียกใช้งาน เราก็ต้องนำเอา method ที่ถูกเก็บไว้ใน class Math
      ซึ่งอยู่ในไลบรารี่ java.lang มาใช้ สำหรับ method ใน class Math มีดังต่อไปนี้
         - Math.PI ใช้คำนวณค่าของ PI ซึ่งมีค่าประมาณ 22/7
         - Math.E  ใช้คำนวณค่าของลอการิทึมธรรมชาติ
         - Math.min() ใช้หาค่าน้อยสุด
         - Math.max() ใช้หาค่ามากสุด
         - Math.round() ใช้ปัดเศษลงถ้าค่าน้อยกว่า 5 และปัดขึ้นถ้าค่านั้นมีค่าตั้งแต่ 5ขึ้นไป
         - Math.floor() ใช้ปัดเศษลง
         - Math.ceil()  ใช้ปัดเศษขึ้น
         - Math.random()ใช้ในการสุ่ม
         - Math.pow() ใช้ในการยกกำลัง


       ตัวอย่าง#1 การใช้ method Math.PI
 
         import java.util.*;
           public class arith{
 
             public static void main(String[] args) {
              Scanner in = new Scanner(System.in);
              double r,sum ;
              System.out.print("Input radius :");
              r = in.nextDouble();
              sum = Math.PI*r*r ;
              System.out.println("Circle ="+sum);
        }
       }
       ผลการรันโปรแกรม
        
Input radius :5
         Circle =78.53981633974483

       ตัวอย่าง#2 การทดสอบการใช้ method ต่างๆ ใน class Math

         import java.util.*;
          public class arith{
 
           public static void main(String[] args) {
              System.out.println("Sum ="+ Math.sqrt(2)) ;
              System.out.println("Sum ="+ Math.round(7.61)) ;
              System.out.println("Sum ="+ Math.floor(8.215)) ;
              System.out.println("Sum ="+ Math.ceil(9.5)) ;
         }
        }
        ผลการรันโปรแกรม
       
Sum =1.4142135623730951
         Sum =8
         Sum =8.0
         Sum =10.0 
        ศึกษาข้อมูลเรื่อง Class Math ได้ที่ http://java.sun.com/javase/6/docs/api/java/lang/package-summary.com

          การประกาศตัวแปร จะต้องประกอบด้วยชนิดข้อมูล และชื่อตัวแปร
          เช่น   int x;
               int a,b,c;
               int a1,a2=5;
         
          increment หรือการเพิ่มค่ามีรูปแบบคือ
           x  = x+1;
           x+ = 1;
           x++;
           ++x;
          decrement หรือการลดค่าใช้เหมือนกับ increment มีรูปแบบคือ
           x  = x-1;
           x- = 1
           x--;
           --x;

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

           รูปแบบการใช้ 
         if(ประโยคเงื่อนไข)
                คำสั่ง 1;
         else
                คำสั่ง 2;
          จากรูปแบบนี้ การประมวลผลคือ ถ้าประโยคเงื่อนไขที่ต้องการทดสอบทางเลือกมีค่าเป็นจริง
        ก็จะทำการประมวลผลในกลุ่มคำสั่งที่1 เพื่อให้ได้ผลลัพธ์ออกมา แต่ถ้าเป็นเท็จก็จะเลือกทำใน
        กลุ่มคำสั่งที่2 ซึ่งทำให้ได้ผลลัพธ์ที่ต่างกันออกมา
          ถ้าต้องการให้ประมวลผลในกรณีต่างๆ มากกว่าหนึ่งคำสั่ง เราสามารถนำ block มาใช้ ดังนี้

        if(ประโยคเงื่อนไข){
                กลุ่มคำสั่ง1;
        }
        else{
                กลุ่มคำสั่ง2;
        }
       if(ประโยคเงื่อนไข){
                กลุ่มคำสั่ง;
        }

     

       
        
โจทย์ฝึกคิด เรื่องกลุ่มคำสั่งทางเลือก ที่ทำในห้อง

                  
คิดเกรด  ถ้าคะแนน ตั้งแต่ 50 ขึ้นไป ให้ผ่านและเรียนวิชาใหม่
                   ถ้าไม่ถึง 50 ให้ไม่ผ่านเรียนซ้ำ
           
          โปรแกรมที่ได้คือ

           

                     
           ผลการรันโปรแกรม

                          

        
  

          
หาข้อมูลเพิ่มเติมจากในบทเรียน

                
   เรื่อง ตัวดำเนินการเปรียบเทียบ ตัวดำเนินการตรรกะ และลำดับการประมวลผลของตัวดำเนินการ

                      1.
ตัวดำเนินการเปรียบเทียบ (Equality and Relational Operator)
          ใช้สำหรับเปรียบเทียบค่า 2 ค่า และจะ return ค่าออกมาเป็น boolean (true/false)
          ถ้าหากนิพจน์เป็นจริง ก็จะให้ค่า true ถ้านิพจน์เป็นเท็จ ก็จะให้ค่า false

             

          

           ข้อควรจำ
           - เครื่องหมายที่มี 2 ตัว จะต้องเขียนติดกันเสมอ
           - เครื่องหมาย >= (มากกว่าหรือเท่ากับ) และ <= (น้อยกว่าหรือเท่ากับ)
           จะต้องเขียนเครื่องหมายเท่ากับไว้ด้านขวาเสมอ

           
           2.ตัวดำเนินการทางตรรกะ (Logical Operator)
          เมื่อต้องการตรวจสอบตัวดำเนินการเชิงเปรียบเทียบหลายๆ อัน จะใช้ตัวดำเนินการ
           ทางตรรกะในการตรวจสอบ
 
          

          ตัวอย่างการคิดตัวดำเนินการทางตรรกะ

         

         

          

         
          
          จะเห็นว่ามี AND สองแบบคือ && กับ & และมี OR อีก 2 แบบ คือ || กับ |
           สาเหตุแบบนี้เนื่องจาก conditional AND (&&) และ conditional OR ( || )
           จะหยุดทำการตรวจสอบทันทีเมื่อรู้แน่ชัดแล้วว่าคำตอบของการตรวจสอบนั้นจะตอบว่า true หรือ false เช่น

             ( gender == "female" ) && ( age >= 18 )


           หาก gender ไม่ได้มีค่าเป็น "female" โปรแกรมก็จะหยุดการตรวจสอบทันที เพราะรู้แล้วว่าจะคำตอบของ
           การตรวจสอบเป็น false การที่โปรแกรมมีหลักการทำงานเช่นนี้ เค้าเรียกว่า "Short-Circuit Evaluation"
           มีข้อดีคือ สามารถช่วยป้องกันการเกิด error ได้ระดับหนึ่ง เช่น ถ้าต้องการตรวจสอบว่า

             ( 10 / a == 2 )

           กรณีนี้ ถ้าหากตัวแปร a เป็น 0 จะเกิด error เพราะตัวหารเป็น 0 สามารถใช้หลักการทำงาน
           Short-Circuit Evaluation ช่วยป้องกันการเกิด error ได้ ดังนี้

            ( a != 0 ) && ( 10 / a == 2 )
//ถ้า a มีค่าเท่ากับ 0 นิพจน์แรกเป็นเท็จ ก็จะหยุดการทำงาน
                                            ไม่ตรวจสอบนิพจน์สองช่วยป้องกัน error ได้

           ด้วยเหตุที่ conditional AND (&&) และ conditional OR ( || ) จะหยุดทำการตรวจสอบ
           ทันทีเมื่อรู้แน่ชัดแล้วว่าคำตอบของการตรวจสอบนั้นจะตอบว่า true หรือ false ดังนั้นหากโปรแกรมเมอร์
           ต้องการให้มีการตรวจสอบทั้งสองนิพจน์ (นิพจน์สองอาจให้เพิ่มค่าตัวแปร โดยไม่สนใจนิพจน์แรก) เช่น

          ( gender == "female" ) && ( ++counter < 10 )

           จึงมี boolean logical AND (&) และ boolean logical OR ( | ) มาช่วย ดังนี้

          ( gender == "female" ) & ( ++counter < 10 )


                         ลำดับความสำคัญของตัวดำเนินการต่างๆ
            
            เรียงลำดับจาก ความสำคัญมาก → ความสำคัญน้อย
            ตามตารางนี้เรียงความสำคัญจากด้านบนลงข้างล่างค่ะ

           


    อ้างอิงจาก
    
http://www.thaiarchaeology.com/viewtopic.php?id=890&PHPSESSID=df9933938eb0af8ba00f17d998a99dfb

         http://www.cs.su.ac.th/~kanawong/courses/517211/slide/517211_lab04.ppt


 


    Post a comment

    Your Name or E-mail ID (mandatory)

     

    Note: Your comment will be published after approval of the owner.




     RSS of this page