วันจันทร์ที่ 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เก็บข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย