วันศุกร์ที่ 21 ธันวาคม พ.ศ. 2555

Control Structure


 Control Structure

มี 3 แบบคือ
1.Sequential(แบบลำดับ)
2.Selection(แบบเลือก)
3.Loop(แบบทำซ้ำ)

   
1.Sequential
   การทำคำสั่งเป็นไปตามลำดับจากคำสั่งที่หนึ่งไปจนจบ
 
   

อาจจะประกอบด้วยคำสั่งเดียวหรือทำงานร่วมกับ If-then หรือ Loop ต่างๆ

example.

#include<stdio.h>
int main(){
int num=5;
printf("Hello World\n");
printf("%d \n",num);
return 0;
}


2.Selection
2.1. If-then
การทำงาน จะตรวจสอบเงื่อนไขถ้าจริงทำคำสั่งต่างๆด้าน true

 
                                   

 

รูปแบบไวยากรณ์

if(logical expression){
    statemets;
}


example.

If(total>=80){
    printf("Excellent \n");
}



2.2. If-then-else
 การทำงาน จะตรวจสอบเงื่อนไขถ้าเป็นจริงทำคำสั่งต่างๆด้าน true
ถ้าเป็นเท็จทำคำสั่งต่างๆด้าน false




รูปแบบไวยากรณ์

If(logical expression){
   true statements;
}
else{
   false statements;
}


example.

If(temp<32){
    printf("Cover Tomatoes \n");
}
else{
    printf("Uncover Tomatoes \n");
}



2.3. If-If-If

 การทำงาน จะตรวจสอบเงื่อนไข ถ้าเป็นจริงทำตามคำสั่งฝั่งด้าน
true ถ้าเป็นเท็จทำคำสั่งด้าน false ปละตรวจสอบเงื่อนไขของ If
ตัวใหม่


                                



รูปแบบไวยากรณ์

If(logical expression){
    statement 1
}else if(logical expression){
    statement 2
}else if(logical expression){
    statement 3
}else{
    statement 4
}


example.

int total=79;
   if(total>=80){
      printf("Excellent \n");
}
   else if(total>=70){
      printf("Good \n");

}
   else if(total>=60){
      printf("Fair \n");
}
    else{
      printf("Poor \n");
}


2.4. Case
 
    การทำงาน จะตรวจสอบเงื่อนไขทีละกรณี ถ้าจริงงทำคำสั่งด้าน
 true ถ้าเป็นเท็จ ตรวจสอบเงื่อนไขต่อไป

 


รูปแบบไวยากรณ์

switch(expression){
  case 1:statements 1;break;
  case 2:statements 2;break;
  case N:statements N;break;
default:statement N+1;
}


example.

switch(no){
  case1:printf("Korea \n");break;
  case2:printf("Australia \n");break;
  case3:printf("Japan \n");break;
  default:printf("Thailand \n");
}



3.Loop

3.1. PRE-TEST(WHILE)
   คือ การทำงานซ้ำโดยมีการทดสอบเงื่อนไขก่อนถ้าจริงทำซ้ำไปเรื่อยๆ

                                 
 
รูปแบบไวยากรณ์
 
->  Initial statementss;
->  while (logical expression){
->  statements;
->  update statements;
      }


        example.
->      total=1;
->         while(total<5){
->      printf("Excellent \n");
->      total=total+1;
           }


3.2. POST-TEST(DO...WHILE)
   คือ การทำงานซ้ำโดยมีการทดสอบเงื่อนไขทีหลัง ถ้าจริงทำซ้ำไป
เรื่อยๆ
  
                                               
 
 
รูปแบบไวยากรณ์
 
->  Initial  statements;
       do{
->  statements;
->  udate statements;
->  }while(logical expression);


    example.

->  total=1;
        do{
->  printf("Excellent \n");
->  total=total+1;
->  }while(total<5);


