The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

หน่วยที่ 4 ชนิดของข้อมูลและตัวดำเนินการ

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by นายประจักษ์ ปะทะดี, 2021-08-23 02:22:36

หน่วยที่ 4 ชนิดของข้อมูลและตัวดำเนินการ

หน่วยที่ 4 ชนิดของข้อมูลและตัวดำเนินการ

หนว่ ยท่ี 3 พ้ืนฐานภาษา C และการติดต้ังใช้งาน 2

หน่วยที่ 4 ชนดิ ้อมูลและตวั ดำเนนิ การ

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

4.1 กฎการตง้ั ชอื่ ตวั แปร (Variable Names)

การต้ังชอื่ และค่าคงที่ จำเปน็ ตอ้ งคำนึงถึงกฎเกณฑ์ต่าง ๆ ดงั รายละเอียดต่อไปนี้
1. สามารถนำตวั อักขระ ไมว่ ่าจะเปน็ ตัวอกั ษรพิมพ์ใญ่ A - Z อกั ษรพมิ พเ์ ล็ก a – z และตัวเลข 0
– 9 รวมถึงเครื่องหมาย _ (Underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีข้อแม้ว่า อัวอักระตัวแรก
จะตอ้ งเป็นตวั อักษรเทา่ นนั้ อยา่ งไรก็ตาม เคร่ืองหมาย _ จะถอื วา่ เปน็ ตัวอักขระตัวหน่ึง ดงั น้ันจึงสามารถ
นำมาตั้งชื่อตัวแปรตวั แรกได้
2. ตัวอักษรตัวพิมพ์ใหญ่ และตัวอักษรตัวพิมพ์เล็กมีความแตกต่างกัน เช่น Std_Code และ
std_code ถือว่าเป็นตวั แปรคนละตัว
3. ชื่อตวั แปรจะต้องไมต่ รงกบั คำสงวน ซ่ึงประกอบไปดว้ ย

auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

วิชาหลักกาเขยี นโปรแกรม รหัสวิชา 20204-2004

หน่วยที่ 3 พ้ืนฐานภาษา C และการติดตั้งใช้งาน 3

และสำหรบั บางคอมไพเลอร์ กจ็ ะรวมคำสงวนบางตวั ตอ่ ไปน้เี ขา้ ไปด้วย

ada entry fortran near

asm far huge pascal

4. สามารถกำหำนดความยางของตัวแปรได้ไม่จำกัด แต่จะพิจารณาความแตกต่างของตัวอักษร
31 ตวั แรก (ตามมารตฐาน ANSI C)

5. ชอ่ื ตวั แปรไมอ่ นุญาตให้มีช่องวา่ ง ดังน้นั หากตอ้ งการแยกคำ สามารถใช้เครอื่ งหมาย _ ชว่ ยได้
6. ควรตัง้ ช่ือตัวแปรทสี่ ามารถส่ือความหมาย เพ่อื บกให้รวู้ า่ ตัวแปรนนั้ ๆ นำไปใช้เพ่ือการใด

4.2 ชนิดขอ้ มูลและขนาด (Data Types and Sizes)

ตัวแปรที่ประกาศใช้งานในโปรแกรม จำเป็นต้องถูกระบุชนิดช้อมูล เพื่อให้ทราบว่าตัวแปร

เหลา่ น้นั จดั เกบ็ ข้อมลู ชนดิ ใดลงไป สำหรับภาษา C จะมีชนดิ ช้อมลู พ้ืนฐานไม่กี่ชนิด คือ

ชนิดข้อมูล ความหมาย

char ขอ้ มลู ชนิดตวั อกั ษร (character)

int ข้อมูลชนดิ เลขจำนวนเต็ม (integer)

float ขอ้ มลู ชนิดเลขจำนวนจรงิ (real or floating point)

doube ขอ้ มลู ชนิดเลขจำนวนจรงิ 2 เทา่ (double precision float)

รายละเอยี ดของชนดิ ข้อมูลแต่ละประเภท แสดงไวด้ ังรูปที่ 4.1

วชิ าหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หนว่ ยที่ 3 พน้ื ฐานภาษา C และการติดตั้งใช้งาน 4

รูปที่ 4.1 รายละเอยี ดชนิดข้อมลู ในภาษา C (ขนาดขอ้ มลู อาจไมต่ รงได้ ท้งั น้ีขนึ้ อยกู่ บั คอมไพเลอรข์ องภาษา C ท่ใี ช้งาน)
อย่างไรก็ตาม ชนิดข้อมูลชนิดเดียวกันในภาษา C อาจมีขนาดแตกต่างกันได้ ทั้งนี้ขึ้นอยู่กับ

คอมไพเลอร์ ตัวอย่างเช่น คอมไพเลอร์ 16 บิต อย่าง Turbo C หรือ Turbo C++ จะมีขนาดของชนิด
ข้อมูล int เท่ากับ 2 ไบต์ โดยมีช่วงตัวเลขจํานวนเต็มตั้งแต่ 32,468 ถึง 32,767 ในขณะที่คอมไพเลอร์
32 บติ อย่าง Borland C++ ทร่ี นั อยู่บนระบบปฏบิ ัติการ Windows (หนงั สอื เลม่ นจ้ี ะอ้างอิงคอมไพเลอร์
เวอร์ชันนี้) จะมีขนาดของชนิดข้อมูล int เท่ากับ 4 ไบต์ ซึ่งมีช่วงตัวเลขที่กว้างกว่า คือ -2,147,483,648
ถึง 2,147,483,647 ดังนั้นใน Borland C++ หากต้องการเลขจํานวนเต็มที่มีขนาด 2 ไบต์ ก็ต้องเลือกใช้
ชนิดข้อมลู short int

สําหรบั การกําหนดชนิดข้อมูลใหก้ บั ตัวแปรน้นั สามารถเขยี นได้ตามรปู แบบ ดงั น้ี
รปู แบบ

date_type variable_name;
วชิ าหลกั กาเขียนโปรแกรม รหัสวิชา 20204-2004

หนว่ ยที่ 3 พืน้ ฐานภาษา C และการติดต้ังใชง้ าน 5

โดยที่ data_type หมายถงึ ชนดิ ข้อมลู เชน่ char, int เป็นต้น
Variable_name หมยถึง ชอ่ื ตัวแปรท่ตี ง้ั ขน้ึ ตามกฎการต้งั ชือ่

ตวั อย่าง การกำหนดชนดิ ขอ้ มูลใหก้ บั ตวั แปร

char a;
char lastname[30];
int num1
float total;

จากตัวอย่าง
- กำหนดให้ a เปน็ ตัวแปรชนิดข้อมลู ตวั อักษร 1 ตัว
- กำหนดให้ lastname เปน็ ตวั แปรชนิดข้อควา 30 ตัว
- กำหนดให้ num1 เป็นตวั แปรชนิดเลขจำนวนเตม็
- กำหนดให้ total เปน็ ตวั แปรชนิดเลขจำนวนจริง

และหากต้องการทราบว่าภาษา C ที่รันอยู่บนระบบปฏิบัติการนั้น ๆ มีขนาดของชนิดข้อมูลขนาด
เท่าใดก็สามารถเขียนโปแกรมจรวจสอบได้ด้วยใช้ตัวดำเนินการ sizeof() โดยจะแสดงผลเป็นหน่วยไบต์
ดงั นัน้ หากต้องการแสดงผลเป็นหนว่ ยบติ ก็สามารถนมาคูณดว้ ย 8 ก็ได้

ชนดิ ขอ้ มูลท่ีประกาศใหก้ ับตวั แปรตา่ งๆ ในภาษา C จําเป็นตอ้ งนํามาใชอ้ ย่างระมดั ระวัง และพยายาม
ทําความเขา้ ใจกับชนิดตัวแปรแตล่ ะประเภทด้วย นอกจากนี้ในการกาํ หนดค่าให้ตัวแปร จะต้องกําหนดค่า
ให้ ตรงกับชนิดข้อมูล เช่น หากต้องการตัวแปรเก็บค่าตัวเลข ก็ต้องประกาศตัวแปรเป็นชนิดข้อมูลแบบ
int หรอื float เป็นตน้ และควรเลอื กขนาดให้เหมาะสมดว้ ย เช่น หากค่าตัวเลขท่เี กบ็ เปน็ คา่ จํานวนเต็มที่
มขี นาดไมใ่ หญ่โต การเลือกใช้ int หรือ unsigned int ก็ย่อมเหมาะสมกวา่ ท่จี ะเลอื ก long int หรือ float
ซึ่งทําให้สิ้นเปลืองหน่วย ความจําโดยใช่เหตุ ในขณะเดียวกัน หากข้อมูลมีขนาดใหญ่โต แต่กลับเลือกใช้
ชนดิ ขอ้ มูลขนาดเลก็ ผลลัพธท์ ี่ ได้ก็จะเกนิ ขอบเขตท่ีข้อมูลชนิดนนั้ รบั ได้ ทําใหเ้ กิดขอ้ ผดิ พลาดขึน้ อยา่ งไร
ก็ตาม กรณีมีการนํานิพจน์ ค่าคงที่ หรือตัวแปรที่มีชนิดข้อมูลแตกต่างกันมาใช้งานร่วมกัน ผลลัพธ์ที่ได้ก็

วิชาหลกั กาเขียนโปรแกรม รหสั วิชา 20204-2004

หนว่ ยท่ี 3 พน้ื ฐานภาษา C และการตดิ ต้ังใชง้ าน 6

จะถกู กาํ หนดให้เป็นชนดิ ข้อมลู ท่ีใหญ่กวา่ เสมอ เช่น นาํ นิพจน์ทเ่ี ปน็ int มาคาํ นวณกบั นิพจนท์ ่เี ป็น float
ผลลัพธ์ที่ได้กจ็ ะมีชนิดข้อมูลเปน็ float

4.3 การกาํ หนดคา่ ใหก้ ับตัวแปs (Presetting Variable Values)
การกําหนดค่าให้กับตัวแปร จะต้องกําหนดให้เป็นไปตามกฎ และต้องสัมพันธ์กับชนิดข้อมูลท่ี

ประกาศ ไว้เป็นสําคัญ เช่น หากกําหนดตัวแปรเป็นชนิดข้อมูล int ค่าที่กําหนดให้กับตัวแปรกจ็ ะต้องเปน็
เลขจาํ นวนเต็ม เท่านัน้ ไม่สามารถกําหนดใหเ้ ปน็ เลขทศนยิ มหรอื ข้อความได้ เปน็ ต้น

4.3.1 การกาํ หนดคาํ ชนิดแลขจาํ นวนเต็ม
กฏเกณฑ์การกาํ หนดคา่ ชนิดเลขจํานวนเตม็
1. ค่าตวั เลขจะต้องไม่มีทศนยิ ม
2. สามารถเปน็ ไดท้ ้งั คา่ บวก หรอื คา่ ลบ
3. สําหรบั ค่าบวก ไม่จาํ เปน็ ต้องใสเ่ ครือ่ งหมาย + นาํ หน้าค่า
4. ห้ามใชเ้ ครอ่ื งหมาย , หรือชอ่ งวา่ ง กํากับระหว่างตวั เลข เชน่ 14,25 ซึง่ ถือว่าผดิ
5. ช่วงค่าตวั เลขจาํ นวนเต็ม จะอยรู่ ะหว่าง -2,147,483,648 ถงึ 2,147,483,647 (Borland

C++)
6. สามารถใช้ Suffix ต่อท้ายค่าได้ เช่น เลขจํานวนเต็มแบบยาว ก็จะใช้อักษร L (ตัวพิมพ์

เล็กหรือตัวพิมพ์ใหญ่ก็ได้) ต่อท้ายค่า ส่วนค่าที่เป็น unsign ก็จะใช้อักษร บ ต่อท้าย และใช้ UL ต่อท้าย
ค่าที่ unsigned long

ตวั อย่าง การกาํ หนดค่าชนิดเลขจาํ นวนเต็มในรูปแบบตา่ งๆ

วิชาหลกั กาเขยี นโปรแกรม รหสั วชิ า 20204-2004

หน่วยท่ี 3 พ้ืนฐานภาษา C และการติดตั้งใช้งาน 7

4.3.2 การกําหนดค่าชนดิ เลขจาํ นวนจริง
กฏเกณฑ์การกําหนดค่าชนดิ เลขจํานวนจริง
1. คา่ ตวั เลขสามารถมีจดุ ทศนิยมได้
2. สามารถเปน็ ได้ท้ังคา่ บวก หรือคา่ ลบ
3. สาํ หรบั ค่าบวก ไมจ่ ําเปน็ ต้องใสเ่ คร่อื งหมาย + นาํ หน้าคา่
4. สามารถกําหนดค่าแบบเอ็กซ์โปเนนต์ได้ ด้วยการใช้อักษร E ต่อทา้ ยคา่
5. ค่าท่ถี กู กําหนดเป็นเอ็กซ์โปเนนต์ สามารถเป็นได้ทั้งค่าบวก หรอื คา่ ลบ
6. ช่วงของค่าตัวเลขชนิดจํานวนจริงเป็นไปตามชนิดข้อมูล ซึ่งอาจถูกกําหนดเป็น float,

double หรอื long double (ดูรายละเอียดของชนดิ ขอ้ มูลไดต้ ามรปู ที่ 2.1)
7. สําหรับค่าเลขจํานวนจริงชนิด doubled จะใช้ F ต่อท้ายค่า และใช้ L ต่อท้ายค่าท่ี

กาํ หนดชนิดข้อมูล เปน็ long doubled
ตวั อย่าง การกําหนดค่าชนดิ เลขจาํ นวนจริงในรปู แบบตา่ งๆ

นอกจากนใี้ นภาษา C ยงั อนญุ าตให้กาํ หนดค่าของเลขจํานวนเต็มให้อยู่ในรปู แบบของเลขฐานได้
โดย จะใช้ O (เลขศูนย)์ นําหน้าค่า ซ่ึงแทนความหมายวา่ เปน็ คา่ ของเลขฐานแปด (Octal) และใช้ Ox
หรือ OX นําหน้า ค่าเลขฐานสิบหก ตวั อยา่ งเช่น เลข 31 ซ่ึงเปน็ เลขฐานสบิ สามารถเขยี นอย่ใู นรปู ของ
เลขฐานแปดก็จะได้ 037 หรือ 0x1F กรณีเปน็ เลขฐานสิบหก

วิชาหลักกาเขยี นโปรแกรม รหสั วิชา 20204-2004

หน่วยที่ 3 พืน้ ฐานภาษา C และการติดต้ังใช้งาน 8

ผลการรันโปรแกรม

4.3.3 การกาํ หนดคําชนดิ ตวั อักษร
กฏเกณฑ์การกําหนดค่าชนิดตัวอกั ษร
1. คาํ ท่ีกาํ หนดจะต้องเปน็ อักขระเพยี งค่าเดียว และจะต้องอยภู่ ายในเครอ่ื งหมาย ‘ ’ ไม่ใช่

เคร่ืองหมาย “ ” ดงั น้ันจึงตอ้ งพึงระมดั ระวังเปน็ พิเศษด้วย
2. ขนาดจํานวนตวั อักษรสงู สดุ คือ 1 ตวั อกั ษรเท่าน้ัน
ค่าชนดิ ตัวอักษรในภาษา C จะมองเปน็ รหัส ASCII ทใี่ ชแ้ ทนตวั อักขระต่างๆ เชน่ ค่า 'A'

จะมีค่าเท่ากับ 65 หรือค่า "a" จะมีค่าเป็น 97 ซึ่งสามารถพิสูจน์ได้ทั้งโปรแกรมที่ 2.3 (รายละเอียดของ
ตารางแอสกี สามารถดูไดด้ ้จากรากตนหนวก ก)

4.4 คา่ คงที่ (Constants)
นอกจากค่าที่กําหนดให้กับตัวแปรชนิดต่างๆ ดังที่ได้กล่าวไว้ในขา้ งต้นท่ีผ่านมา ก็ยังมีตัวแปรอีก

ชนิด หนึ่งที่เรียกว่าค่าคงที่ (Constants) ซึ่งโดยปกติตัวแปรมักจะถูกเปลี่ยนแปลงค่าได้ภายในโปรแกรม
ในขณะทีค่ า่ คงท่เี มอื่ ถูกกาํ หนดขนึ้ แลว้ จะไม่สามารถถกู เปลย่ี นแปลงในภายหลังได้อกี สําหรบั ในภาษา C
สามารถกาํ หนด คา่ คงทีใ่ นรูปแบบต่างๆ ได้ดงั นี้

4.4.1 ค่าคงทีท่ รี่ ะบุคําโดยตรงลงไป (Literal Constants)
เป็นค่าคงที่ที่ระบุแบบเจาะจงลงไปในโปรแกรมเลย ด้วยการสั่งพิมพ์ข้อความดังกล่าว

โดยตรง ไมม่ กี าร

ตวั อยา่ งการกาํ หนดคา่ คงที่แบบ Literal ชนิดขอ้ ความ ผ่านฟงั ก์ชัน printf()

วิชาหลักกาเขยี นโปรแกรม รหัสวิชา 20204-2004

หนว่ ยท่ี 3 พืน้ ฐานภาษา C และการตดิ ตั้งใช้งาน 9
ตัวอย่างการกําหนดคา่ คงทีแ่ บบ Literral ทง้ั ชนิดขอ้ ความ และคา่ ตัวเลข

4.4.2 ค่าคงทท่ี ีน่ ยิ ามด้วย #define (Defined constants)
ในภาษาC ได้เตรียมพรีโปรเซสเซอร์ไดเรกที่ฟชื่อ #define เพื่อนํามาใช้สําหรับกําหนด

คา่ คงทใี่ นโปร ซึ่งจะถูกกาํ หนดไวท้ ีต่ ้นโปรแกรม โดยมีรปู แบบการเขียนดงั น้ี
รปู แบบ

#define SHORTCUT value

โดยที่ #define หมายถงึ พรโี ปรเซสเซอร์ไดเรกทฟ่ี
SHORTCUT หมายถงึ ชอื่ ของคา่ คงท่ี ซึง่ มกั กาํ หนดเปน็ อักษรตวั พิมพ์ใหญ่
value หมายถึง ค่าของค่าคงที่

ตวั อยา่ งการกำหนดค่าคงทดี่ ว้ ย #define

จะพบวา่ ในการกาํ หนดค่าคงท่ีดว้ ย #define นั้น จะไม่ใชเ้ ครื่องหมาย = และไม่จําเป็นต้อง
มเี คร่อื งหมาย : ปดิ ทา้ ย ซึง่ โดยปกติ ค่าคงท่ีทน่ี ิยามไวใ้ น #define ส่วนใหญม่ ักใชอ้ ักษรตัวพิมพ์ใหญ่

4.4.3 คา่ คงทีท่ เ่ี ก็บไวใ้ นตวั แปs (Memory Constants)
สําหรับการกําหนดค่าคงที่ในรูปแบบสุดท้ายก็คือ การกําหนดค่าคงที่ให้กับตัวแปร ซึ่งมี

รปู แบบการเขยี น

วชิ าหลกั กาเขียนโปรแกรม รหสั วชิ า 20204-2004

หนว่ ยท่ี 3 พนื้ ฐานภาษา C และการติดต้ังใชง้ าน 10

รปู แบบ

const data_type variable_name = value;

โดยที่ Const หมายถึง การระบวุ ่าตวั แปรทกี่ าํ หนดต่อไปนีเ้ ปน็ คา่ คงที่
data_type หมายถงึ ชนดิ ของข้อมูล
variable_name หมายถึง ชื่อตวั แปรที่เก็บคา่ คงท่ี
value หมายถึง คา่ คงทีท่ จ่ี ดั เก็บอยใู่ นตวั แปร

โปรแกรมกำหนดคา่ คงทีแ่ ละการนำไปใชง้ าน และผลลพั ธท์ ไ่ี ด้

ผลการรนั โปรแกรม

วิชาหลกั กาเขยี นโปรแกรม รหสั วิชา 20204-2004

หน่วยที่ 3 พนื้ ฐานภาษา C และการติดตั้งใช้งาน 11

ในกรณที ม่ี กี ารเปลย่ี นแปลงคา่ คงท่ีทเ่ี คยประกาศไว้ในภายหลัง เช่น ได้เปลย่ี นคา่ ให้กับ discount
เป็น 1.0 ดว้ ยการแทรกลงไปในบรรทัดที่ 22 ดังน้ี

เมอ่ื ผ่านการคอมไพล์แลว้ จะเกดิ ข้อผิดพลาดในบรรทดั ที่ 22 ว่า ไม่สามารถเปลย่ี นแปลงค่าคงท่ีท่ี
ประกาศ ไวใ้ นฟังกช์ นั mian() ได้ ดงั รปู ตอ่ ไปนี้

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

4.5 การประกาศตวั แปร (Declarations)
ตัวแปรทุกตัวจะต้องถูกประกาศก่อนการใช้งานเสมอ และจากเนื้อหาความรู้เกี่ยวกับชนิดข้อมูล

ตัวแปร และคา่ คงที่ทีผ่ ่านมาก็ได้เรยี นรู้ถึงการประกาศตวั แปรในโปรแกรมตัวอย่างมาบ้างแล้ว แต่อย่างไร
กต็ ามภาษา C กย็ ังสามารถประกาศตัวแปรไดห้ ลายรูปแบบ ซึง่ ประกอบดว้ ย

4.5.1 การประกาศตวั แปรทลี ะตัว ทีละบรรทดั
เปน็ การประกาศตวั แปรท่ีใชง้ านแตล่ ะตัว ทีละบรรทดั เช่น

วชิ าหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หนว่ ยท่ี 3 พ้นื ฐานภาษา C และการตดิ ต้ังใชง้ าน 12

4.5.2 การประกาศกล่มุ ตวั แปรพรอ้ มกนั
เป็นการประกาศตัวแปรที่มีชนิดข้อมูลเหมือนกันภายในบรรทัดเดียว ( Multiple

Declarations) โดยใช้ เครอ่ื งหมาย , ค่นั ระหวา่ งชอ่ื ตวั แปรแต่ละตัว เชน่

4.5.3 การประกาศตัวแปร พร้อมกําหนดคา่ เรมิ่ ต้น
เปน็ การประกาศตวั แปร พร้อมกําหนดคา่ เริ่มต้นใหก้ บั ตัวแปรภายในบรรทดั นน้ั เช่น

4.5.4 ประกาศตัวแปรชนิดค่าคงท่ี
เปน็ การประกาศตวั แปรพร้อมกาํ หนดคา่ ใหก้ บั ตวั แปรชนดิ ค่าคงที่ ซง่ึ ตัวแปรชนดิ คา่ คงที่น้ัน

จะไม่ สามารถเปลีย่ นแปลงคา่ ในภายหลงั ได้อีก

4.6 ตวั ดาํ เนนิ การและนพิ จน์ (Operators and Expressions)
ในความเป็นจริง ตัวดําเนินการในภาษา C มีมากมายหลายตัวทีเดียว แต่สําหรับในที่นี้จะขอ

กล่าวถึง ตัวดาํ เนนิ การทีส่ าํ คญั ๆ ดังตอ่ ไปน้ี
1. ตวั ดําเนนิ การทางคณิตศาสตร์ (Anthmetic Operators)
2. ตวั ดาํ เนนิ การยูนารี (Unary Operators)
3. ตวั ดาํ เนินการเปรียบเทียบและตรรกะ (Comparison and Logical Operators)
4. ตวั ดาํ เนนิ การระดบั บติ (Bitwise Operators)
5. ตวั ดําเนินการกาํ หนดค่า (Assignment Operators)
6. ตวั ดาํ เนินการเงื่อนไข (Conditional Operator)
7. ตัวดาํ เนินการบอกขนาดกชนดิ ข้อมูล (sizeof Operator)

วชิ าหลกั กาเขยี นโปรแกรม รหัสวิชา 20204-2004

หนว่ ยท่ี 3 พืน้ ฐานภาษา C และการตดิ ต้ังใชง้ าน 13

4.6 ตัวดําเนินการทางคณติ ศาสตร์ (Arithmetic Operators)

ในภาษา C มีตวั ดาํ เนนิ การหรือตัวดาํ เนินการทางคณติ ศาสตร์อยู่ 5 ตัวด้วยกนั คือ

ตัวดำเนนิ การ จุดประสงค์

+ การบวก (addition)

- การลบ (subtraction)

* การคูณ (multipication)

/ การหาร (divistion)

% การหากเอาเศษ (modulus)

อยา่ งไรกต็ าม ภาษา C จะไม่มตี ัวดําเนินการท่ีใช้สาํ หรบั คา่ ยกกาํ ลงั แต่จะใช้ฟังกช์ นั plus) แทน

