วันเสาร์ที่ 2 กุมภาพันธ์ พ.ศ. 2556

รายงาน ความเข้าใจ programming fundamentals

อาจารย์ครับ ผมไม่รู้จะเริ่มยังไง ก็เลยเริ่มทำlabเก่าดูก่อน

static {
  int x = 23 ;
  int y = 5 ;
  int t ;
  
  
  t = x + y; // คำนวณค่าของตัวแปร x,y แล้วเก็บไว้ที่ ตัวแปรt
  println ( "1) t = " + t );  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                         ที่คำนวณข้างบนมาแสดง ตัวแปรt = 28
  t = x - y;
  println ( "2) t = " + t );  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                          ที่คำนวณข้างบนมาแสดง ตัวแปรt = 18 
  t = x * y;
  println ( "3) t = " + t );  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                         ที่คำนวณข้างบนมาแสดง ตัวแปรt = 115
  t = x / y;
  println ( "4) t = " + t );  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                         ที่คำนวณข้างบนมาแสดง ตัวแปรt = 4
  t = x % y;
  println ( "5) t = " + t);  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                        ที่คำนวณข้างบนมาแสดง ตัวแปรt = 3
  t = ( x - y )* ( x + y);
  println ( "6) t = " + t);  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                        ที่คำนวณข้างบนมาแสดง ตัวแปรt = 504
  t = ( y * x ) / y;
  println ( "7) t = " + t);  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                        ที่คำนวณข้างบนมาแสดง ตัวแปรt = 23
  t = y* ( x / y );
  println ( "8) t = " + t);  // คำสั่ง ปรื้น แบบ เว้น บันทัด + ตัวแปรt คือ เอาค่าตัวแปรt 
                                        ที่คำนวณข้างบนมาแสดง ตัวแปรt = 20
}





static {
   float a=10.5f , b=-1.43e+1f;       // ผมไม่เข้าใจว่า b=-1.43e+1f;  ได้ 14.3 ได้ไง ตัว e,f          
   float c=0;                                      คืออะไร  
  
  print (" a = " + a );                 // ได้ 10.5
  print (", b = " + b);                // ได้ -14.3
  println (" , c = " + c);            //   เป็นคำสั่งปริ้นบันทัดเดี๋ยวกันครั้งที่3 ได้ 0.0แต่จะเว้นบัน
                                                    ทัดในปริ้นต่อไป
  c = a ;
  print (" a = " + a );                 // ได้ 10.5
  print (", b = " + b);                // ได้ -14.3
  println (" , c = " + c);            // ได้ 10.5  เพราะ c=a
  a = b;
  print (" a = " + a );                // ได้ -14.3 เพราะ a=b
  print (", b = " + b);               // ได้ -14.3
  println (" , c = " + c);            // ได้ 10.5  เพราะ c=a
  b = c;
  print (" a = " + a );                 // ได้ -14.3 เพราะ a=b
  print (", b = " + b);                // ได้ 10.5  เพราะ b=c
  println (" , c = " + c);             // ได้ 10.5  เพราะ c=a
}
  


อัลกอริทึมหรือขั้นตอนวิธี หมายถึง ลำดับขั้นตอนย่อยที่แน่นอนชัดเจน เพื่อแก้ปัญหาอย่างไดอย่างหนึ่งจนกระทั่งเสร็จสิ้นได้ผลตามเป้าหมาย
ตัวอย่างขั้นตอนเหล่านั้นมี 6ขั้นตอน
-          การทำแบบมาทางเลือก (selection)
-          การทำขั้นตอนแบบวนซ้ำ (iteration)
-          การเวียนเกิด (recursion)
-          การใช้ตรรกะ (logical operation)
-          การเปรียบเทียบ (relational comparison)
-          การคำนวณเชิงคณิตศาสตร์ ( arithmetic  operation)

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

   
ตัวอย่างการเปรียบเทียบที่ชัดเจน ระหว่างการอธิบาย อัลกอริทึม ด้วย ซูโดโค้ด และ การเขียงผังงาน ดังรูป




User-defined คือฟังก์ชันที่เขียนขึ้นเองเพื่อประโยชน์และการใช้งานอย่างใดอย่างหนึ่ง เช่น ดังโค้ดตัวอย่าง
void setup() {
  size(1000, 800);
  background (255);
}
void draw() {
  int x=500;
  int y=200;
  int w=100;
  int h=w+20;  //w+20คือถ้าwเพิ่มเท่าไหร่Hจะเพิ่มด้วยโดยอัตโนมัติW=100 H=120

drawHouse คือการเรียกใช้ฟังก์ชันจากด้านล่าง ซึ่งจะได้บ้านทั้งหมด8หลังเพราะเรียกใช้8ครั้ง ซึ่งช่วยให้สะดวกในการเขียนโค้ดไม่ต้องเขียนซ้ำหลายๆรอบ เพียงแค่ เพิ่มหรือลด ตำแหน่งจากค่าแกนx,y ก็จะได้สิ่งที่ต้องการ ที่ฟังก์ชัน draw() แบบ Built-in ที่มีอยู่ใน ไลบรารี่
 

  drawHouse(x-400+10, y, w, h);
  drawHouse(x-200+20, y, w, h);
  drawHouse(x+30, y, w, h);
  drawHouse(x+200+40, y, w, h);
   drawHouse(x-400+10 , y+250, w, h);
  drawHouse(x-200+20, y+250, w, h);
  drawHouse(x+30, y+250, w, h);
  drawHouse(x+200+40, y+250, w, h);

}

void drawHouse(int x, int y, int w, int h) { // คือฟังก์ชันที่เขียนขึ้นเองทำไว้เพื่อสร้างobject ขึ้น
                                                                             คือบ้านหนึ่งหลัง
  strokeWeight(3);  // ขนาดเส้น
  line(x, y, x-w, y+h);    //หลังคาซ้าย
  line(x, y, x+w, y+h);    //หลังคาขวา
  line(x-w, y+h, x+w, y+h);    //คานช้าน
  line(x-w, y+h, x-w, y+h+h);    //เส้นตรงตัวบ้านซ้าย
  line(x+w, y+h+h, x+w, y+h);    //เส้นตรงตัวบ้านขวา
  line(x-w, y+h+h, x+w, y+h+h);    //เส้น พื้นบ้าน

  line(x-w+(w/4), y+h+h, x-w+(w/4), y+h+(h/2));   //ประตูเส้นซ้าย
  line(x-w+(w/2), y+h+h, x-w+(w/2), y+h+(h/2));    //ประตูเส้นขวา
  line(x-w+(w/4), y+h+(h/2), x-w+(w/2), y+h+(h/2));    //คานประตู
}


Interactive แปลว่า ปฏิสัมพันธ์  multimedia แปลว่า สื่อผสม หรือ สื่อหลายแบบ 

จุดมุ่งหมาย คือ ทำการศึกษาเรียนรู้ในการเขียนโปรแกรมให้มากที่สุดและเข้าใจที่สุดเท่าที่จะทำได้ จนสามารถทำเองได้ และนำมาประยุกต์ใช้และสามารถสอนคนอื่นทำตามได้เช่นกัน


ไม่มีความคิดเห็น:

แสดงความคิดเห็น