3.3. AUTOMATIC COUNTER(FOR)
  คือ การทำงานซ้ำแบบรู้จำนวนรอบล่วงหน้า ถ้าเงื่อนไขเป็นจริงทำซ้ำ เงื่อนไขเป็นเท็จจะออกจากการทำงงาน

                                          

 
รูปแบบไวยากรณ์
                (1)                 (2)                  (4)
for(initial statements;expression;udate statements){
    (3) statements;
     }
 
example.
         (1)        (2)           (4)
for(total=1;total<5;total=total+1){
  (3)  printf("Excellent \n");
   }
 
 
 
 
 
 
 
 













 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



    

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

Abstraction

    Abstraction คือ กระบวนการการให้ความคิดรวบยอดกับวัตถุใด ๆ  เพื่อสร้าง class ซึ่งแบ่งได้เป็น
3 กระบวนการ ดังต่อไปนี้
1.Classification Abstraction เป็นกระบวนการที่ใช้แยกประเภทวัตถุต่างๆ ที่อยู่ในกรอบความคิด เพื่อให้ความคิดรวบยอดแก่วัตถุเหล่านั้น จนกระทั่งได้ Class พื้นฐานตามต้องการ
 2.Aggreation Abstraction คือ กระบวนการที่นำเอา Class พื้นฐานตามต้องการ หรือ ประกอบกัน เพื่อให้เกิด Class ที่ใหญ่ขึ้น
3. Generalization Abstraction คือ กระบวนการในการนำ class ที่มีลักษณะเหมือนกันหรือคล้ายกันหรือมีสมบัติอย่างใดอย่างหนึ่งร่วมกัน มาจัดหมวดหมู่ เป็น class เดียวกัน ในทำนองกลับกัน ถ้ามี class 1 class แล้วจำแนกออก เป็นClass   ย่อย ๆ เราเรียกวิธีการนี้ว่า Specialization

 

                      
 
 
 
Encapsulation

    โดยทั่วไป Encapsulation คือการรวมของสิ่งหนึ่งภายในอีกสิ่ง ดังนั้นสิ่งที่รวมไม่ปรากฎ (decapsulation)  คือขจัดหรือทำให้สิ่งของปรากฎเหมือนก่อนการทำ Encapsulation   ใน object-oriented programming, Encapsulation คือการรวมภายในอ๊อบเจคโปรแกรมของทรัพยากรทั้งหมดที่จำเป็นสำหรับอ๊อบเจคให้ทำงาน โดยพื้นฐานคือ เมธอด และข้อมูล อ๊อบเจคได้รับการกล่าวถึง ตีพิมพ์อินเตอร์เฟซของตัวเองอ๊อบเจคอื่นยึดติดกับอินเตอร์เฟซเหล่านี้เพื่อใช้อ๊อบเจคนี้โดยปราศจากความกังวลการทำงานกับอ๊อบเจค ความคิดคือ ไม่บอกว่าจะเรื่องนี้อย่างไร ให้ทำอ๊อบเจคสามารถคิดถึงการบรรจุอะตอม อินเตอร์เฟซของอ๊อบเจคประกอบด้วยเมธอดสาธารณะและข้อมูลประกอบ
                             


 Modularity

  
Modularity คือ การออแบบต้นแบบระบบที่ถูกแบ่งออกเป็นชุดของหน่วยปฏิบัติการ (โมดุล) ที่สามารถประกอบเป็นโปรแกรมขนาดใหญ่ โมดุล สามารถรวมคอลเลกชันองค์ประกอบที่เกี่ยวข้อง เช่น คุณสมบัติมุมมองหรือตรรกะทางธุรกิจและชิ้นส่วนของโครงสร้างพื้นฐาน เช่น การบริการสำหรับการบันทึกหรือตรวจสอบผู้ใช้ 


 



Hierarchy

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



 