ซ่ึงจะ กลา่ วรายละเอียดในบทที่ 5 ในหัวขอ้ ฟงั ก์ชนั ทางคณิตศาสตร์

ตวั ดาํ เนินการจะประกอบด้วยสญั ลกั ษณท์ ้ัง 5 ที่แสดงไว้ข้างตน้ ในขณะทีต่ ัวถูกดาํ เนนิ การหรอื โอ

เปอ แรนด์ (Operands) น้ันจะตอ้ งถกู แทนด้วยคา่ ตวั เลข ซึง่ อาจเป็นตัวแปรหรือค่าคงท่ี ทงั้ น้ีตัวถกู

ดําเนนิ การยงั สามารถเปน็ ได้ทง้ั เลขจํานวนเต็ม เลขจาํ นวนจริง และตวั อักขระ เมื่อนําท้ังตวั ถกู ดําเนินการ

และตวั ดําเนนิ การ ประกอบเขา้ ด้วยกัน ก็จะเรียกว่านิพจน์นั่นเอง เชน่ a/b ถอื เปน็ นพิ จน์ มีการใช้ตัว

ดาํ เนินการหาร (/) โดยท่ี a เปน็ ตัวถกู ดําเนินการตัวแรกที่ใชเ้ ปน็ ตวั ตัง้ ในขณะที่ ๖ เป็นตัวถูกดําเนนิ การ

