วันจันทร์ที่ 30 กรกฎาคม พ.ศ. 2555

โปรแกรมแบบวนซ้ำ


คำสั่งวนลูปหรือทำงานซ้ำ ๆ เป็นลูป (loop  statements)

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



1. คำสั่ง  for
                      for  เป็นคำสั่งที่สั่งให้โปแกรมมีการทำงานซ้ำ ๆ วนลูปจนกว่าเงื่อนไขที่กำหนดไว้เป็นเท็จ  จึงออกจากคำสั่ง  for  ไปทำคำสั่งถัดไป  ควรใช้คำสั่ง  for  ในกรณีที่ทราบจำนวนรอบของการทำงาน



รูปแบบการใช้คำสั่ง  for
for  (expression1; expression2; expression3)
       statement;
หรือ
for  (expression1; expression2; expression3)
{
      statement(s);
}
โดยที่
expression1  คือ นิพจน์ที่ใช้กำหนดค่าเริ่มต้นให้กับตัวแปรที่จะใช้วนลูป
expression2  คือ นิพจน์ที่ใช้ทดสอบเงื่อนไข  ซึ่งจะมีค่าจริงหรือเท็จอย่างใดอย่างหนึ่งเท่านั้น
expression3  คือ  นิพจน์ที่ใช้เพิ่มหรือลดค่าตัวแปรที่จะใช้วนลูป
statement(s)  คือ คำสั่งต่าง ๆ ถ้ามีมากกว่า 1 คำสั่ง จะต้องเขียนอยู่ภายในเครื่องหมาย  {….}


2. คำสั่ง  while
                      while  เป็นคำสั่งที่มีการทำงานซ้ำ ๆ เป็นลูป  และมีลักษณะการทำงานของคำสั่งคล้ายกับคำสั่ง  for  แตกต่างกันตรงที่  การใช้  while  ไม่ต้องทราบจำนวนรอบของการทำงานที่แน่นอน  แต่ต้องมีเงื่อนไขที่เป็นเท็จจึงจะออกจากคำสั่ง  while  ได้



รูปแบบการใช้คำสั่ง  while
while  (expression)  statement;
หรือ
while  (expression)
{
statement(s);
}
โดยที่


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



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



รูปแบบการใช้คำสั่ง  do  while


do{
statement(s);
}  while  (expression);

การเลือกทำงานตามเงื่อนไข

คำสั่งเงื่อนไข


       1. คำสั่งเงื่อนไข if

เป็นข้อความสั่งที่ให้ตรวจสอบผลลัพธ์ของนิพจน์
ถ้าเป็นจริงให้ทำงานตามข้อความสั่งที่อยู่ใน if 
ถ้าเป็นเท็จให้ทำคำสั่งอื่นต่อไป

รูปแบบ
if (นิพจน์) ข้อความสั่ง A;

ถ้ามีมากกว่า 1 ข้อความสั่งใช้รูปแบบ
if (นิพจน์) {
ข้อความสั่ง 1; 
ข้อความสั่ง 2; 
...
ข้อความสั่ง n; }

if (a<20) printf ("Yes");
ถ้าค่า a ที่เข้ามาในคำสั่ง if
มีค่าน้อยกว่า 20 จะแสดงผลคำว่า Yes ออกมา
แต่ถ้ามากกว่าหรือเท่ากับ 20
จะไม่แสดงออกมา



       2. คำสั่ง else
เป็นข้อความสั่งที่ให้ตรวจสอบผลลัพธ์ของนิพจน์ if 
ถ้าเป็นจริงให้ทำงานตามข้อความสั่งที่อยู่ใน if 
ถ้าเป็นเท็จให้ทำตามข้อความสั่งที่อยู่ใน else

รูปแบบ
if (นิพจน์) ข้อความสั่ง A;
else ข้อความสั่ง B;

