วันอาทิตย์ที่ 23 ธันวาคม พ.ศ. 2555

 การควบคุมการทำงาน (Control Structure)  
www.google.com
  www.udru.ac.th


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

       กลุ่มคำสั่ง Selection
เป็นกลุ่มคำสั่งที่ใช้ในการตัดสินใจในการเลือกเงื่อนไขต่าง ๆ ภายในโปรแกรมเพียงเงื่อนไขเดียวมาทำงาน ได้แก่ คำสั่ง if และ Switch

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


if (เงื่อนไข){คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;}

else {คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นเท็จ}


ตัวอย่าง การรับค่าข้อมูลจาก Keyboard แล้วนำข้อมูลที่ได้มาเปลียบเทียบเงื่อนไข



class IfCheck{

public static void main(String args[]){

int a = Integer.parseInt (args[0]);

int b = Integer.parseInt (args[1]);

if (b == 0){

System.out.println("Error: divide by zero!");

System.exit(0);

}
System.out.println(a / b);

}

}

นอกจากนี้แล้วยังสามารถสร้างเงื่อนไขที่ซ้อนกันได้ด้วย เช่น




if (เงื่อนไข)


{ คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;



if(เงื่อนไข){คำสั่งต่าง ๆ เมื่อเงื่อนไขเป็นจริง;}

}



ตัวอย่าง การเปรียบเทียบโดยใช้เงื่อนไขที่มีการซ้อนกันอยู่ภายใน




class IfElse{

public static void main(String args[]){

int score = Integer.parseInt(args[0]);

if (score>=85) System.out.println("A");

else if (s >=75) System.out.println("B");



else if (s >=65) System.out.println("C");

else if (s >=55) System.out.println("D");



else System.out.println("F");

}

}




คำสั่ง switch เป็นการตรวจสอบเงื่อนไขโดยดูจากค่าตัวแปรโดยที่คำสั่ง Switch จะใช้ได้กับตัวแปรที่เป็นค่าคงที่เท่านั้น มีรูปแบบดังนี้




switch(ตัวแปร)

{ case ค่าที่1:คำสั่ง 1; break;

case ค่าที่2:คำสั่ง 2; break;

case ค่าทื่ n:คำสั่ง n;break;

default : คำสั่งเมื่อไม่มีค่าที่ตรงกับที่ระบุใน case;

}


ตัวอย่าง การเปรียบเทียบเงื่อนไขแบบหลายตัวเลือก




class Switch1{

public static void main(String args[]){

char g = args[0] . charAt(0);

switch (g){

case "A" : System.out.println("ดีมาก"); break;

case "B" :System.out.println("ดี"); break;

case "C" :System.out.println("พอใช้"); break;





case "D" :System.out.println("อ่อน"); break;

case "F" :System.out.println("ไม่ผ่าน"); break;

default :System.out.println("Invalid");

}

}

}


      กลุ่มคำสั่ง Iteration

      เป็นกลุ่มคำสั่งที่ใช้ในการวนรอบ (loop) การทำงานไปเรื่อย ๆ จนกว่าเงื่อนไขที่กำหนดไว้จะเป็นจริง จึงจะหลุดออกจากวงโคจรการวนรอบนี้ได้ ได้แก่ while, do..while, และ for


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




while(เงื่อนไข){

คำสั่งเมื่อเงื่อนไขเป็นจริง;

}

ตัวอย่าง การใช้การวนซ้ำแบบ while โดยจะทำการเปรียบเทียบเงื่อนไขก่อนจึงจะทำคำสั่งที่บรรจุอยู่ภายใน




class WhileDeno{

public static void main(String args[]){

int n = 10;

while (n > 0){

System.out.println("tick "+n);

n--;



}

}

}


คำสั่ง do..while เป็นรูปแบบการวนซ้ำไปเรื่อย ๆ แต่จะไม่มีการตรวจสอบเงื่อนไขก่อนการประมวลผลคำสั่งต่าง ๆ ที่อยู่ภายใน loop ในครั้งแรก จากนั้นจึงค่อยทำการตรวจสอบเงื่อนไข ถ้าเป็นจริงก็จะกลับไปทำคำสั่งต่าง ๆ แต่ถ้าเป็นเท็จก็จะหลุดออกจาก loop มีรูปแบบดังนี้




do{

คำสั่งเมื่อเงื่อนไขเป็นจริง;

}while(เงื่อนไข);



ตัวอย่าง การใช้การวนซ้ำแบบ do..while จะทำการประมวลผลคำสั่งที่บรรจุอยู่ภายในก่อนทีจะทำการเปรียบเทียบเงื่อนไข



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



for(ค่าตัวแปรเริ่มต้น; เงื่อนไข;เปลี่ยนแปลงค่าตัวแปร){

คำสั่งเมื่อเงื่อนไขเป็นจริง

}

ตัวอย่าง การใช้การวนซ้ำแบบ for จะทำการประมวลผลคำสั่งต่าง ๆ จนกว่าเงื่อนไขจะเป็นเท็จ