ตวั ที่สองท่ีใช้เป็นตวั หาร

อย่างไรก็ตาม สําหรับตวั ถูกดําเนินการสองตัว ที่นํามาคาํ นวณผา่ นตวั ดาํ เนินการมอดลู สั (%) นัน้

จะตอ้ ง เปน็ เลขจาํ นวนเตม็ ท้ังค่แู ละตวั ถูกดําเนินการท่เี ปน็ ตัวหารจะตอ้ งไม่เปน็ ค่าศูนย์ ในทาํ นองเดยี วกัน

ตวั ถกู ดําเนิน การท่นี าํ มาคํานวณผ่านตวั ดําเนนิ การหาร ( /) น้ัน ตวั ถกู ดาํ เนนิ การทเี่ ปน็ ตัวหาร กจ็ ะต้องไม่

เป็นคา่ ศนู ย์เช่นกนั

และจากรายละเอยี ดของตวั อยา่ งต่อไปน้ี จะแสดงถึงนิพจน์ที่กาํ หนดขนึ้ และผลลัพธท์ ไ่ี ด้

ตวั อย่าง สมมติวา่ a และ b ถกู กําหนดให้เปน็ ตัวแปรชนดิ เลขจํานวนเต็ม ซ่งึ ถูกกําหนดค่าเปน็ 10 และ 3