Class

    Class คือ กลุ่มของ Object  ที่มีโครงสร้างพื้นฐานพฤติกรรมเดียวกัน ดังนั้น Object ที่มีคุณสมบัติลักษณะเดียวกันนี้จะรวมกลุ่มอยู่ใน Class เดียวกัน จึงสามารถสรุปได้ว่า Class คือ ต้นแบบข้อมูล ที่มีไว้เพื่อสร้าง Object นั่นเอง Class นอกจากจะมีชื่อ Class ที่บอกคุณสมบัติของ Class นั้นแล้ว ยังมี Attribute และ Operation ต่างๆ ซึ่งเป็นตัวอธิบายรายละเอียดและหน้าที่ต่างๆด้วย



  

object

     object คือ วัตถุที่เป็นรูปธรรมและนามธรรม ที่มีอยู่จริงบนพื้นโลก(real-world)

-สิ่งที่มีลักษณะเป็นรูปธรรม (จับต้องได้) เช่น จักรยาน,รถ,สุนัข,องค์กร,ใบรายงานสินค้า เป็นต้น

-สิ่งที่มีลักษณะเป็นนามธรรม(จับต้องไม่ได้) เช่น ความเป็นเจ้าของ,ความคิด,ความรู้สึก เป็นต้น

object จะประกอบด้วย 2 ส่วนปฏิบัติการ คือ attribute และ method

1. Attribute หรือ Object Data  ก็คือถ้าเรามองสุนัขเป็น Object สิ่งที่เป็น Attribute ของ Object


ก็คือ ชื่อของสุนัข , เพศของสุนัข และพันธุ์ของสุนัขนั่นเอง หรือ ถ้าเรามอง เครื่องคอมพิวเตอร์ของเรา

เป็น Object ส่วนที่เป็น Attribute ของ Object ของเครื่องคอมพิวเตอร์ก็จะเป็น ชนิดของคอมพิวเตอร์ ,

ยี่ห้อหรือ รุ่นของคอมพิวเตอร์ นั่นเอง

2. Method Object หรือ Behavior คือ ส่วนของพฤติกรรมของ Object อย่างเช่น object ของสุนัข

จะมี method เป็น เห่า , วิ่ง หรือ กินข้าว และ เครื่องคอมพิวเตอร์ จะมี method เป็น การคำนวณ ,

เล่นเกม , วาดรูป เป็นต้น









 

 





 

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

การประกาศ Class



              
 
ในรูปนี้เป็นเพียงการประกาศ ตัวแปร(Member variable) และเมธอด (Method) ของคลาสเท่านั้น
ยังมีการประกาศ Property ที่เป็นการกำหนดคุณสมบัติให้กับตัวแปรอีก ใน Objective-C นั้นเราสามารถ
ประกาศตัวแปรได้ทั้ง 2 แบบ คือแบบ Strong type และแบบ Weak type สำหรับการประกาศแบบ Strong type ก็ประกาศแบบปกติ
โดยขึ้นต้นด้วยชื่อ class และตามด้วย * (หมายถึงการเป็น pointer) และตามด้วยชื่อของ object ที่เราจะตั้ง แต่การประกาศแบบ Weak type นั้นจะใช้คำว่า id นำหน้า
โดย “ไม่ต้องมี *” เพราะการประกาศ id นั้นจะเป็นการประกาศตัวแปรที่เป็น pointer ไปโดยอัตโนมัติ ซึ่งจะใช้บ่อยอยู่พอสมควรในกรณีที่เราไม่รู้ว่า object นั้นเป็น type อะไร
 
การประกาศ Attribute

     Attribute คือ สิ่งที่บ่งบอกลักษณะของวัตถุ อาจเป็นลักษณะที่มองเห็น สถานะ คุณภาพ ปริมาณ
Attribute ของ สมุดบัญชี ประกอบด้วยเลขที่บัญชี รหัสลูกค้า
     ค่าที่เก็บในวัตถุของสมุดบัญชีแต่ละเล่มจะเป็นข้อมูลของบัญชีนั้น
