|
|
|
|
มีความรู้ความเข้าใจในการใช้คำสั่งภาษาซีพื้นฐาน |
|
|
|
|
1. บอกวิธีการใช้คำสั่งในการคำนวณและนำไปเขียนโปรแกรมได้ |
2. บอกวิธีการใช้คำสั่งในการแสดงผลข้อมูลและนำไปเขียนโปรแกรมได้ |
3. บอกวิธีการใช้คำสั่งในการรับข้อมูลและนำไปเขียนโปรแกรมได้ |
|
|
|
|
|
|
|
|
|
คำสั่งในภาษาซี สามารถแยกให้เห็นชัดเจนได้ เป็น 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 ตามลำดับ |
|
|
|
|
|