ตามลําดบั เมือ่ นา้ํ ตัวแปรทั้งสองมาผ่านนพิ จนค์ ณิตศาสตร์ตามตารางต่อไปนี้ กจ็ ะได้

วิชาหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หนว่ ยที่ 3 พ้ืนฐานภาษา C และการติดต้ังใชง้ าน 14
ตัวอย่าง สมมติว่า n1 และ n2 ถูกกําหนดให้เป็นตัวแปรชนิดเลขจํานวนจริง ซึ่งถูกกําหนดค่าเป็น 12.5
และ 2.0 ตามลําดบั เมื่อนาํ ตัวแปรทง้ั สองมาผ่านนิพจนค์ ณติ ศาสตรต์ ามดา้ นลา่ งตอ่ ไปน้ี ก็จะได้

ตวั อย่าง สมมตวิ า่ c1 และ c2 ถูกกําหนดใหเ้ ป็นตวั แปรชนิดตวั อกั ษร ซ่ึงถูกกาํ หนดคา่ เป็น P และ I
ตามลาํ ดบั เมื่อนําตวั แปรท้งั สองมาผ่านนิพจนค์ ณิตศาสตร์ตามดา้ นลา่ งต่อไปน้ี ก็จะได้

4.7 ตวั ดําเนินการยนู ารี (Unary Operators)
ภาษา C ยงั ผนวกตวั ดําเนนิ การทน่ี าํ มาใช้กบั ตวั ถกู ดําเนินการชนดิ โดดๆ ในการสร้างคา่ ใหมข่ ้ึนมา

