หน้าแรก
คำชี้แจงก่อนเรียน
รายละเอียดรายวิชา

 แบบทดสอบก่อนเรียน
 หน่วยที่ 1 ภาษาคอมพิวเตอร์เบื้องต้น
 หน่วยที่ 2 เริ่มต้นกับภาษาซี
 หน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ
 หน่วยที่ 4 คำสั่งพื้นฐานในภาษาซี
แบบทดสอบก่อนเรียนประจำหน่วย
4.1 คำสั่งคำนวณ
4.2 คำสั่งรับและแสดงผลข้อมูล
แบบฝึกหัดที่ 4.1
แบบทดสอบหลังเรียนประจำหน่วย
 หน่วยที่ 5 คำสั่งควบคุมแบบทางเลือก
 หน่วยที่ 6 คำสั่งควบคุมแบบวนซ้ำ
 แบบทดสอบหลังเรียน
 บรรณานุกรม

แจ้งข่าว
 แหล่งเรียนรู้เพิ่มเติม
 ติดต่อครูผู้สอน
 ผู้พัฒนาบทเรียน
 

 
 
มีความรู้ความเข้าใจในการใช้คำสั่งภาษาซีพื้นฐาน
 
 
1. บอกวิธีการใช้คำสั่งในการคำนวณและนำไปเขียนโปรแกรมได้
2. บอกวิธีการใช้คำสั่งในการแสดงผลข้อมูลและนำไปเขียนโปรแกรมได้
3. บอกวิธีการใช้คำสั่งในการรับข้อมูลและนำไปเขียนโปรแกรมได้
 
4.1 คำสั่งคำนวณ
4.2 คำสั่งรับและแสดงผลข้อมูล
 
 
คำสั่งในภาษาซี สามารถแยกให้เห็นชัดเจนได้ เป็น 2 ลักษณะ คือ
 
- คำสังที่เป็นรูปแบบคำสั่งจริง ๆ เช่น คำสั่งกำหนดค่า คำสั่งควบคุม เป็นต้น
- คำสั่งที่เป็นรูปแบบของฟังก์ชัน เช่น คำสังรับข้อมูล คำสั่งแสดงผลข้อมูล เป็นต้น
 
ในโปรแกรมภาษาซี โปรแกรมหนึ่ง ๆ อาจประกอบด้วย คำสั่งที่เป็นรูปแบบคำสั่งจริง ๆ
และคำสั่งที่เป็นรูปแบบของฟังก์ชัน อยู่ด้วยกันก็ได้
 
4.1.1 คำสั่งคำนวณ (Assignment Statements) เป็นรูปแบบคำสั่งจริง ๆ ของภาษาซี เอาไว้สำหรับสั่งให้คอมพิวเตอร์ คำนวณ หรืออาจใช้ในการกำหนดค่าเริ่มต้นให้กับตัวแปร หรือย้ายค่าตัวแปร
จากที่หนึ่ง ไปยังอีกที่หนึ่งก็ได้
 
   
รูปแบบ ตัวแปร= ตัวแปร ค่าคงตัว หรือ นิพจน์ ;
   
ความหมาย เครื่องหมาย = (เท่ากับ) มีความหมายแตกต่างจากคณิตศาสตร์
ในภาษาซีหมายถึงการกำหนดค่า (Assignment) ฝั่งขวา ให้กับ ตัวแปรฝั่งซ้าย โดย
  ตัวแปร จะหมายถึง การนำค่าตัวแปรฝั่งขวาไปเก็บในตัวแปรฝั่งซ้าย
  ค่าคงตัว จะหมายถึง การนำค่าคงตัวไปเก็บในตัวแปรฝั่งซ้าย
  นิพจน์ จะหมายถึง การนำค่าผลลัพธ์การประมวลผลนิพจน์ ไปเก็บในตัวแปรฝั่งซ้าย
   
 
   
ตัวอย่างที่ 1 การประกาศตัวแปรจำนวนเต็ม และการกำหนดค่าให้ตัวแปร ( ex4-01.c )
   
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
/*1*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */
/*2*/ int i; /* ประกาศตัวแปร i เป็นชนิดจำนวนเต็ม */
/*3*/ i = 20; /* กำหนดค่า 20 ให้กับตัวแปร i */
/*4*/ return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */
/*5*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม)*/
   
 
   