การประกาศ attribute ของ object คือ การประกาศตัวแปร(variable)ไว้ในคาส
แต่ละวัตถุมีตัวแปรชื่อเหมือนกัน แต่ละคำในตัวแปรมีได้ต่างกัน จึงมักเรียกตัวแปรของวัตถุเหล่านี้เรียกว่า instance variable

 
การประกาศ Method

       การติดต่อสื่อการในระหว่าง object นั้นเราจะเรียกว่าการส่ง message นะครับ ความจริงมันก็เป็นเรื่องปกติของทุกอย่างบนโลกอยู่แล้วว่าถ้าวัตถุสองอย่างจะติดต่อสื่อสารกันได้ก็ด้วยการส่งข้อความไปมาระหว่างกัน ซึ่งการส่ง message ในการเขียนโปรแกรมแบบ OOP นั้นก็คือการสั่งให้ object ทำงานตาม method ที่ตัวเองสามารถตอบสนองและรู้ว่าจะต้องทำงานอะไรบ้าง โดย Method ในภาษา Objective-C นั้นมี 2 แบบ คือแบบที่มี เครื่องหมาย ” + ” (บวก) และ เครื่องหมาย ” – ” (ลบ) นำหน้า สองอันนี้ต่างกันตรงที่
 method ที่มีเครื่องหมาย ” – ” นำหน้า : เป็น method ทั่วไปที่เอาไว้กำหนดการทำงานต่างๆ ของ class ซึ่งจะเรียกใช้ method แบบนี้ได้ แน่นอนเราต้องมีการสร้าง object ของ class นั้นๆ ขึ้นมาซะก่อน
 method ที่มีเครื่องหมาย ” + ” นำหน้า : เป็น method ที่ไม่จำเป็นต้องมีการสร้าง object ขึ้นมาก่อนแต่จะสร้าง object ขึ้นมาหลังจากที่ method นี้ถูกเรียกใช้
สำหรับรูปแบบการประกาศ method ในภาษานี้นั้นอาจจะดูแปลกๆ หน่อย เพราะ parameter แต่ละตัวจะมี keyword กำกับเป็นของตัวเอง โดยคั่นด้วย ” : ”
และการกำหนด type ของ parameter แต่ละตัวก็จะต้องวงเล็บไว้หน้า parameter นั้นๆ ซึ่งอาจจะดูยาวไปแต่ผมชอบเพราะมันอ่านเป็นภาษาคนมากกว่าภาษาอื่นๆ
มันแทบจะทำให้เราเข้าใจเลยด้วยซ้ำว่า method นี้เอาไว้ทำอะไรแค่เพียงอ่านชื่อ method
 
 


การประกาศ object

      object คือชุดของข้อมูลเกี่ยวกับเรื่องใดเรื่องหนึ่ง ซึ่ง object จะมีทั้งแบบที่เราสรา้งขึ้นมาใหม่เพื่อไว้ใช้งานเองกับแบบที่ javascript สร้างขึ้นมาไว้แล้ว
ผมจะให้ดูวิธีการสร้าง object แบบที่มีลักษณะการำงานเหมือน Array จะได้เข้าใจง่าย คือโดยเริ่มต้นที่เราสร้าง object ขึ้นมา จะเป็นแค่ object เปล่าๆ
 แต่เราสามารถเก็บข้อมูลลงไปได้หลายข้อมูลในหนึ่งๆ object โดยใช้วิธีการอ้างอิงถึง Property เช่น การเก็บข้อมูลพนักงาน เราอาจจะเเก็บ ชื่อ นามสกุล เงินเดือน
หน้าที่ ตำแหน่ง อายุ เป็นต้น
ตัวอย่าง :: การสร้าง Object
var employee = { name:”teerapuch”, lastname:”kassakul”,age:27};

 
 
การเรียกใช้ Methods
    class hello7 { public static void main(String args[]) { minihello(); } static void minihello() { System.out.println("result of mini hello"); } }

 
  
การเรียกใช้ Attributes

แบบที่ 1 :ClassName object = new ClassName().attributeName;
               Person bamboo = new Person().name;
แบบที่ 2 : ClassName object = new ClassName();object.attributeName;
               Person bamboo = new Person();bamboo.name = "bamboolabcode";