นั่น ก็คือ ตัวดําเนนิ การยูนารี และหนึ่งในนั้นก็คือ ตัวดําเนนิ การยูนารีตดิ ลบ (Unary Minus) ตัวอย่างตวั
ถกู ดําเนนิ การชนดิ โดดๆ เช่น 882 เมือ่ มีการนําตัวดําเนินการยูนารี - นําหน้า คา่ กจ็ ะถูกเปล่ยี นเป็นค่าติด
ลบในทันทีคือ -282 นั่นเอง อย่างไรก็ตาม เครื่องหมายลบดังกล่าวมีความแตกต่างกันอย่างสิน้ เชิง กับตัว
ดําเนินการทาง คณติ ศาสตรท์ ่ีใช้สาํ หรับการลบ (Subtraction)
ตวั อยา่ ง การใชต้ วั ดําเนินการยนู ารคี ่าติดลบ

จากตัวอย่างข้างต้นจะพบว่า ตัวดําเนินการยูนารีสามารถนํามาใช้กับตัวถูกดําเนินการที่เป็น
ค่าคงทแ่ี บบ เลขจาํ นวนเตม็ เลขจาํ นวนจรงิ ตวั แปร และนิพจนก์ ไ็ ด้

วชิ าหลกั กาเขยี นโปรแกรม รหสั วิชา 20204-2004

หน่วยที่ 3 พนื้ ฐานภาษา C และการติดต้ังใชง้ าน 15

นอกจากนี้ตัวดําเนินการยูนารี ก็ยังประกอบด้วย ตัวดําเนินการเพิ่มค่า (Increment Operator)

ซึ่ง ใช้เครื่องหมาย ++ และ ตัวดําเนินการลดค่า (Decrement Operator) ซึ่งใช้เครื่องหมาย -- โดยการ

เพ่ิมค่า หรือการลดคา่ ด้วยตวั ดําเนินการดังกล่าว จะเพ่มิ ทลี ะหน่งึ หรือลดทลี ะหนง่ึ และตัวถกู ดําเนินการท่ี

นําตวั ดาํ เนนิ การนมี้ าใช้ จะต้องเปน็ ตวั แปรโดดๆ โดยสามารถใชเ้ คร่ืองหมาย ++ และ .. เขียนนําหน้าตัว

แปร (prefix) หรือ หลังตัวแปร (postfix) ก็ได้ เช่น ++i หรือ i++ แต่ทั้งสองแบบนี้จะมีวิธีจัดการกับค่าที่

แตกตา่ งกนั ตามราย ละเอยี ดตอ่ ไปนี้

ตวั ดำเนินการ นพิ จน์ ความหมาย

++(prefix) ++a เพิ่มค่าขึ้นอีกหนึ่งให้กับ a ก่อน แล้วจึงนำค่าใหม่ของ a
ในนิพนนน์ ี้ไปใช้

++(postfix) a++ นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วจึงเพ่ิม
ค่า a ขนึ้ อกี หนงึ่

--(postfix) --b ลดค่าลงอีกหนึ่งให้กับ b ก่อน แล้วจึงนำคา่ ใหม่ของ b ใน
นิพจนน์ ไ้ี ปใช้

--(postfix) b-- นำค่าปัจจุบันของ b ในนิพนจ์นี้ไปใช้งานก่อนแล้วจึงลด
คา่ b ลงอีกหนง่ึ

4.8 ตัวดําเนินการเปรยี บเทยี บและตรรกะ (Comparison and Logical operators)

ตัวดาํ เนนิ การเปรียบเทยี บในภาษา C ประกอบด้วย

ตัวดำเนินการ ความหมาย

< นอ้ ยกวา่

<= นอ้ ยกวา่ หรอื เท่ากบั

> มากกว่า

>= มากกวา่ หรอื เท่ากบั

== เท่ากบั

!= ไม่เท่ากับ

โดยตวั ดําเนนิ การทงั้ 6 เหล่านี้สามารถเขยี นอยู่ในรูปแบบของนิพจน์เพ่ือการเปรียบเทียบค่า โดย