ในที่นี้จะตรวจสอบนิพจน์
ถ้านิพจน์เป็นจริงจะกระทำการใน ข้อความสั่ง A
ถ้านิพจน์เ็ป็นเท็จจะกระทำการใน ข้อความสั่ง B

       3. คำสั่ง Switch-Case
จะเป็นข้อความสั่งที่ให้เลือกทำข้อความสั่ง หรือกลุ่มข้อความสั่งใดๆ
โดยพิจารณาจากค่าของนิพจน์
ถ้าค่าของนิพจน์มีค่าเท่ากับค่าใด ก็จะทำข้อความสั่งที่อยู่ใน case นั้น

รูปแบบ
switch (นิพจน์) {
case ค่าที่ 1 : ชุดคำสั่งที่ 1
case ค่าที่ 2 : ชุดคำสั่งที่ 2
...
case ค่าที่ j : ชุดค่าสั่งที่ j
default : ชุดช้อความสั่ง }

ถ้าค่าของนิพจน์ตรงกับค่าของ case ชุดไหน ก็จะทำชุดคำสั่งชุดนั้น
แต่ถ้าค่าของนิพจน์ไม่ตรงกับค่าของ case ชุดไหนเลย
ก็จะทำชุดข้อความสั่งใน default

ชนิดของข้อมูลในภาษาซี


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

1.  ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็มได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์

2. ข้อมูลชนิดจำนวนเต็ม (Integer)  คือข้อมูลที่เป็นเลขจำนวนเต็ม  ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์

3. ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) คือข้อมูลที่มีเลขเป็นจำนวนเต็ม  ใช้พื้นที่  4 ไบต์

4. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์

5. ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) คือข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บ 8 ไบต

ชนิด
ขนาดความกว้าง
ช่วงของค่า
การใช้งาน
Char
8 บิต
ASCII character (-128 ถึง 127)เก็บข้อมูลชนิดอักขระ
Unsignedchar
8 บิต
0-255เก็บข้อมูลอักขระแบบไม่คิดเครื่องหมาย
Int
16 บิต
-32768 ถึง 32767เก็บข้อมูลชนิดจำนวนเต็ม
long
32 บิต
-2147483648 ถึง 2147483649เก็บข้อมูลชนิดจำนวนเต็มแบบยาว
Float
32 บิต
3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6
เก็บข้อมูลชนิดเลขทศนิยม
Double
64 บิต
1.7E-308 ถึง 1.7E+308 หรือ ทศนิยม 12เก็บข้อมูลชนิดเลขทศนิยม
Unsigned int
16 บิต
0 ถึง 65535เก็บข้อมูลชนิดจำนวนเต็ม ไม่คิดเครื่องหมาย
Unsigned long
32 บิต
0 ถึง 4294967296เก็บข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย

วันอาทิตย์ที่ 29 กรกฎาคม พ.ศ. 2555

โครงสร้างภาษาซี


โครงสร้างภาษาซี
เราจะกล่าวถึงโครงสร้างหลักๆของภาษาซี
ซึ่งได้นำเนื้อหามา 3 ส่วนที่สำคัญในการใช้สำหรับเบื้องต้น
และเป็นสิ่งที่สำคัญในการเขียนโปรแกรม
3 ส่วนที่กล่าวไว้ข้างต้น คือ
1. header จะเป็นส่วนหัวของโปรแกรมที่ต้องมีในทุกโปรแกรม
2. function เป็นส่วนที่สำคัญโดยรหัสต้นฉบับจะอยู่ในส่วนนี้
3. comment เป็นการเขียนข้อความนอกเหนือจากโปรแกรม

HEADER <ส่วนหัวของโปรแกรม>
ในส่วนหัวของโปรแกรมจะมีส่วนที่เรียกว่า
ข้อความสั่งประมวลผลก่อน (preprocessor statement)
โดยข้อความสั่งประมวลผลก่อนจะขึ้นต้นด้วยเครื่องหมาย #