class ForDemo{

public static void main(String args[]){

for (int i = 1; i <= 10; i++)

System.out.println("i = " + i);

}

}



วันจันทร์ที่ 10 ธันวาคม พ.ศ. 2555


2.6 การเรียกใช้ attributes


subject:การเรียกใช้ attribute แบบที่ 1
syntax:ClassName object = new ClassName().attributeName;
example:Person bamboo = new Person().name

subject:การเรียกใช้ attribute แบบที่ 2
syntax:ClassName object = new ClassName();
object.attributeName;
example:Person bamboo = new Person();
bamboo.name = "bamboolabcode"


2.5  การเรียกใช้ Method
                   การเรียกใช้งาน Method ดังในโปรแกรมตัวอย่าง มีขั้นตอนการทำงานดังนี้
                         1. สร้าง Object ของ Class ที่ต้องการเรียกใช้ Method นั้น โดยการใช้คำสั่ง
         <Class_name>  <Object_name> = new <Class_name>(<Class_argument>);
                    ตัวอย่างเช่น 
                         TestMethod  obj = new TestMethod();
                                ในกรณีที่ Method มีการมีนิยามการใช้งานแบบ Static แสดงว่า Method นั้นสามารถเรียกใช้งานได้เลย                      
                                โดยไม่ต้องสร้าง Object
                         2. เรียก Method ที่มีอยู่ใน Class นั้นผ่านตัวแปร Object โดยใช้เครื่องหมายจุด(.) ในการเข้าถึง Method            
                             นั้นๆ
                         ตัวอย่างเช่น
                   obj.input();   เรียก Method ที่ชื่อ input ผ่าน Object ที่ชื่อ obj  
                   output(score,grade); เรียก Method ที่ชื่อ output โดยไม่ต้องสร้าง Object เพราะMethod นี้เป็นแบบ static
                         3. ส่งข้อมูลนำเข้าให้กับ Method นั้น ดังตัวอย่างเช่น
     grade=process(score); ใน Method ที่ชื่อ process มีการรับจำนวนเต็มเข้ามา
                             ถ้าไม่มีข้อมูลนำเข้า เช่น obj.input(); ต้องเขียนชื่อ Method ตามด้วยวงเล็บ
                         4. รับข้อมูลที่ส่งกลับมาจาก Method นั้น ดังตัวอย่างเช่น
                grade=process(score); ใน Method ที่ชื่อ process มีการส่งค่ากลับเป็นตัวอักษร ดังนั้นต้องตัวแปรที่ชื่อ            
                grade มารับข้อมูลที่เป็นตัวอักษร ถ้าไม่มีข้อมูลส่งกลับมา หรือ void  ใน Method เช่น  
                output(score,grade);  ไม่มีการส่งค่ากลับก็ไม่ต้องมีตัวแปรมารับค่าแต่อย่างใด


2.4 การประกาศ object

        <Class_name>  <Object_name> = new <Class_name>(<Class_argument>)  
เมื่อ            Class_name คือ ชื่อของ Class
Object_name คือชื่อของตัวแปร Object
Class_argument คือตัวแปรในการรับเข้ามาในการสร้าง Class ขึ้นอยู่กับ Constructor ของ Class นั้นๆ

                ตัวอย่างเช่น
BufferedReader  input = new BufferedReader(new InputStreamReader(System.in));

            อนุญาตให้มีหลาย attributes สำหรับอีลีเมนต์ที่กำหนดในการประกาศ attribute list
          ตัวอย่างเช่น สำหรับอีลีเมนต์ book

         <!ATTLIST book
          isbn ID #REQUIRED
         type (fiction|nonfiction) fiction >


2.2 การประกาศ Method
                   int maxFunction(int x1, int x2){
   int max = 0;
   if(x1 > x2)
max = x1;
else
max = x2;
   return(max);
}
       คำอธิบาย
                   ชื่อ Method คือ maxFunction   รับข้อมูลเข้ามาเป็นจำนวนเต็ม 2 ตัว คือ int x1 และ int x2 และส่งค่ากลับเป็น     
                int
                   หน้าที่ของ Method นี้ คือทำการตรวจค่าของ x1 และ x2 ว่าตัวใดมีค่ามากที่สุด จากนั้นกำหนดค่าให้ตัวแปร    
                max เพื่อส่งค่ากลับaccessibility ของ Method
accessibility เป็นการกำหนดชนิดของการเรียกใช้ ใช้กำหนดขอบเขตการใช้งานของตัวแปร, Method หรือ Class 
แบ่งออกเป็น
   1. static  ใช้นิยามตัวแปรและ Method ที่ต้องการให้มีค่าคงที่ สามารถนำไปใช้ได้กับทุกๆส่วนของ Class โดยค่า
นั้นไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ


"ไวยากรณ์ภาษาจาวา"