ผลลัพธ์ ที่ได้จะเป็นค่าตรรกะที่เป็นจริง (true) หรือเป็นเท็จ (false) อย่างใดอย่างหนึ่ง ซึ่งค่าตรรกะ

ดังกลา่ วจะเป็นข้อมลู ชนิดเลขจาํ นวนเต็ม โดยที่ 1 คือจรงิ และ 0 คือเทจ็

วชิ าหลกั กาเขยี นโปรแกรม รหสั วิชา 20204-2004

หน่วยท่ี 3 พนื้ ฐานภาษา C และการติดตั้งใช้งาน 16

4.9 ตวั ดำเนินการกำหนดคา่ (Assignment Opeators)
ในภาษา C มีหลายวิธีด้วยกันในการกําหนดค่าให้กับตัวแปร ซึ่งปกติตัวดําเนินการกําหนดค่า

มักจะใช้ เครื่องหมาย = และการกําหนดค่านิพจน์ก็จะใช้เครื่องหมาย = เช่นกัน สําหรับรูปแบบของตัว
ดําเนินการกําหนด คา่ สามารถเขยี นไดต้ ามรูปแบบดงั นี้

รปู แบบ
variable_name = expression;

โดยที่ variable_name หมายถึง ชื่อตวั แปร
expression หมายถึง นพิ จน์ ซ่ึงสามารถเป็นคา่ คงที่ ตัวแปร รวมถึงสตู รทาง
คณิตศาสตรท์ ี่ซบั ซอ้ น

ตัวอย่างการกาํ หนดคา่ นพิ จน์ดว้ ยตัวดาํ เนนิ การกําหนดคา่

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

ตัวอย่าง การกําหนดค่านิพจน์และผลลัพธ์ที่ได้ โดยที่ตัวแปร i และj เป็นชนิดข้อมูลแบบเลข จํานวนเตม็
โดยตัวแปร ถกู กาํ หนดให้มคี ่าเท่ากบั 5

วิชาหลกั กาเขียนโปรแกรม รหสั วชิ า 20204-2004

หน่วยที่ 3 พน้ื ฐานภาษา C และการตดิ ต้ังใชง้ าน 17

4.9 ตวั ดาํ เนนิ การเพอ่ื นไข (Conditional operator)
ตัวดําเนินการเงื่อนไข จะนํามาใช้เพื่อทดสอบค่านิพจน์ทางตรรกะว่าจริงหรือเท็จ โดยมีรูปแบบ

ดังนี้
รปู แบบ

expressionl ? expression2 : expression3

โดยที่ expression1 หมายถงึ นพิ จน์เง่ือนไข
expression2 หมายถึง คา่ ที่ได้ กรณเี ปน็ จริง
expression3 หมายถึง คา่ ทีไ่ ด้ กรณีเป็นเท็จ

ตัวอย่าง จากนพิ จน์เงื่อนไขต่อไปน้ี กําหนดใหต้ วั แปร และ ans เป็นขอ้ มลู ชนิดเลขจํานวนเตม็

นพิ จน์ (i < 0) จะถูกดําเนนิ การกอ่ น
ถา้ นิพจนม์ ีเงอ่ื นไขเปน็ จริง ตวั แปร ans จะถกู กาํ หนดคา่ เปน็ 0
ถ้านพิ จน์มเี งอื่ นไขเปน็ เท็จ ตวั แปร ans กจ็ ะถูกกําหนดคา่ เปน็ 100
ซ่งึ หากเขยี นอยูใ่ นรูปแบบของชดุ คาํ สัง่ if กจ็ ะได้ดงั น้ี

อยา่ งไรก็ตาม ตวั ดําเนนิ การเงื่อนไข ยงั สามารถนาํ มาเขียนเพื่อการตรวจสอบเง่ือนไขที่ซับซ้อนได้
ดงั ตวั อย่างเช่น

วิชาหลักกาเขยี นโปรแกรม รหสั วชิ า 20204-2004

หน่วยท่ี 3 พื้นฐานภาษา C และการติดตั้งใชง้ าน 18

4.10 ตัวดาํ เนินการบอกขนาดชนิดขอ้ มูล (sizeof operator)
ตัวดําเนินการประเภทนี้จะทําให้เราทราบว่า ชนิดข้อมูลแต่ละชนิดที่อยู่ในเครื่องมีขนาดเท่าใด

ทั้งนี้ชนิด ข้อมสระมีขนาดเท่าใดนั้น จะสามารถทราบได้จากตัวดําเนินการ Sizeof ซึ่งมีรูปแบบการเขียน
ดังนี้

รปู แบบ
sizeof (expression)

โดยท่ี expression หมายถงึ ชนดิ ข้อมูล หรือตัวแปร
ส่วนขนาดที่ได้จะบอกหน่วยเป็นไบต์ (หากต้องการแสดงผลเป็นหน่วยบิต ก็สามารถนํามาคูณ
ด้วย 8) ตัวอย่างเชน่

printf(“The size of char is %d byte\n”, sizeof(char));
printf(“The size of int is %d byte\n”, sizeof(int));
printf(“The size of float is %d byte\n”, sizeof(float));
printf(“The size of char is %d byte\n”, sizeof(double));

วชิ าหลักกาเขียนโปรแกรม รหัสวิชา 20204-2004

หนว่ ยท่ี 3 พื้นฐานภาษา C และการตดิ ตั้งใชง้ าน 19
4.11 ลําดับความสาํ คัญของตัวดาํ เนินการ (Operator Order of Precedence)

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

รปู ที่ 4.2 ลาํ ดับการทาํ งานของตวั ดาํ เนินการ จากความสาํ คัญสูงสุดลงมาตำ่ สุด
วิชาหลักกาเขียนโปรแกรม รหสั วิชา 20204-2004

หน่วยท่ี 3 พื้นฐานภาษา C และการตดิ ต้ังใชง้ าน 20

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

num1 = (10 – 2 * 4);
จากนิพจนข์ ้างตน้ ผลลพั ธ์ของ กนm1 จะได้ค่าเท่ากับ 2 มใิ ช่ 32 อยา่ งทเี่ ขา้ ใจกัน เพราะวา่ ลาํ ดบั การ
คํานวณในคร้ังน้ี จะกระทําท่นี ิพจน์ 2" 4 = 8 ก่อน จากน้นั จึงคอ่ ยคํานวณ 10 – 8 = 2 ท่ีเปน็ เชน่ นีก้ ็เน่ือง
มา จากตวั ดําเนินการ (multiply) มีความสาํ คัญสงู กว่าตวั ดําเนนิ การ - (subtract) นนั่ เอง
และกรณีที่นิพจน์ประกอบด้วยตัวดําเนินการหลายๆ ตัว และอาจมีความสําคัญเท่ากัน การ
ประมวลผล ก็จะพิจารณาถึงตัวดําเนินการที่มีความสําคัญสูงสุดก่อน และจะประมวลผลจากซ้ายไปขวา
เช่น นพิ จนต์ อ่ ไปนี้