#include ใช้ให้ตัวประมวลผลก่อนไปอ่านข้อมูลจากแฟ้มที่เรียกใช้ มีรูปแบบคือ
#include <ชื่อแฟ้มที่ต้องการเีรียก>
/*แฟ้มที่มีการเรียกใช้งานบ่อยที่สุดและมีในทุกโปรแกรม
คือแฟ้มที่ชื่อ stdio.h*/

#define ใช้สำหรับตั้งตัวแปรค่าคงที่ มีรูปแบบคือ 
#define ชื่อตัวคงที่ ค่าคงที่

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

แต่การจะเขียนฟังก์ชันนั้นจะต้องมีการประกาศต้นแบบฟังก์ชันด้วย
ในการประกาศฟังก์ชันจะมีรูปแบบคือ
ชนิดข้อมูลที่ส่งกลับ ชื่อฟังก์ชัน (ชนิดข้อมูลที่นำเข้า)
{
...
}

เช่น char test (int x) {...}
ถ้ามีข้อมูลนำเข้ามากกว่า 1 ให้ใช้ ',' คั่นระหว่างแต่ละข้อมูล
ถ้าไม่มีการส่งกลับของข้อมูล จะใช้คำว่า void แทน
และถ้าไม่มีการนำเข้าข้อมูลจะเขียน ()

ชื่อของฟังก์ชันหลักจะใช้ชื่อ main เท่านั้น
ถ้าโปรแกรมใดไม่มีฟังก์ชันนี้ ก็จะเกิดข้อผิดพลาดทันที

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

การคอมเม้นนั้นมี 2 แบบ
1. ใช้เครื่องหมาย // เพื่อปิดข้อความด้านหลังเครื่องหมายทั้งหมด
ที่อยู่ในบรรทัดเดียวกัน

2. ใช้เครื่องหมาย /* หน้าข้อความที่ต้องการปิด
และใช้เครื่องหมาย */ หลังข้อความที่ต้องการปิืด
ข้อความที่ถูกเครื่องหมายดังกล่าวคร่อมไว้จะถูกปิดทั้งหมด
จะไว้ใช้ในกรณีที่เราต้องการปิดข้อความไว้หลายบรรทัด

ขั้นตอนการพัฒนาโปรแกรม


ขั้นตอนการพัฒนาโปรแกรมประกอบด้วย
  1. การวิเคราะห์ปัญหา
  2. การออกแบบโปรแกรม
  3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
  4. การทดสอบและแก้ไขโปรแกรม
  5. การทำเอกสารประกอบโปรแกรม
  6. การบำรุงรักษาโปรแกรม

การวิเคราะห์ปัญหา

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

การออกแบบโปรแกรม

การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นตอนที่ใช้เป็นแนวทางในการลงรหัสโปรแกรม ผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คำสั่งลำลอง (Pseudocode) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้นไม่ต้องพะวงกับรูปแบบคำสั่งภาษาคอมพิวเตอร์ แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น

การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์

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

การทดสอบและแก้ไขโปรแกรม

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

การทำเอกสารประกอบโปรแกรม

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

การบำรุงรักษาโปรแกรม

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

ตัวอย่างการเขียนผังงาน

ตัวอย่างผังงานขั้นตอนการส่งจดหมาย


ตัวอย่างผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี้• ถ้า X > 0 ให้พิมพ์คำว่า ” POSITIVE NUMBER “
• ถ้า X < 0 ให้พิมพ์คำว่า ” NEGATIVE NUMBER “
• ถ้า X = 0 ให้พิมพ์คำว่า ” ZERO NUMBER “

ตัวอย่าง การเขียนรหัสเทียม

ตัวอย่างรหัสเทียมการต้มมาม่า
1. หามาม่าไว้ 1 ซอง
2. ฉีกซองมาม่าและเทลงถ้วยเปล่า
3. ฉีกซองเครื่องปรุง แล้วเทลงถ้วยเดิม
4. ต้มน้ำให้ร้อนได้ที่ แล้วเทลงถ้วย
5. ปิดฝาไว้ 3 นาที
6. เปิดฝา แล้วรับประทาน