ตัวอย่างที่ 2 การประกาศตัวแปรหลายตัวพร้อมการกำหนดค่าเริ่มต้น และการกำหนดค่าให้กับตัวแปรโดยการใช้นิพจน์ ( ex4-02.c )
   
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
/*1*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */
/*2*/ int x = 5 , y = 7; /* ประกาศตัวแปร x และ y เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร x และ y เป็น 5 และ 7 ตามลำดับ */
/*3*/ float a; /* ประกาศตัวแปร a เป็นจำนวนจริง */
/*4*/ a = 0.5 * x * y; /* ประมวลผลนิพจน์ 0.5 * x *y
จะได้ 0.5*5*7 เป็น 17.500000 แล้วนำค่าที่ได้ ไปเก็บไว้ในตัวแปร a */
/*5*/ return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */
/*6*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */
   
 
4.1.2 คำสั่งคำนวณ เพิ่ม/ลดค่า ครั้งละ 1
 

รูปแบบคำสั่ง เพิ่มค่า/ลดค่า ครั้งละ 1

การเพิ่มค่า ครั้งละ 1
(ผลลัพธ์เหมือนกันทั้ง 4 คำสั่ง)
ตัวแปร = ตัวแปร + 1;
ตัวแปร++ ;
++ตัวแปร ;
ตัวแปร += 1 ;
การลดค่า ครั้งละ 1
(ผลลัพธ์เหมือนกันทั้ง 4 คำสั่ง)
ตัวแปร = ตัวแปร - 1;
ตัวแปร-- ;
--ตัวแปร ;
ตัวแปร -= 1 ;
 
 

ตัวอย่างคำสั่ง เพิ่มค่า/ลดค่า ให้ตัวแปร i ครั้งละ 1

การเพิ่มค่า ครั้งละ 1
(ผลลัพธ์เหมือนกันทั้ง 4 คำสั่ง)
i = i + 1;
i++ ;
++i ;
i += 1 ;
การลดค่า ครั้งละ 1
(ผลลัพธ์เหมือนกันทั้ง 4 คำสั่ง)
i = i - 1;
i-- ;
--i ;
i -= 1 ;

หมายเหตุ สามารถเปลี่ยนตัวแปร i เป็นตัวแปรอื่นได้

 
4.1.3 คำสั่งเพิ่ม/ลดค่า ครั้งละใด ๆ
 

รูปแบบคำสั่ง เพิ่มค่า/ลดค่า ครั้งละใด ๆ

การเพิ่มค่า ครั้งละใด ๆ
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
ตัวแปร = ตัวแปร + n;
ตัวแปร += n ;
การลดค่า ครั้งละใด ๆ
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
ตัวแปร = ตัวแปร - n;
ตัวแปร -= n ;

หมายเหตุ n คือ ให้ระบุเป็น ค่าคงตัวหรือตัวแปร

 

ตัวอย่างคำสั่ง เพิ่มค่า/ลดค่า ให้ตัวแปร i ครั้งละ 5

การเพิ่มค่า ครั้งละ 5
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
i = i + 5;
i += 5 ;
การลดค่า ครั้งละ 5
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
i = i - 5;
i -= 5 ;

หมายเหตุ สามารถเปลี่ยนตัวแปร i เป็นตัวแปรอื่นได้ และสามารถเปลี่ยนค่าคงตัว 5 เป็นจำนวนอื่นได้ตามต้องการ

 

ตัวอย่างคำสั่ง เพิ่มค่า/ลดค่า ให้ตัวแปร i ครั้งละ k

การเพิ่มค่า ครั้งละ k
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
i = i + k;
i += k ;
การลดค่า ครั้งละ k
(ผลลัพธ์เหมือนกันทั้ง 2 คำสั่ง)
i = i - k;
i -= k ;

หมายเหตุ สามารถเปลี่ยนตัวแปร i และ k เป็นตัวแปรอื่นได้ ตามต้องการ

 
4.1.4 รูปแบบคำสั่ง ตัวดำเนินการคำนวณ คูณ หาร และหารเอาเศษ (Modulus)
 