total = 10 * 4 + 2 + 21 / 3

วชิ าหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หนว่ ยท่ี 3 พน้ื ฐานภาษา C และการตดิ ต้ังใชง้ าน 21

ก็จะมขี ้นั ตอนการประมวลผลดงั น้ี

อยา่ งไรกต็ าม กรณที นี่ ิพจนห์ รือสตู รทางคณิตศาสตรม์ คี วามซบั ซอ้ นสูง สามารถใชต้ ัวดําเนินการ ( )
เข้ามาชว่ ยได้ เนื่องจากตัวดําเนนิ การเครื่องหมายวงเล็บจะมลี ําดับความสําคัญสูงสุด และจะถูกนาํ มา
ประมวล ผลกอ่ น เชน่

ans = 2 * ((i / 5) + (4 * (j - 3)) % (i 4 5 - 2))
สาํ หรับกรณีท่มี เี คร่อื งหมายวงเล็บซ้อนกันหลายๆ ชั้น กจ็ ะประมวลผลนิพจนท์ ่ีอยภู่ ายในวงเลบ็ วงใน
สตู ิ ก่อน โดยสมมติวา่ หากกําหนดให้ค่า i และ เปน็ เลขจาํ นวนเต็มท่มี ีคา่ เทา่ กับ 20 และ 8 ตามลําดบั
ผลลพั ธ์ จากนิพจน์น้ี ค่า ans ก็จะมีคา่ เท่ากบั 8 ซ่งึ เป็นไปตามลําดบั การประมวลผลดังต่อไปนี้

วิชาหลักกาเขียนโปรแกรม รหสั วิชา 20204-2004

หนว่ ยที่ 3 พื้นฐานภาษา C และการติดต้ังใชง้ าน 22

ใบสง่ั งาน 4.1 พื้นฐานภาษา C และการตดิ ตงั้ ใช้งาน

คำสั่ง : ใหน้ กั เรียนแบ่งกลุ่ม กลมุ่ ละ 5 คน แล้วทำการศึกษาเน้ือหาจากเอกสารประกอบการ
สอน หน่วยที่ 4 ชนิดของข้อมูลและตัวดำเนินการ และช่วยกันสรุปเนื้อหาโดยทำเป็นแผนผังความคิด
Mine Mapping โดยใช้โปรแกรม PowerPoint หรือ กระดาษ A4

เกณฑ์การประเมนิ

รายการประเมนิ ระดับคะแนน หมายเหตุ
321

1. ความเหมาะสมบทบาทการนำเสนอ

2. ความถกู ต้อง ข้อมูล สาระ ความรู้

3. สว่ นประกอบอน่ื ๆ และความคดิ ริเรม่ิ สรา้ งสรรค์

คะแนนรวม

หมายเหตุ ไดค้ ะแนน 6 คะแนนขนึ้ ไป จงึ จะถือว่าผ่านเกณฑ์

ประเด็นการประเมนิ

ประเด็น เกณฑก์ ารใหค้ ะแนน /ระดับคุณภาพ
3 21

1. ความเหมาะสม แสดงบทบาทเหมาะสม แสดงบทบาทเหมาะสม แสดงบทบาท

บทบาทการนำเสนอ เสยี งดงั ฟงั ชดั มลี ีลา เสยี งดงั ปานกลาง มี เหมาะสม เสยี งเบา

ประกอบ ลลี าประกอบบา้ ง ลีลาประกอบ

ค่อนข้างนอ้ ย

2. ความถกู ต้อง ข้อมูล เนอ้ื หาสาระถกู ต้อง เนอื้ หาสาระถูกต้องเป็น เน้ือหาสาระถูกต้อง

สาระ ความรู้ ครบถ้วน ส่วนมาก เป็นส่วน้อย

3. ส่วนประกอบอื่น ๆ รปู แบบของสอ่ื ทำมาได้ รปู แบบของสื่อทำมาได้ รปู แบบของสื่อทำ

และความคดิ ริเริ่ม สวยงาม เนอ้ื หา สวยงาม เน้ือหาน้อย มาได้สวยงาม

สร้างสรรค์ ครอบคลุมสมบรู ณ์ เนื้อหาน้อยเกินไป

วชิ าหลกั กาเขยี นโปรแกรม รหสั วชิ า 20204-2004

หนว่ ยที่ 3 พืน้ ฐานภาษา C และการติดตั้งใชง้ าน 23

ใบสง่ั งาน 4.2 ชนิดของข้อมูลและตัวดำเนนิ การ

คำสัง่ : จงตอบคำถามต่อไปน้ีให้ได้ใจความท่ีสมบูรณ์

1. กฎการต้งั ชอ่ื ตวั แปรในภาษา C มอี ะไรบา้ ง
............................................................................................................................. ...................................
............................................................................................... .................................................................
............................................................................................................................. ...................................
2. ชนิดข้อมูลพนื้ ฐานในภาษา C ประกอบดว้ ยอะไรบา้ ง จงอธิบาย
............................................................................................................................. ...................................
................................................................................................................................................................
............................................................................................................................. ...................................
............................................................................................................................. ...................................
3. ตวั แปรและคา่ คงท่ี มคี วามแตกตา่ งกันอย่างไร จงอธิบาย
....................................................................................................................................................... .........
......................................................................................................................... .......................................
............................................................................................................................. ...................................
................................................................................................................................................................
4. เราสามารถกำหนดค่าคงท่ีในรูปแบบใดไดบ้ ้าง จงอธบิ ายพร้อมยกตัวอยา่ ง
.................................................................................. ..............................................................................
............................................................................................................................. ...................................
............................................................................................................................................. ...................
............................................................................................................... .................................................
5. นพิ จนค์ อื อะไร จงยกตัวอย่างมา 3 ตัวอยา่ ง
............................................................................................................................. ..................................
................................................................................................................................ ...............................
................................................................................................... ............................................................
............................................................................................................................. .................................

วชิ าหลกั กาเขียนโปรแกรม รหัสวิชา 20204-2004

หน่วยท่ี 3 พน้ื ฐานภาษา C และการตดิ ต้ังใชง้ าน 24

ใบส่ังงาน 4.3 เขยี นโปรแกรมอย่างงา่ ย

คำสัง่ : ให้นกั เรียนเขยี นผงั งานจากโจทยต์ อ่ ไปน้ี