ตัวอย่างรหัสเทียมการรับค่า 3 ครั้ง แล้วหาผลรวม

1. set sum
2. input value1
3. input value2
4. input value3
5. calculate sum = value1 + value2 + value3
6. write sum

ผังงาน (Flow Chart)

ผังงาน หรือ โฟลว์ชาร์ต (flowchart) เป็นแผนภาพแสดงขั้นตอนการทำงานของโปรแกรม โดยใช้สัญลักษณ์ต่างๆ เชื่อมกันเป็นลำดับขั้นตอนด้วยลูกศร

สัญลักษณ์

จุดเริ่มต้นและจุดสิ้นสุด

แสดงด้วยรูปวงกลม รูปวงรี หรือรูปสี่เหลี่ยมมุมมน ภายในนิยมใช้คำว่า "Start" สำหรับจุดเริ่มต้น และ "End" สำหรับจุดสิ้นสุด

ลูกศร

เป็นเส้นทางการทำงานของโปรแกรม

ประมวลผล

ใช้กล่องสีเหลี่ยม ภายในเขียนคำสั่งต่างๆ

รับค่าเข้า และแสดงผล

ใช้กล่องสี่เหลี่ยมด้านขนาน ยกตัวอย่างเช่น ภายในเขียน "Get X" เพื่อรับค่า X; เขียน "Display X" เพื่อแสดงผลค่า X

ตัดสินใจ

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

รหัสเทียม หรือ ซูโดโค้ด (Pseudo Code)


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

อัลกอรึทึม (Algorithm)


ขั้นตอนวิธี หรือ อัลกอริทึม (algorithm) หมายถึงกระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสำนึก หรือฮิวริสติก (heuristic)
โดยทั่วไป ขั้นตอนวิธี จะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซ้ำ (iterate) หรือ เวียนเกิด (recursive) โดยใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในขั้นตอนต่างๆ จนกระทั่งเสร็จสิ้นการทำงาน
ในการทำงานอย่างเดียวกัน เราอาจจะเลือกขั้นตอนวิธีที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time) , และขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน
การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง
หนึ่งในขั้นตอนวิธีอย่างง่าย คือ ขั้นตอนวิธีที่ใช้หาจำนวนที่มีค่ามากที่สุดในรายการ (ซึ่งไม่ได้เรียงลำดับไว้) ในการแก้ปัญหานี้ เราจะต้องดูจำนวนทุกจำนวนในรายการ ซึ่งมีขั้นตอนวิธีดังนี้
  1. ดูแต่ละจำนวนในรายการ ถ้ามันมีค่ามากกว่า จำนวนที่มีค่ามากที่สุดที่เราเคยพบจดค่ามันไว้
  2. จำนวนที่เราจดไว้ตัวสุดท้าย จะเป็นจำนวนที่มีค่ามากที่สุด

โครงสร้างข้อมูล (Data Structure)