รูปแบบคำสั่ง ตัวดำเนินการคำนวณคูณ หารและหารเอาเศษ
(รูปแบบคำสั่ง 1 และ 2 ให้ผลลัพธ์เหมือนกัน)

รูปแบบคำสั่ง 1 รูปแบบคำสั่ง 2
ตัวแปร = ตัวแปร * n ; ตัวแปร *= n ;
ตัวแปร = ตัวแปร / n ; ตัวแปร /= n ;
ตัวแปร = ตัวแปร % n ; ตัวแปร %= n ;

ความหมาย n คือ ค่าคงตัว ตัวแปร หรือนิพจน์

 

ตัวอย่างคำสั่ง ตัวดำเนินการคำนวณ คูณ หารและหารเอาเศษ (Modulus) (คำสั่ง 1 และ 2 ให้ผลลัพธ์เหมือนกัน)

คำสั่ง 1 คำสั่ง 2 ความหมายของคำสั่ง
i = i*10 ; i *= 10 ; ประมวลผล i*10 ก่อน แล้วนำผลลัพธ์ไปเก็บใน i ทางซ้าย
d = d/5 ; d /= 5 ; ประมวลผล d/5 ก่อน แล้วนำผลลัพธ์ไปเก็บใน d ทางซ้าย
k = k%2 ; k %= 2 ; ประมวลผล k%2 ก่อน แล้วนำผลลัพธ์ไปเก็บใน k ทางซ้าย

หมายเหตุ สามารถใช้ตัวแปรแทนค่าคงตัว เพื่อความยืดหยุ่นของโปรแกรม
เช่น i *= n; ผลลัพธ์เหมือนกับ i = i * n;

 
   
ตัวอย่างที่ 3 การใช้คำสั่งคำนวณเพิ่มค่าและลดค่า ครั้งละ 1 ( ex4-03.c )
   
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
/*1*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */
/*2*/ inti = 5 , j = 0 , k = 7; /* ประกาศตัวแปร i j และ k เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร i j และ k เป็น 50 และ 7 ตามลำดับ */
/*3*/ intx = 4 , y = 2 , z = 8; /* ประกาศตัวแปร x y และ z เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร xy และ z เป็น 42 และ 9 ตามลำดับ */
/*4*/ i = i + 1 ; /* ประมวลผล i + 1 ก่อน จะได้ 5 + 1 เป็น 6
แล้วจึงนำ 6 ไปเก็บใน i */
/*5*/ j++ ; /* เป็นคำสั่งเหมือน j = j + 1 ;
จึงประมวลผล j + 1 ก่อน จะได้ 0 + 1 เป็น 1 แล้วจึงนำ 1 ไปเก็บใน j */
/*6*/ k += 1 ; /* เป็นคำสั่งเหมือน k = k + 1 ;
จึงประมวลผล k + 1 ก่อน จะได้ 7 + 1 เป็น 8 แล้วจึงนำ 8 ไปเก็บใน k */
/*7*/ x = x - 1 ; /* ประมวลผล x - 1 ก่อน จะได้ 4 - 1 เป็น 3
แล้วจึงนำ 3 ไปเก็บใน x */
/*8*/ y-- ; /*เป็นคำสั่งเหมือน y = y - 1 ;
จึงประมวลผล y - 1 ก่อน จะได้ 2 - 1 เป็น 1 แล้วจึงนำ 1 ไปเก็บใน y */
/*9*/ z -= 1 ; /* เป็นคำสั่งเหมือน z = z - 1 ;
จึงประมวลผล z - 1 ก่อน จะได้ 8 - 1 เป็น 7 แล้วจึงนำ 7 ไปเก็บใน z */
/*10*/ return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */
/*11*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */
   
หมายเหตุ เมื่อจบโปรแกรม
ค่าที่เก็บในตัวแปรi j และ k คือ 61 และ 8 ตามลำดับ
  ค่าที่เก็บในตัวแปรx y และ z คือ 31 และ 7 ตามลำดับ
 
   
