วันจันทร์ที่ 6 สิงหาคม พ.ศ. 2555

ตัวอย่างโปรแกรมคำนวณเกรด

#include <stdio.h>
main()
{
int score;
printf("Programming by: Jirakorn Jullaka M.515 No.1\n");
printf("\n");
printf("---------------------------------------------------------------\n");
printf("\n");
printf("Enter your score : ");
scanf("%d",&score);
if (score > 100)
printf("Please Enter your Score Again.");
else if (score >= 80)
printf("Grade = A");
else if (score >= 70)
printf("Grade = B");
else if (score >= 60)
printf("Grade = C");
else if (score >= 50)
printf("Grade = D");
else if (score < 50)
printf("Grade = 0");
else printf("Please Enter your Score Again.");
getch();
}



วันจันทร์ที่ 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 “