ในสาขาวิทยาการคอมพิวเตอร์ โครงสร้างข้อมูล (Data structure) เป็นวิธีการจัดเก็บข้อมูลในคอมพิวเตอร์เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพ บ่อยครั้งที่การเลือกโครงสร้างข้อมูลที่เหมาะสมจะทำให้เราสามารถเลือกใช้อัลกอริทึมที่มีประสิทธิภาพไปพร้อมกันได้ การเลือกโครงสร้างข้อมูลนั้นโดยส่วนใหญ่แล้วจะเริ่มต้นจากการเลือกแบบชนิดข้อมูลนามธรรม โครงสร้างข้อมูลที่ออกแบบเป็นอย่างดีจะสามารถรองรับการประมวลผลที่หนักหน่วงโดยใช้ทรัพยากรที่น้อยที่สุดเท่าที่จะเป็นไปได้ ทั้งในแง่ของเวลาและหน่วยความจำ
โครงสร้างข้อมูลแต่ละแบบจะเหมาะสมกับงานที่แตกต่างกัน และโครงสร้างข้อมูลบางแบบก็ออกแบบมาสำหรับบางงานโดยเฉพาะ อย่างเช่น ต้นไม้แบบบีจะเหมาะสำหรับระบบงานฐานข้อมูล
ในกระบวนการออกแบบโปรแกรมคอมพิวเตอร์ การเลือกโครงสร้างข้อมูลเป็นสิ่งสำคัญอันดับแรกที่ต้องคำนึงถึง ซึ่งจากการพัฒนาระบบงานใหญ่ๆได้แสดงให้เห็นว่า ความยากในการพัฒนาและประสิทธิภาพของระบบจะขึ้นอยู่กับโครงสร้างข้อมูลที่เลือกใช้อย่างมาก หลังจากตัดสินใจเลือกโครงสร้างข้อมูลที่จะใช้แล้วก็มักจะทราบถึงอัลกอริทึมที่ต้องใช้ได้ทันที แต่ในบางครั้งก็อาจจะกลับกัน คือ การประมวลผลที่สำคัญๆของโปรแกรมได้มีการใช้อัลกอริทึมที่ต้องใช้โครงสร้างข้อมูลบางแบบโดยเฉพาะ จึงจะทำงานได้เต็มประสิทธิภาพ ถึงอย่างไรก็ตาม ไม่ว่าจะเลือกโครงสร้างข้อมูลด้วยวิธีการใด โครงสร้างข้อมูลที่เหมาะสมก็เป็นสิ่งที่สำคัญมากอยู่ดี
แนวความคิดในเรื่องโครงสร้างข้อมูลนี้ส่งผล กับการพัฒนาวิธีการมาตรฐานต่างๆในการออกแบบและเขียนโปรแกรม หลายภาษาโปรแกรมนั้นได้พัฒนารวมเอาโครงสร้างข้อมูลนี้ไว้เป็นส่วนหนึ่งของระบบโปรแกรม เพื่อประโยชน์ในการใช้ซ้า
โครงสร้างข้อมูล มีกลายประเภท ดังนี้
1. โครงสร้างข้อมูลเบื้องต้น (Primitive Data Structure) เป็นชนิดข้อมูลที่ไม่มีโครงสร้างข้อมูลอื่นมาเป็นส่วนประกอย เมื่อต้องการเก็บค่าสามารถเรียกใช้งานได้ทันที บางครั้งเรียกว่าชนิดข้อมูลพื้นฐาน (Base Type) หรือสร้างมาให้ใช้ด้วยภาษานั้น ๆ
ส่วนโครงสร้างข้อมูลแบบอื่น ๆ จะมีโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ เมื่อต้องการใช้จะต้องกำหนดรูปแบบรายละเอียดโครงสร้างขึ้นมาก่อนเรียกว่าข้อมูลชนิดผู้ใช้กำหนด (Uses-defined Type)
2. โครงสร้างข้อมูลแบบเรียบง่าย (Simple Data Structure) จะมีสมาชิกที่เป็นโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ มีรูปแบบง่าย ๆ ไม่ซับซ้อน สามารถทำความเข้าใจและสร้างขึ้นมาใช้งานได้ง่าย 
3. โครงสร้างข้อมูลเชิงเส้น (Linear Data Structure) เป็นโครงสร้างที่ความซับซ้อนมากขึ้น ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงต่อกันเป็นแนวเส้น 
4. โครงสร้างข้อมูลไม่เป็นเชิงเส้น (Nonlinear Data Structure) เป็นโครงสร้างที่มีความซับซ้อนเช่นกัน ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ ที่จัดเรียงสมาชิกมีการแยกออกเป็นสองทาง และแบบ N- อาร์เรย์ ที่จัดเรียงสมาชิกมีการแยกออกได้หลายทางหลายรูปแบบไม่แน่นอน
5. โครงสร้างการจัดการแฟ้มข้อมูล (File Organization) เป็นโครงสร้างสำหรับนำข้อมูลเก็บไว้ในหน่วยความจำสำรอง โดยข้อมูลจะอยู่ในรูปแบบโครงสร้างข้อมูลอื่น และมีวิธีการจัดการโดยการนำโครงสร้างข้อมูลอื่น ๆ มาช่วย 
โครงสร้างข้อมูลต่าง ๆที่กล่าวมาอาจต้องมีการควบคุมการทำงานที่เกี่ยวข้องกับข้อมูลและส่วนที่มาเกี่ยวข้องให้เป็นไปตามที่ต้องการเรียกว่า โครงสร้างข้อมูลนามธรรม ลักษณะโครงสร้างจะแบ่งออกเป็น 2 ส่วน คือ ส่วนข้อมูลและส่วนปฏิบัติการ โดนภายในจะมีรายลเอียดการทำงานต่าง ๆ ประกอบด้วยโครงสร้างการจัดเก็บข้อมูลและอัลกอริทึม เมื่อใดที่เรียกใช้งานโครงสร้างนามธรรมในส่วนรายละเอียดการทำงานจะไม่ถูกเกี่ยวข้องหรือมีผลกระทบโดยถูกปิดบังไว้ จะเห็นว่าโครงสร้างข้อมูลซับซ้อนจะเป็นโครงสร้างข้อมูลนามธรรมที่ต้องมีส่วนการจัดเก็บข้อมูลและส่วนปฏิบัติการ