ตัวอย่างที่ 4 การใช้คำสั่งคำนวณเพิ่มค่าและลดค่า ครั้งละใด ๆ ( ex4-04.c )
   
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
/*1*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */
/*2*/ int i = 5 , j = 0 , k = 7 , a = 12; /* ประกาศตัวแปร i jk และ a เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร i jk และ a เป็น 507 และ 12 ตามลำดับ */
/*3*/ int x = 4 , y = 2 , z = 8 , c = 7; /* ประกาศตัวแปร xyz และ c เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร xyz และ c เป็น 428 และ 7 ตามลำดับ */
/*4*/ i = i + 5 ; /* ประมวลผล i + 5 ก่อน จะได้ 5 + 5 เป็น 10
แล้วจึงนำ 10 ไปเก็บใน i */
/*5*/ j += 6 ; /* เป็นคำสั่งเหมือน j = j + 6 ;
จึงประมวลผล j + 6 ก่อน จะได้ 0 + 6 เป็น 6 แล้วจึงนำ 6 ไปเก็บใน j */
/*6*/ k += a ; /* เป็นคำสั่งเหมือน k = k + a ;
จึงประมวลผล k + a ก่อน จะได้ 7 + 12 เป็น 19
แล้วจึงนำ 19 ไปเก็บใน k */
/*7*/ x = x - 4 ; /* ประมวลผล x - 4 ก่อน จะได้ 4 - 4 เป็น 0
แล้วจึงนำ 0 ไปเก็บใน x */
/*8*/ y -= 2 ; /* เป็นคำสั่งเหมือน y = y - 2 ;
จึงประมวลผล y - 2 ก่อน จะได้ 2 - 2 เป็น 0 แล้วจึงนำ 0 ไปเก็บใน y */
/*9*/ z -= c ; /* เป็นคำสั่งเหมือน z = z - c ;
จึงประมวลผล z - c ก่อน จะได้ 8 - 7 เป็น 1
แล้วจึงนำ 1 ไปเก็บใน z */
/*10*/ return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */
/*11*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */
   
หมายเหตุ เมื่อจบโปรแกรม
ค่าที่เก็บในตัวแปรijk และ a คือ 10619 และ 12 ตามลำดับ
  ค่าที่เก็บในตัวแปรxyz และ c คือ 001 และ 7 ตามลำดับ
   
 
   
ตัวอย่างที่ 5 การใช้คำสั่งคำนวณ คูณ หาร และหารเอาเศษ (Modulus) ( ex4-05.c )
   
บรรทัด รหัสต้นฉบับ (Source Code) อธิบายคำสั่ง
/*1*/ int main() { /* ประกาศ main เป็นฟังก์ชันหลัก ชนิดจำนวนเต็ม และเริ่มต้น block ของฟังก์ชัน main (เริ่มต้นโปรแกรม) */
/*2*/ int i = 5 , j = 4 , k = 7 , a = 3; /* ประกาศตัวแปร i jk และ a เป็นชนิดจำนวนเต็ม พร้อมกำหนดค่าเริ่มต้นให้กับตัวแปร
i jk และ a เป็น 547 และ 3 ตามลำดับ */
/*3*/ i = i * 3 ; /* ประมวลผล i x 3 ก่อน จะได้ 5 x 3 เป็น 15
แล้วจึงนำ 15 ไปเก็บใน i */
/*4*/ j /= 2 ; /* เป็นคำสั่งเหมือน j = j / 2 ;
จึงประมวลผล j 2 ก่อน จะได้ 4 2 เป็น 2 แล้วจึงนำ 2 ไปเก็บใน j */
/*5*/ k %= a ; /* เป็นคำสั่งเหมือน k = k % a ;
จึงประมวลผล k modulus a ก่อน จะได้ 7 modulus 3 เป็น 1 แล้วจึงนำ 1 ไปเก็บใน k */
/*6*/ return 0; /* คืนค่า 0 ให้ฟังก์ชัน main โปรแกรมทำงานถูกต้องสมบูรณ์ */
/*7*/ } /* สิ้นสุด block ของฟังก์ชัน main (สิ้นสุดโปรแกรม) */
   
หมายเหตุ เมื่อจบโปรแกรม
ค่าที่เก็บในตัวแปรijk และ a คือ 1521 และ 3 ตามลำดับ