Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore บัตรเนื้อหาที่ 2 ข้อมูลและตัวแปรในภาษาซี

บัตรเนื้อหาที่ 2 ข้อมูลและตัวแปรในภาษาซี

Description: ชุดที่2

Search

Read the Text Version

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี บตั รเนื้อหาที่ 2 ขอ้ มูลและตัวแปร ในภาษาซี ข้อมูลของภาษาซี สำหรบั เร่ืองขอ้ มลู ของภำษำซี จะกลำ่ วถึงเร่อื งตวั อักขระ คำ่ คงที่ และตวั แปร ดังรำยละเอยี ดต่อไปนี้ 1. ตวั อกั ขระ (charactors) ตัวอกั ขระในภำษำซี สำมำรถจำแนกออกเป็น 3 ประเภท คอื 1. ตวั เลข (digits) คือ ตวั เลข 0, 1, 2, …., 9 และตวั เลขฐำนสิบหก A, B, C, D, E และ F 2. ตัวอักษร (letters) สำมำรถใชต้ ัวอกั ษรพมิ พใ์ หญ่ (uppercase letter) คือ A, B, C, …, Z และตัวอักษร พมิ พเ์ ล็ก (lowercase letter) คือ a, b, c, …., z รวมทั้งสิ้น 52 ตัวอกั ษร 3. ตวั อกั ขระพเิ ศษ (special character) ซ่งึ ไดแ้ ก่ ! .(dot) ( ~ #*= ; %+ | / ^“> - ?<) [ : ,(comma) & _ ] ‘b (blank หรอื space) ยกเวน้ เครือ่ งหมำย _ (underscore) เพียงตวั เดียวทภ่ี ำษำซี จัดเปน็ ตัวอกั ษรตวั หน่ึง โดยท่ตี ัวอักขระชนิดต่ำง ๆ นีจ้ ะถูกนำไปใชเ้ ปน็ ค่ำคงที่ ตวั แปร ตัวดำเนนิ กำร หรือนพิ จน์ ทใ่ี ช้ ในภำษำซี ตอ่ ไป ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 1 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปีท่ี 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี 2 2. ค่าคงท่ี (constants) ค่ำคงท่ี คือตัวอักขระท่นี ำมำประกอบกนั ต้งั แต่ 1 ตัวอกั ขระขึน้ ไป เพ่ือบอกลกั ษณะอย่ำงใดอย่ำง หน่ึงของข้อมลู บำงคร้งั เรำอำจเรยี กค่ำคงท่ีวำ่ “ขอ้ มลู ” (data) กไ็ ด้ 1. ค่ำคงทีช่ นดิ ตัวเลขจำนวนเต็ม (integer constant) คำ่ คงท่ชี นดิ นจี้ ะเป็นตัวเลขจำนวนเตม็ ซงึ่ อำจมี เคร่ืองหมำยบวกหรอื ลบกไ็ ด้ เชน่ 0, 9, 85, -698, 1832, -2080 เป็นต้น โดยตัวเลขจำนวนเต็มทจี่ ะสำมำรถเกบ็ ได้ปกติจะอย่ใู นช่วง -32768 ถึง 32767 เท่ำน้ัน บำงครง้ั เรำนยิ มเรยี กคำ่ คงทชี่ นดิ น้ีว่ำคำ่ คงท่ี int (integer) สำหรับกำรเกบ็ ค่ำคงท่ีชนดิ int นี้ภำยในหนว่ ยควำมจำ จะใช้เน้อื ท่ี 2 bytes นอกจำกนย้ี ังสำมำรถ เขยี นคำ่ คงที่ชนดิ น้ีให้อยูใ่ นรูปแบบตัวเลขฐำนแปดและฐำนสิบหกได้ โดยใช้ตวั เลขศนู ย์ (0) นำหน้ำแล้วตำม ดว้ ยเลขฐำนแปดที่ต้องกำรหรือจะใชต้ วั เลขศนู ยเ์ อ็กซ์ (0x หรอื 0X) นำหน้ำแลว้ ตำมด้วยเลขฐำนสบิ หกที่ ต้องกำร เช่น 046, 027, 0xBD, 0X1BCF เปน็ ตน้ 2. คำ่ คงที่ชนิดตวั เลขทศนิยม (floating point constant) ค่ำคงทชี่ นดิ น้จี ะเปน็ ตวั เลขจำนวนทศนิยม ซึ่งอำจจะมีเครอ่ื งหมำยบวก หรือลบกไ็ ด้ หรอื เป็นตวั เลขท่ีสำมำรถเขียนอยูใ่ นรปู E ยกกำลังได้ เชน่ 3.0, 0.234, -0.54, 4E-06, 1.675E+10 เปน็ ตน้ โดยตวั เลขทศนยิ มนจ้ี ะสำมำรถเก็บได้ปกติจะอยใู่ นชว่ ง 1.2E- 38 ถึง 3.4E+38 เทำ่ น้นั สำหรับกำรเกบ็ คำ่ คงที่ชนิด float นีจ้ ะใชเ้ น้อื ทภี่ ำยในหน่วยควำมจำ 4 bytes โดยที่ 3 bytes แรกจะเก็บค่ำตวั เลขทศนยิ ม ส่วนอีก 1 bytes สุดท้ำยจะเก็บค่ำยกกำลังเอำไว้ 3. ค่ำคงท่ีตัวเลขทศนยิ มท่ีมีควำมละเอยี ดสองเท่ำ (double floating point) คำ่ คงทช่ี นดิ นี้นยิ ม เรยี กวำ่ ค่ำคงท่แี บบ double ซ่งึ จะสำมำรถเก็บตัวเลขทศนยิ มท่มี ีคำ่ อย่ใู นช่วง 2.2E-308 ถึง 1.8E+308 เท่ำน้ัน สำหรับกำรเก็บคำ่ คงท่ีชนิด double นี้ จะใชเ้ น้อื ท่ภี ำยในหนว่ ยควำมจำ 8 bytes โดยใช้ 7 bytes แรกเก็บค่ำตวั เลขทศนิยม ส่วนอกี 1 bytes สุดท้ำยจะเกบ็ คำ่ ยกกำลังเอำไว้ เช่นเดยี วกับคำ่ คงท่ี ชนดิ float 4. ค่ำคงท่ีชนิดตวั อักขระตวั เดียว (single character constant) ค่ำคงท่ีชนิดนจี้ ะสำมำรถเกบ็ ตวั อักขระไดเ้ พียง 1 ตวั อักขระ โดยอยู่ภำยในเคร่อื งหมำย ‘ ’ (single quotation) เช่น ‘5’, ‘X’, ‘c’ เปน็ ตน้ สำหรบั กำรเก็บคำ่ คงท่ีชนิด single character constant จะใชเ้ นือ้ ท่ีภำยในหน่วยควำมจำ 1 bytes 5. คำ่ คงท่ีชนดิ ขอ้ ควำม (strings constant) คำ่ คงท่ีชนดิ นีจ้ ะเกบ็ ตัวอักขระท่ีมคี วำมยำวตง้ั แต่ 1 ตวั ขน้ึ ไป โดยจะเก็บอยูใ่ นรปู ของข้อมูลอะเรย์ (arrays) ซ่ึงในแตล่ ะตวั อกั ขระจะใชเ้ นอ้ื ทใี่ นกำรเก็บ 1 bytes เรยี ง ตดิ ตอ่ กนั ไปจนกระท่ังจบขอ้ ควำม และใน byte สุดท้ำยจะเกบ็ \\0 (null character) เอำไว้เพื่อเปน็ กำรบอกว่ำ จบข้อควำมแล้ว กำรเขยี นค่ำคงทีช่ นิดขอ้ ควำมจะต้องเขียนอย่ภู ำยในเครือ่ งหมำย “……” (double quotation) เช่น “X”, ”computer”, “4567”, “c” เป็นตน้ ชดุ กิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศกึ ษาปีที่ 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี ตวั อยำ่ งที่ 2.1 แสดงกำรเกบ็ ข้อมูลชนดิ ขอ้ ควำม คำว่ำ “COMPUTER” ภำยในหนว่ ยควำมจำ จะมลี ักษณะดังน้ี 3. ตัวแปร (variables) ตวั แปร คอื ชื่อท่ผี เู้ ขียนโปรแกรมตง้ั ขนึ้ เพ่อื ใช้เป็นข้อมลู หรือใชเ้ กบ็ ขอ้ มูล ดังนั้นเรำตอ้ งกำหนดตวั แปรให้สอดคลอ้ งกับชนดิ ข้อมูลเสมอ เพ่อื ให้ระบบเตรยี มเนอ้ื ท่ใี นหนว่ ยควำมจำให้สอดคลอ้ งกบั ตวั แปรชนิด นัน้ ๆ ซง่ึ เน้อื หำท่กี ลำ่ วถึงเก่ยี วกบั ตัวแปรประกอบดว้ ย หลกั เกณฑ์กำรตั้งชือ่ ตัวแปร กำรประกำศตวั แปร และกำรกำหนดค่ำเริ่มต้นให้กับตวั แปร 1. หลักเกณฑ์การตง้ั ชอื่ ตัวแปร ในภำษำซี มีหลกั เกณฑก์ ำรต้ังช่อื ตัวแปรดงั น้ี 1. ช่ือตวั แปรจะตอ้ งขนึ้ ตน้ ด้วยตวั อักษรเทำ่ น้นั ตวั ถดั มำเปน็ ไดท้ งั้ ตวั อกั ษร ตวั เลข แตต่ ้อง ไม่มีเคร่ืองหมำยคำนวณ บวก (+), ลบ (-), คณู (*), หำร (/), หำรเอำเศษ (%) และเครอื่ งหมำยเว้นวรรค (blank) ค่นั ระหวำ่ งช่ือตัวแปร แตถ่ ำ้ ตอ้ งกำรต้งั ชือ่ ตัวแปรเวน้ วรรคให้ใช้เครือ่ งหมำย _ (underscore) ค่นั แทนกำรเว้นวรรค เช่น sum_1, sum_2 เป็นต้น 2. ควำมยำวของช่อื ตวั แปร ข้นึ อยกู่ บั คอมไพเลอรแ์ ละระบบเคร่อื งคอมพิวเตอร์ ซงึ่ ภำษำซี สำมำรถตงั้ ชอ่ื ตัวแปรไดย้ ำวถึง 32 ตัว แตโ่ ดยปกติเรำไม่นยิ มตัง้ ช่ือตัวแปรยำว ๆ 3. ชอ่ื ตัวแปรตัวอักษรพิมพใ์ หญแ่ ละตวั อักษรพิมพเ์ ลก็ แมจ้ ะเขยี นคำเดยี วกัน หรือตวั อกั ษร พิมพใ์ หญ่ปนตวั อักษรพมิ พ์เลก็ ทีส่ ลบั ตำแหนง่ กนั ระบบถือว่ำเป็นคนละตัวแปรกนั เช่น ตวั แปร MAX, max, Max, mAx, maX จะถือวำ่ ตัวแปรท้งั 5 ตวั นี้เป็นคนละตัวกนั 4. หำ้ มต้ังช่อื ตัวแปรซ้ำกับคำสงวน (reserved word) หรือชือ่ ฟังกช์ ัน หรือชื่อคำสงั่ ในภำษำ นั้น ๆ asm, auto else typedef short while long char float double switch extern unsigned int case return continue struct register union for break enum const signed void default goto volatile sizeof do if static ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 3 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปที ่ี 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี 5. ชอ่ื ตัวแปรควรต้งั ให้สมั พันธ์กับข้อมลู ทตี่ อ้ งกำรเกบ็ เพ่ือปอ้ งกนั ควำมสับสน เนื่องจำก โปรแกรมท่ีมีขนำดใหญ่จะมตี วั แปรจำนวนมำก ถ้ำเรำตัง้ ชอ่ื ตัวแปรโดยไม่มีระบบระเบยี บที่ดีพอจะทำให้ผู้อำ่ น โปรแกรมเกิดควำมสับสนและในกรณที ีโ่ ปรแกรมเกดิ ขอ้ ผิดพลำดขึ้นจะเสียเวลำในกำรแก้ไขโปรแกรมมำกข้ึน เชน่ ตัวแปร name ใชเ้ ก็บช่ือ ตวั แปร age ใช้เก็บอำยุ ตวั แปร salary ใช้เก็บเงินเดือน ตวั แปร vat ใช้เกบ็ ภำษี 2. การประกาศตัวแปร (declaration of variables) ตวั แปรทุกตัวต้องมีกำรประกำศชื่อตวั แปร (variable name) และชนิดของตวั แปร (variable type) เอำไว้ก่อน จึงจะสำมำรถนำตัวแปรที่ประกำศไวม้ ำใช้งำนได้ รูปแบบการประกาศตัวแปร vtype vname ; โดยที่ vtype คอื ชนิของตวั แปรพน้ื ฐำนทนี่ ยิ มใชก้ ันมอี ยู่ 4 ชนดิ คอื char, int, float, และ double ซ่งึ ใน ควำมเปน็ จรงิ แลว้ กำรประกำศชนิดของตวั แปรจะตอ้ งให้ควำมสมั พันธก์ ับค่ำข้อมูลทีต่ ้องกำรเกบ็ ด้วย vname คือ ชอื่ ของตวั แปร ถำ้ มีตัวแปรหลำยตวั ท่ีตอ้ งกำรให้มีชนดิ ตัวแปรเหมอื นกนั สำมำรถใช้ เครอื่ งหมำย, (comma) ค่ันระหว่ำงช่ือตัวแปรได้ ตัวอย่างท่ี 2.2 แสดงการประกาศตัวแปร 1. char d, c[30]; จะได้ตวั แปร d มชี นดิ เปน็ single character และตัวแปรสตริง c มขี นำด 30 bytes 2. int a, b; จะได้ตัวแปร a และ b มชี นิดเป็น int คอื ใชเ้ นอื้ ท่ีในหนว่ ยควำมจำ 2 bytes สำมำรถเก็บตัวเลข จำนวนเต็มท่มี คี ่ำอยู่ในชว่ ง -32768 ถงึ 32767 3. float k, m, n, จะไดต้ ัวแปร k, m และ n มชี นิดเปน็ float คอื ใช้เน้ือที่ในหน่วยควำมจำ 4 bytes สำมำรถเกบ็ จำนวน ทศนิยม และตัวเลขทอ่ี ยู่ในรูป E ยกกำลงั ได้ 4. double w, x, y, z จะได้ตัวแปร w, x, y และ z มชี นดิ เปน็ double คอื ใช้เน้อื ท่ีในหนว่ ยควำมจำ 8 bytes สำมำรถเก็บ จำนวนทศนยิ ม หรือตัวเลขทอี่ ยู่ในรูป E ยกกำลังที่มคี วำมละเอียดสูงกว่ำชนิด float ชุดกจิ กรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 4 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปที ่ี 5

ชดุ ท2่ี โครงสรา้ งของโปรแกรมภาษาซี ตารางที่ 2.1 แสดงชนดิ ของตัวแปร จานวน bytes และพิสัยของคา่ ข้อมลู ในภาษาซี ชนดิ ของตัวแปร จานวน bytes ที่ใช้ พสิ ัยในการเกบ็ ขอ้ มลู (variable types) (range) 1 char 2 -128 to 127 int 2 -32,768 to 32,767 short 4 -32,768 to 32,767 long 1 - unsigned char 2 2,147,483,648 to 2,147,483,647 unsigned int 2 unsigned short 4 0 to 255 unsigned long 2 0 to 65,535 4 0 to 65,535 enum 8 0 to 4,294,967,295 float 0 to 65,535 double 1.2E-38 to 3.4E+38 2.2E-308 to 1.8E+308 กรณที ี่ตอ้ งกำรประกำศตัวแปรและกำหนดค่ำเร่มิ ต้นให้กับตวั แปรดว้ ยสำมำรถทำไดด้ ังนี้ รูปแบบกำรประกำศตวั แปรและกำหนดคำ่ ให้กบั ตัวแปร กรณที ี่มตี วั แปร 1 ตวั vtype vname = value; กรณีที่มีตวั แปรมำกกวำ่ 1 ตวั vtype vname1 = value1, vname2 = value2 ,….., vnameN = valueN; กรณที ี่มีตัวแปรมำกกว่ำ 1 ตัว ใหใ้ ช้เคร่ืองหมำย , (comma) ค่ันระหว่ำงชือ่ ตัวแปรแต่ละตวั ตัวอย่างการประกาศตัวแปรและกาหนดค่าให้กับตัวแปร กำรกำหนดค่ำเรม่ิ ตน้ ใหก้ บั ตัวแปร (initializing variables) ตัวอย่ำงท่ี 2.3 แสดงกำรประกำศตวั แปรและกำหนดค่ำให้ตัวแปร 1. char d=’D’,e=’E’; 2. char c[6]=”Hello”; 3. int a=9, b=25; 4. float k=5.9; 5. double y=3.543006089; ชดุ กิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 5 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีที่ 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี การกาหนดคา่ เรมิ่ ตน้ ให้กับตวั แปร (initializing variables) หลังจำกท่ีเรำได้ประกำศตวั แปรไว้ ถ้ำเรำตอ้ งกำรกำหนดค่ำเริม่ ตน้ ให้กับตวั แปรใดเรำสำมำรถทำได้ ดงั นี้ รปู แบบกำหนดคำ่ เริ่มต้นให้กบั ตวั แปร vname = value; โดยที่ vname คอื ช่ือตวั แปรที่ได้ประกำศแล้ว value คือ คำ่ ขอ้ มูลที่จะนำไปเกบ็ ไว้ในตวั แปร ซง่ึ อำจเป็นคำ่ ตวั เลขหรือขอ้ ควำมก็ได้ ถ้ำเปน็ ขอ้ ควำมจะต้องเขยี นอยู่ในเครื่องหมำย “……” ตัวอย่ำงที่ 2.4 แสดงกำรประกำศคำ่ ตัวแปรและกำหนดค่ำเรม่ิ ตน้ ใหก้ บั ตัวแปร int a, b, c=7; /* เป็นกำรประกำศตัวแปร a, b, และ c, เป็น int และกำหนด ค่ำตวั แปร c มีค่ำ 7 */ a=b=c; /* เป็นกำรกำหนดคำ่ ตวั แปร a และ b ให้มีค่ำเท่ำกับตัวแปร c (คอื มีค่ำ เท่ำกบั 7) */ ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 6 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปีท่ี 5