วันจันทร์ที่ 9 กรกฎาคม พ.ศ. 2555

ประวัติความเป็นมาของภาษา C

ประวัติ ความเป็นมา ภาษา C, C#, C++
ภาษาซีเกิดขึ้นในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีนั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL
ซึ่งในช่วงแรกนั้นภาษาซีถูกออกแบบให้ใช้เป็นภาษาการเขียนโปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากขึ้นในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซีขึ้นมา คือ K&R (Kernighan & Ritchie) และทั้งสองยังได้แต่งหนังสือชื่อว่า "The C Programming Language" โดยภาษาซีนั้นสามารถจะปรับใช้กับเครื่องคอมพิวเตอร์รูปแบบต่างๆได้

ต่อ มาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ร่วมกับ ANSI (American National Standards Institute) สร้างเป็นมาตรฐานของภาษาซีขึ้นมาใหม่มีชื่อว่า "ANSI C"

ประวัติ ความเป็นมา ภาษา C-http://sorncomputer.com//picture/learning/programer/c/start/dennis-ritchie.gif
Dennis Ritchie

ภาษา ซีนั้นจัดเป็นภาษาที่ใช้ในการเขียน โปรแกรมที่นิยมใช้งาน ซึ่งภาษาซีจัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นมาก กล่าวคือ สามารถทำงาน กับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิมครับ

จาก C สู่ C++
ถูกพัฒนาโดย Bjarne Stroustrup แห่ง Bell Labs โดยได้นำเอาภาษา C มาพัฒนาและใส่แนวคิดการเขียนโปรแกรมเชิงวัตถุ หรือ OOP (Object Oriented Programming) เข้าไปด้วย ซึ่งเป็นที่มาของ C++ ก็คือ นำภาษา C มาพัฒนาปรับปรุงให้มีประสิทธิภาพมากขึ้น

ประวัติ ความเป็นมา ภาษา C-http://sorncomputer.com//picture/learning/programer/c/start/bjarne-stroustrup.gif
Bjarne Stroustrup


ลักษณะโปรแกรมแบบโครงสร้าง
การเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) ก็คือ การนำโครงสร้างของคำสั่งหลายๆ รูปแบบ นำมาใช้ในโปรแกรม โดยจะมีการใช้คำสั่้งลักษณะ goto ให้น้อยที่สุด ตัวอย่างการเขียนโปรแกรมแบบโครงสร้าง ก็มี ภาษา C, Pascal และ Cobol เป็นต้น