1. จงเขียนโปรแกรมคำนวณอยา่ งงา่ ย

ใหป้ ระกาศตัวแปรเก็บคะแนนก่อนเรียน กำหนดค่า 50 และประกาศตวั แปรเก็บ

คะแนนหลังเรยี น กำหนดคา่ 50 หาผลรวมของคะแนนก่อนเรียนและหลงั เรียนใหเ้ ขียนโปรแกรม

แสดงผลออกทางจอภาพ ดงั น้ี

คะแนนกอ่ นเรียน xxx คะแนน

คะแนนหลงั เรียน xxx คะแนน

คะแนนรวม xxx คะแนน

2. จงเขียนโปรแกรมจากโจทย์ต่อไปน้ี
ใหป้ ระกาศตัวแปรเก็บชื่อนักเรยี น คะแนนเกบ็ 80 คะแนน และผลการเรียน A

ให้แสดงผลออกทางจอภาพดังน้ี
ชอ่ื : นกั เรียน
คะแนนเก็บ : xxx คะแนน
ผลการเรีย : x

3. จงเขียนโปรแกรมจากโจทย์ตอ่ ไปนี้
ใหป้ ระกาศตัวแปรเก็บข้อมลู นกั เรยี น นายโปรแกรม เรยี นดี คะแนนเก็บ 150 คะแนน

คำนวณร้อยละ 80 จากคะแนนเกบ็ แสดงผลออกจากภาพ ดงั นี้
ชอ่ื : xxx
คะแนนเกบ็ xxx คะแนน
คะแนนร้อยละ 80 : xxx คะแนน

วชิ าหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หน่วยท่ี 3 พนื้ ฐานภาษา C และการติดต้ังใช้งาน 25

แบบทดสอบหลังเรียน
หนว่ ยที่ 4 ชนิดขอ้ มูลและตัวดำเนนิ การ

คำสัง่ ชแ้ี จง : 1. แบบทดสอบฉบับบน้ีเปน็ แบบปรนัยชนดิ เลือกตอบ 4 ตวั เลอื ก จำนวน 10 ข้อ
ขอ้ ละ 1 คะแนน

2. ให้เลือกคำตอบท่ีถูกต้องที่สุดเพยี งข้อเดยี ว แลว้ ทำเครื่องหมายกากบาท (X) ลงใน
กระดาษคำตอบ

3. เวลาทใ่ี ช้ในการทำแบบทดสอบ 10 นาที

1. ขอ้ ใดตอ่ ไปนี้ ตงั้ ชอื่ โปรแกรมไดอ้ ย่างถกู ต้อง
ก. 1var
ข. Num@
ค. do
ง. _name

2. หากต้องการตวั แปรเก็บคา่ จะนวนเต็มบวก ควรกำหนดเป็นชนดิ ขอ้ มลู ตามขอ้ ใด
ก. int
ข. float
ค. double
ง. char

3. ชนดิ ขอ้ มูลตามขอ้ ใดตอ่ ไปนี้ นำมาใช้เพื่อการจัดเก็บค่าตวั เลขที่มีจุทศนยิ ม
ก. char
ข. float
ค. double
ง. ถกู ท้งั ข้อ ก. และ ข.

วิชาหลกั กาเขยี นโปรแกรม รหัสวิชา 20204-2004

หน่วยที่ 3 พนื้ ฐานภาษา C และการติดต้ังใชง้ าน 26

4. คา่ สูงสุดของเลขนำนวนเต็มชนิด unsigned คือข้อใด
ก. 32,767
ข. 65,535
ค. 4,294,967,295
ง. เปน็ ไปไดท้ ั้งข้อ ข. และ ค.

5. ขนิดข้อมูลตามข้อใดที่ใชห้ น่วยความจำสนิ้ เปลอื งทส่ี ดุ
ก. char
ข. float
ค. long double
ง. long int

6. กำหนดให้ number = 496 อยากทราบวา่ ตัวแปร number น่าจะถูกกำหนดชนดิ ขอ้ มูล
ตามข้อใด

ก. int
ข. unsign int
ค. char
ง. double

7. กำหนดให้ result = 8.56 อยากทราบวา่ ตวั แปร result นา่ จะถูกกำหนดชนิดข้อมูล
ตามข้อใด

ก. int
ข. double
ค. Octal
ง. Hexadecimal

วชิ าหลกั กาเขยี นโปรแกรม รหสั วิชา 20204-2004

หนว่ ยท่ี 3 พื้นฐานภาษา C และการติดตั้งใช้งาน 27

8. จากโจทย์ นำผลลัพธ์จากตัวแปร n1 บวกด้วย n2 แล้วหารดว้ ย c อยากทราบว่า
ตอ้ งเขียนนพิ จนใ์ นรปู แบบใด

ก. n1 + n2 / c
ข. n1 ADD n2 DEVIDE c
ค. (n1) + (n2) / (c)
ง. (n1 + n2) / c
9. การกำหนดคา่ คงท่ีของภาษา C กำหนดไดก้ ่ีรูปแบบ
ก. 2 รปู แบบ
ข. 3 รูปแบบ
ค. 4 รปู แบบ
ง. 5 รูปแบบ
10. นำค่า k ไปใชก้ ่อน แลว้ จงึ เพ่ิมคา่ k อีกหนึ่ง จะต้องเขยี นรูปแบบของนิพจนใ์ ด
ก. k++
ข. ++k
ค. k+1
ง. 1+k

วิชาหลกั กาเขียนโปรแกรม รหัสวชิ า 20204-2004

หนว่ ยท่ี 3 พื้นฐานภาษา C และการตดิ ต้ังใชง้ าน 28

ใบกระดาษคำตอบ
ชนดิ ของข้อมูลและตัวดำเนนิ การ

ช่อื .....................................นามสกุล................................ระดบั ชัน้ .............กลมุ่ .........เลขท่ี..................

ข้อ ก ข ค ง ผล
1
2
3
4
5
6
7
8
9
10

คะแนนที่ทำได้

เกณฑก์ ารประเมนิ 70 เปอร์เซน็ ต์ ลงชอื่ ..........................................ผ้ตู รวจ
ทำได้ 7-10 คะแนน ผ่านเกณฑ์ (.........................................)
สรปุ ผล  ผ่านเกณฑ์ ........../................/..........

 ไมผ่ า่ นเกณฑ์

วิชาหลักกาเขียนโปรแกรม รหสั วชิ า 20204-2004

หนว่ ยที่ 3 พืน้ ฐานภาษา C และการติดตั้งใชง้ าน 29
วชิ าหลักกาเขยี นโปรแกรม รหสั วิชา 20204-2004


Click to View FlipBook Version