2.1 การประกาศ class

                   ตัวอย่าง


            class calculator

           {



             public $i;


            function add($i1,$i2)
           {
             $result=$i1+$i2;
           return $result;
           }

           }

                     การประกาศคลาสจะเริ่มด้วยคำว่า class แล้วตามด้วยชื่อคลาสในตัวอย่างคือ calculator
            ภายในคลาสจะมีตัวแปร มีฟังก์ชัน การประกาศฟังก์ชันของคลาสก็เหมือนกับการประกาศฟังก์ชัน              
            ในภาษา php




1.6 Object 


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


1.5 Class 

          คือ กลุ่มของ object ที่มีโครงสร้างพื้นฐานของ Attribute และ behavior เหมือนกัน เช่น คลาสของหนังสือ ก็จะต้องมีคุณสมบัติ ISBN, copyrightData, edition เหมือนกัน และมี behavior คือ Open(), Close() เหมือนกัน






1.4 Hierarchy 
        
         การจัดเรียงตามลำดับความสำคัญ หน่วยที่ใหญ่กว่า สำคัญกว่า จะอยู่เหนือกว่า หรืออยู่ก่อน หน่วยเล็กกว่าหรือหน่วยย่อยจะเรียง ลำดับถัดลงมา หรืออยู่หลัง



1.3 Modularity   
         
           ได้แก่สิ่งที่มีลักษณะคล้ายโปแกรมอย่างหนึ่ง ซึ่งมันจะถูกทำให้แตกออกเป็นส่วนย่อยๆ หลายส่วน แต่ละส่วนเป็นอิสระแก่กัน ส่วนที่เป็นอิสระเหล่านี้ จะส่งที่มันมีอยู่ออกมา สิ่งที่แต่ละโมดูลมีอยู่เหล่านี้ ได้แก่ตัวคงที่ (constant) ชนิดของข้อมูล (data type) ตัวแปร (variable) การทำหน้าที่ (function) และวิธีการทำงาน (procedure) เป็นต้น






1.2 Encapsulation                                                                                                                

          คือ การรวมหลาย item เข้าด้วยกันใน 1 หน่วย ซึ่งเป็นการปกปิดข้อมูลและการทำงานของ Object ไว้ ซึ่งผู้ใช้จะสามารถใช้งาน Object ผ่าน Method


1.1 Abstraction     
        
          เป็นหนึ่งใน 3 แนวคิดหลักของ OOP ร่วมกับ encapsulation และ inheritance โดยที่ Abstraction มีความสัมพันธ์ใกล้ชิดกับ encapsulation และ data hiding มากทีเดียว ถ้าแปลตามรากศัพท์แล้ว Abstraction มาจากรากศัพท์ Latin 2 คำคือ abs หมายถึง away from และ trahere หมายถึง draw ซึ่งเมื่อแปลรวมกันจะได้ เป็นกรรมวิธีที่กำจัดหรือเอาลักษณะเฉพาะบางประการออกไป เพื่อทำให้เหลือเฉพาะลักษณะเฉพาะเท่าที่จำเป็นเท่านั้นในทาง OOP การทำ Abstraction คือการซ่อน attribute และ behaviour ทุกอย่างที่ไม่เกี่ยวข้องกับ object เพื่อช่วยลดความซับซ้อน และเพิ่มประสิทธิภาพในการใช้งาน




Object- Oriented Programming 


           หมายถึง วิธีการเขียนโปรแกรมของนักเขียนโปรแกรมรุ่นใหม่ ที่จัดแบ่งการเขียนคำสั่งกันออกเป็นชุด ๆ แต่ละชุดเรียกว่า "วัตถุ" (object ) แล้วจึงนำเอาชุดคำสั่งแต่ละชุดนั้นมารวมกันเป็นโปรแกรมชุดใหญ่อีกทีหนึ่ง ในบางครั้งยังอาจนำ "วัตถุ" ของโปรแกรม หนึ่งไปรวมกับ "วัตถุ" ของอีกโปรแกรมหนึ่ง แล้วเรียกออกมาใช้ได้เลย ทั้งนี้ทำให้ผู้เขียนโปรแกรมใหม่ไม่จำเป็นต้องเริ่มต้นใหม่ทั้งหมด วิธีการดังกล่าวนี้ช่วยประหยัดเวลาได้มาก พูดให้ง่ายก็คือ ทุกโปรแกรมไม่ต้องเริ่มต้นจากศูนย์ อนึ่ง คำว่า "วัตถุ" นั้น หมายรวมไปถึงภาพหรือกราฟิกด้วย ภาพหนึ่งภาพ เช่น การสร้างวงกลมนั้น เกิดจากการเขียนโปรแกรมโดยใช้สูตรคำนวณเส้นโค้ง ซึ่งจะประกอบด้วยคำสั่งหลายร้อยคำสั่ง แล้วเก็บไว้เป็น "วัตถุ" หนึ่ง ฉะนั้น เมื่อใดที่เราสั่งวาดวงกลม ก็เท่ากับไปเรียก "วัตถุ" นี้มาใช้ หลังจากนั้น หากเราจะต่อเติมเป็นภาพอื่นต่อไป คอมพิวเตอร์ก็จะไปดึงอีก "วัตถุ" หนึ่งมาทำต่อให้