ประวัติ ความเป็นมา ภาษา C-http://sorncomputer.com/picture/learning/programer/c/start/structure.gif
ภาพ: โปรแกรมที่เขียนด้วยภาษาซีแบบง่ายๆ แสดงถึงโครงสร้าง

จากโปรแกรมข้างต้น สามารถแบ่งโครงสร้างตามลักษณะหน้าที่การทำงานได้ 3 ส่วนหลักๆ ก็คือ
ส่วนที่ 1 ประกาศค่าตัวแปร และ การกำหนดค่าให้กับตัวแปร (Declare)
ส่วนที่ 2 เพิ่มค่า และเก็บค่าไว้ในตัวแปร (Calculation)
ส่วนที่ 3 แสดงผลทางจอภาพ (Display)

ซึ่งการทำงานของโปรแกรมแบบโครงสร้างนั้นสามารถเข้าใจได้ง่ายและสามารถแก้ไขได้สะดวก



ภาษา ซี (C programming language)
เป็นภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพัฒนาขึ้นในช่วงทศวรรษ 1970 โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่ เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงาน เนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพัฒนาระบบปฏิบัติการ,ซอฟต์แวร์ ระบบ , ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิวเตอร์

ประวัติ ความเป็นมา ภาษา C-http://sorncomputer.com//picture/learning/programer/c/start/thompson.jpg
Ken Thompson


ประวัติ ความเป็นมา ภาษา C++
ภาษา ซีพลัสพลัส (C++ programming language) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรมแบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ช่วงทศวรรษ 1990

Bjarne Stroustrup จากห้องวิจัยเบลล์ (Bell Labs) เป็นผู้พัฒนาภาษา C++ ขึ้น (เดิมใช้ชื่อ "C with classes") ในปีค.ศ. 1983 เพื่อพัฒนาภาษาซีดั้งเดิม สิ่งที่พัฒนาขึ้นเพิ่มเติมนั้นเริ่มจากการเพิ่มเติมการสร้างคลาสจากนั้นก็ เพิ่มคุณสมบัติต่างๆ ตามมา ได้แก่ เวอร์ชวลฟังก์ชัน การโอเวอร์โหลดโอเปอเรเตอร์ การสืบทอดหลายสาย เท็มเพลต และการจัดการเอ็กเซ็พชัน มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปีค.ศ. 1998 เป็นมาตรฐาน ISO/IEC 14882:1998 เวอร์ชันล่าสุดคือเวอร์ชันในปีค.ศ. 2003 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2003 ในปัจจุบันมาตรฐานของภาษาในเวอร์ชันใหม่ (รู้จักกันในชื่อ C++0x) กำลังอยู่ในขั้นพัฒนา



เหตุผลที่ควรเรียนภาษาซี
เนื่องจากภาษาซีเป็นภาษาแบบโครงสร้างที่สามารถศึกษาและทำความเข้าใจได้ไม่ ยาก อีกทั้งยังสามารถเป็นพื้นฐานในการเขียนโปรแกรมภาษาอื่นๆ ได้อีก เช่น C++, Perl, JAVA เป็นต้น

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

วันจันทร์ที่ 2 กรกฎาคม พ.ศ. 2555

ประวัติส่วนตัว




This is ME :D
ชื่อ: จิรกรณ์ จุลกะ JiRaKoRN JuLLaKa
ชื่อเล่น: มินทร์ MiN
Code Name: Zigdris Faello
............................................................................
............................................................................
HBD to me when: 12 พฤษภาคม
12 MaY
เกิดมาได้: 16 ปี
สถานะ: ไม่โสด
ศาสนา: พุทธ
............................................................................
............................................................................
สถานที่ที่ใส่ชุดนักเรียนไป: โรงเรียน บดินทรเดชา (สิงห์ สิงหเสนี)
E-MaiL: min_interkids@hotmail.com
FaCeBooK: http://www.facebook.com/MinFromMar