ชุดฝกึ ทกั ษะการเขียนโปรแกรมภาษาซี วิชา การเขยี นโปรแกรมภาษาซี ช้ันมัธยมศกึ ษาปีที่ 5 ชดุ ที่ 2 เรื่อง ขอ้ มลู และตัวแปร ข้อมลู และตัวแปร กลุม่ สาระการเรยี นรู้การงานอาชีพและเทคโนโลยี โรงเรยี นสิรนิ ธร จังหวดั สรุ นิ ทร์ สานักงานเขตพื้นท่ีการศึกษาสุรินทร์ เขต 1 สานกั งานคณะกรรมการการศกึ ษาข้นั พืน้ ฐาน กระทรวงศึกษาธิการ
2 จุดประสงคก์ ารเรยี นรู้ 1. อธบิ ายหลักเกณฑใ์ นการตงั้ ช่ือตวั แปรได้ 2. ต้งั ช่อื ตัวแปรได้ตรงตามกฎเกณฑข์ องภาษาซี 3. บอกชนิดของตัวแปรในภาษาซไี ด้ 4. อธบิ ายวธิ กี ารประกาศตัวแปรได้ 5. ประกาศตวั แปรใช้ในการแก้ปัญหาโปรแกรมได้
3 ใบความรู้ที่ 2 เร่ือง ขอ้ มลู และตวั แปร ชนดิ ของข้อมูล ชนดิ ขอ้ มลู พนื้ ฐานในภาษาซีเป็นข้อมูลชนิดสเกลาร์ โดยที่ตัวแปรที่มชี นิดสเกลารใ์ นขณะใด ขณะหนึ่งจะเกบ็ ข้อมูลไดเ้ พยี งคา่ เดยี วเท่าน้นั ข้อมลู ชนดิ สเกลารแ์ บ่งออกเปน็ 1. ข้อมลู ชนิดตัวเลข ซึ่งประกอบดว้ ย ข้อมลู ชนิดจานวนเตม็ และข้อมูลชนิดจานวนจรงิ 2. ข้อมลู ชนิดตัวช้ี 3. ขอ้ มลู ชนิดแจงนบั ตารางแสดงชนิดของข้อมลู และขนาดท่ีใชเ้ ก็บ ชนดิ ของขอ้ มูล การใชง้ าน char ใชก้ าหนดตวั แปรหรอื ขอ้ มลู ประเภทตัวอักษร ใช้เนือ้ ท่เี ก็บ 1 ไบต์ int ใช้กาหนดตัวแปรหรอื ข้อมูลเลขจานวนเต็ม ใช้เนอ้ื ท่ี 2 ไบต์ float ใช้กาหนดตัวแปรหรอื ขอ้ มูลเลขทศนิยม ใชเ้ นื้อท่ี 4 ไบต์ double ใชก้ าหนดเพื่อขยายขนาดของตวั แปร ( เชน่ ใชข้ ยาย float ) ซึง่ จะไดเ้ นื้อทเ่ี พ่มิ 2 เทา่ คาสงวน คาสงวน เปน็ คาเฉพาะท่ภี าษาไดส้ ร้างหรอื กาหนดขึ้นมา เพอ่ื ใช้ในตวั ภาษาโดยเฉพาะ ซ่งึ ผู้เขียน โปรแกรมไม่สามารถนาไปกาหนดเปน็ ชอ่ื (Identifiers) ได้ เชน่ ไม่สามารถนาไปกาหนดเป็นช่อื ตัวแปร หรอื ชื่อโปรแกรมได้ ซ่งึ มีดงั นี้ auto break case char const continue default do double else extem float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void while
4 หลักการตง้ั ชือ่ ตัวแปร ช่อื (Identifiers) เป็นการกาหนดชือ่ ตา่ ง ๆ เช่น ชื่อค่าคงที่ ชอื่ ตัวแปร ชื่อโปรแกรม ชอ่ื ฟังกช์ นั ชอ่ื ของประเภทข้อมูล ฯลฯ เพ่ือนาไปใชใ้ นโปรแกรม ซง่ึ เปน็ ช่อื ท่ผี เู้ ขียนโปรแกรมกาหนดขึ้นมา การกาหนดชื่อมีกฎเกณฑ์ดงั น้ี 1. อักขระตัวแรกของชอ่ื จะตอ้ งเปน็ ตวั อักษรหรือเครื่องหมาย _ เทา่ นั้น 2. ชื่อประกอบด้วยตัวอักษรตั้งแต่ A ถึง Z หรือ a – z ตัวเลขต้งั แต่ 0 ถึง 9 ท่ไี ม่มี สัญลักษณ์พิเศษอื่น ๆ อยู่ 3. ตวั พมิ พใ์ หญแ่ ละตัวพิมพ์เลก็ มีความแตกต่างกัน ถอื เปน็ ตัวอักษรคนละตวั กัน เช่น Salary และ SALARY มคี วามหมายต่างกัน จึงต้องตรวจสอบให้ดี 4. ชือ่ จะมีความยาวไม่จากัด แต่คอมไพเลอรจ์ ะจาแนกชื่อท่แี ตกตา่ งกันได้อย่างมาก 31 อกั ขระแรก 5. ชื่อจะต้องไม่ซา้ กบั คาสงวน ตวั อย่างที่ 1 การตง้ั ช่ือตวั แปรในภาษาซี Bath_room ถกู ต้องตามหลักการตั้งช่ือ n-sync ผดิ เนอื่ งจากมเี ครอ่ื งหมาย – อยใู่ นชอ่ื 108dots ผดิ เนื่องจากขน้ึ ตน้ ดว้ ยตวั เลข _good ถูกต้องตามหลักการต้ังชือ่ การประกาศตวั แปร การสร้างตวั แปรข้นึ มาใช้งานจะเรียกวา่ การประกาศตวั แปร โดยเขยี นคาส่ังให้ถกู ตอ้ งตาม รปู แบบการประกาศตัวแปร แสดงได้ดังน้ี type name; type ชนิดของตัวแปร name ช่ือของตวั แปร ซ่งึ ต้องต้ังใหถ้ ูกต้องตามหลักการของภาษาซี
5 ตวั อย่างท่ี 2 การประกาศตวั แปร int num; สร้างตัวแปรช่อื num เพื่อเกบ็ ข้อมลู ชนดิ จานวนเต็ม float y; สร้างตัวแปรช่ือ y เพื่อเกบ็ ข้อมลู ชนดิ ตวั เลขทศนิยม char c; สรา้ งตวั แปรชื่อ c เพ่อื เก็บข้อมลู ชนิดอักขระ เม่ือประกาศตัวแปรแล้ว ตวั แปรจะมีค่าอยา่ งใดอย่างหนง่ึ ไดด้ ว้ ยการใชค้ าส่ังกาหนดคา่ ให้กับ ตัวแปร ซ่ึงมีรูปแบบดังน้ี ตวั แปร = คา่ ขอ้ มูล เช่น age = 15; เครือ่ งหมาย = เป็นตวั ดาเนินการกาหนดค่า และมีผลให้ตวั แปร age มีค่าข้อมูลเท่ากับ 15 ตัวอย่างที่ 4 โปรแกรมพิมพอ์ ายุ # include <stdio.h> # include <conio.h> main() { int age; // กาหนดตวั แปร age เป็นชนิดจานวนเต็ม age = 15; // กาหนดค่าตัวแปร age เทา่ กับ 15 printf(“The child age is %d.\\n”, age); // แสดงข้อความและคา่ ของตัวแปร age getch(); } ผลลัพธค์ อื
6 ตัวแปรสาหรับข้อความ ในภาษาซีไมม่ ีการกาหนดชนดิ ของตัวแปรสาหรับขอ้ ความโดยตรง แตจ่ ะใชก้ ารกาหนดชนดิ ของตัวแปรอักขระ (char) รว่ มกับการกาหนดขนาดแทน และจะเรยี กตวั แปรสาหรับเก็บข้อความวา่ ตวั แปรสตรงิ (string) มรี ปู แบบดังนี้ char name[n] = \"str\"; name ช่อื ของตวั แปร n ขนาดของข้อความ หรือจานวนอักขระในข้อความน้ัน str ขอ้ ความเรม่ิ ตน้ ท่ีจะกาหนดให้กบั ตวั แปร ซ่งึ ต้องเขยี นไวภ้ ายในเครื่องหมาย \" \" ตัวอยา่ งท่ี 5 การประกาศตัวแปรสาหรบั เกบ็ ข้อความ char name[6] = \"Harry\"; สรา้ งตัวแปร name เกบ็ ขอ้ ความ Harry ซงึ่ มี 5 ตัวอักษร char year[5] = \"2549\"; สรา้ งตัวแปร year เก็บข้อความ 2549 ซ่ึงมี 4 ตวั อักษร char Product_id[4] = สร้างตัวแปร Product_id เกบ็ ข้อความ A01 ซงึ่ มี 3 ตวั อกั ษร \"A01\"; ค่าคงท่ี ค่าคงท่ี ( constant ) หมายถงึ ข้อมูลทรี่ ะบุเปน็ ค่าอย่างใดอย่างหนึง่ ในโปรแกรม และมีชนิด ของขอ้ มลู ตามค่าของข้อมลู น้ัน ๆ 8236 เป็นค่าคงท่ชี นดิ จานวนเตม็ 5.85 และ 100.00 เปน็ คา่ คงทช่ี นดิ จานวนจรงิ \" A \" และ \" o.k. \" เปน็ ค่าคงที่ชนดิ อักขระและสายอักขระตามลาดบั นอกจากการใชค้ ่าคงท่แี ล้ว นักเขยี นโปรแกรมยังสามารถกาหนดช่อื เพื่อใช้แทนค่าคงท่ีใน โปรแกรม โดยการใช้คาส่งั ของตวั ประมวลผล #define
7 ตัวอยา่ งท่ี 6 โปรแกรมแปลงอณุ หภูมิ #define FACTOR 5/9 // กาหนดคา่ คงท่ี FACTOR มคี า่ เปน็ 5/9 #define FBASE 32 // กาหนดค่าคงท่ี FBASE มีคา่ เปน็ 32 #include <stdio.h> #include <conio.h> main () { float degF, degC; degF = 78.5; degC = (degF – FBASE) * FACTOR; printf(“%f in Fahrenheit ”, degF); printf(“is %f in Celsius.\\n”, degC); degF = 100.0; degC = (degF – FBASE) * FACTOR; printf(“%f in Fahrenheit ”, degF); printf(“is %f in Celsius.\\n”, degC); getch (); } ผลลพั ธ์คอื (สถาบนั ส่งเสริมวิทยาศาสตร์และเทคโนโลยี. 2548 : 11-21)
8 แบบฝึกท่ี 2.1 เรอื่ ง การต้งั ชอ่ื ตัวแปร จดุ ประสงค์การเรยี นรู้ 1. อธบิ ายหลักเกณฑใ์ นการตั้งช่อื ตวั แปรได้ 2. ตัง้ ชื่อตวั แปรได้ตรงตามกฎเกณฑ์ของภาษาซี คาช้แี จง จงพิจารณาชอื่ ตอ่ ไปน้ี แล้วทาเครือ่ งหมาย หน้าช่ือทถี่ ูกตอ้ งตามกฎเกณฑ์ทีใ่ ช้ ในการตงั้ ชอ่ื ของภาษาซี หรอื เคร่อื งหมาย หนา้ ชอื่ ทไี่ มถ่ กู ต้อง พร้อมอธิบายเหตผุ ล ประกอบ 1. 2times …………………………………………. 2. integer 1 …………………………………………. 3. a+b …………………………………………. 4. no#6 …………………………………………. 5. short …………………………………………. 6. BIGGER …………………………………………. 7. _apple …………………………………………. 8. 1_i_o_n …………………………………………. 9. time …………………………………………. 10. tick-tack-toe ………………………………………….
9 แบบฝกึ ที่ 2.2 เรื่อง การประกาศตวั แปร จุดประสงคก์ ารเรยี นรู้ บอกชนดิ ของตวั แปรในภาษาซีได้ คาชแ้ี จง จงพิจารณาการประกาศตวั แปรพรอ้ มกาหนดคา่ ตอ่ ไปน้ี แลว้ ทาเครอ่ื งหมาย หน้าข้อท่ี ถกู ต้องตามชนดิ ของตวั แปร หรอื เคร่ืองหมาย หน้าข้อท่ีไม่ถกู ต้อง พร้อมอธบิ ายเหตผุ ล ประกอบ 1. int a; …………………………………………. 2. int b …………………………………………. 3. int Com budget = 3000; …………………………………………. 4. int main = 10; …………………………………………. 5. int Gibson = 25,000; …………………………………………. 6. char j = \"Hello\"; …………………………………………. 7. char j = 'A'; …………………………………………. 8. float z = 1,000.999; …………………………………………. 9. float x = 45.067; …………………………………………. 10. int _count = 451; ………………………………………….
10 แบบฝึกท่ี 2.3 เร่ือง ประกาศตวั แปรกันเถอะ จุดประสงคก์ ารเรียนรู้ อธิบายวธิ ีการประกาศตวั แปรได้ คาช้แี จง จงเขียนคาสั่งประกาศตัวแปร และกาหนดค่าเริ่มตน้ ที่ถูกตอ้ งให้กบั ตวั แปร 1. ตวั แปรทศนิยม a = -8.2 และ b = 0.005 …………………………………………………………………………………………………….. 2. ตัวแปรจานวนเต็ม x = 129, y = 87 และ z = -22 …………………………………………………………………………………………………….. 3. ตัวแปรอกั ขระ c1 = w และ c2 = & …………………………………………………………………………………………………….. 4. ตัวแปรจานวนเตม็ big = 123456789 …………………………………………………………………………………………………….. 5. ตวั แปร x เปน็ ตวั แปรประเภท char ใหเ้ ก็บค่า A …………………………………………………………………………………………………….. 6. ตัวแปร count เปน็ ตวั แปรประเภท int ใหเ้ ก็บค่า 4000 …………………………………………………………………………………………………….. 7. ตวั แปร amount เปน็ ตัวแปรประเภท double ให้เกบ็ คา่ 6379.123456 …………………………………………………………………………………………………….. 8. ตัวแปรแบบทศนยิ ม c = 0.3333 …………………………………………………………………………………………………….. 9. ตัวแปร income เป็นตวั แปรประเภท float ให้เก็บค่า 34.6 …………………………………………………………………………………………………….. 10. ตัวแปร y เปน็ ตัวแปรประเภท char ให้เก็บคา่ sirindhorn ……………………………………………………………………………………………………..
11 แบบฝึกที่ 2.4 เรอ่ื ง ขอ้ มลู และตวั แปร จุดประสงคก์ ารเรยี นรู้ ประกาศตวั แปรใช้ในการแก้ปญั หาโปรแกรมได้ คาช้ีแจง ฝ่ายดาเนินการของรา้ นทาขนม กาลงั คานวณจานวนกลอ่ งท่ีต้องจัดซ้ือมาใชใ้ นสัปดาหห์ น้า ใหเ้ ขยี นโปรแกรมคานวณจานวนกลอ่ งที่ต้องจัดซื้อ โดยมเี งอื่ นไขดังนี้ 1. การจัดซือ้ กล่องครง้ั หน่งึ ๆ ตอ้ งให้พอใช้ได้ 7 วัน 2. รา้ นจะผลติ ขนมไดว้ ันละ 22.5 กโิ ลกรมั 3. ขนม 1 กล่องบรรจุ 225 กรมั ............................................................................................................................. ...................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ............................................................................................................................. ......................................... ........................................................................................ .............................................................................. ............................................................................................................................. ......................................... ......................................................................................................................................... ............................. ...................................................................................................... ................................................................ ............................................................................................................................. .................
12 แบบทดสอบหลังเรียน ชุดท่ี 2 เรื่อง ข้อมูลและตวั แปร คาชีแ้ จง จงเลอื กคาตอบท่ถี กู ตอ้ งทีส่ ุด แล้วกาเครื่องหมาย ลงในกระดาษคาตอบ 1. หลกั เกณฑก์ ารตั้งชื่อต่อไปนี้ ข้อใดถูกต้อง ก. ข้นึ ตน้ ด้วยตวั อกั ษรหรือตัวเลข ข. ข้นึ ต้นด้วยตวั เลขหรือเครื่องหมาย_ ค. ตัวอักษรตวั เล็กและตวั ใหญ่มคี วามหมายเหมอื นกนั ง. ตวั อกั ษรตัวเล็กและตวั ใหญ่มีความหมายแตกตา่ งกัน 2. ชื่อในขอ้ ใดไมถ่ ูกต้อง ก. float ข. _score ค. Hello1 ง. Hello_world 3. การกาหนดคา่ ให้กับตวั แปรในขอ้ ใดไม่ถูกตอ้ ง เม่ือกาหนดตวั แปรดังนี้ int a; float b; char c; char s[20]; ก. a = 9; ข. c = A; ค. b = 100.20; ง. s = \"computer\"; 4. ขอ้ ใดเปน็ การประกาศตัวแปรทไ่ี ม่เหมาะสม เม่ือกาหนดให้ a = 10.7 b = 200 และ c = 400 ก. int c; ข. int b; ค. float a; ง. float c; 5. การกาหนดช่ือให้ตัวแปร ขอ้ ใดถูกต้อง ก. record-1 ข. 123-456 ค. record_1 ง. name and address 6. คาสง่ั ประกาศตัวแปรในข้อใดถกู ต้อง ก. int x, y = 18.0, z; ข. float x, y = 18.0, z; ค. char number = '15'; ง. char b = 45, c = \"DEF\"; 7. “นักเรยี นชั้นมธั ยมศึกษาปีที่ 5 มจี านวน 100 คน” ควรประกาศตัวแปรอย่างไร ก. int student; ข. float student; ค. int student = 100; ง. float student = 100; 8. “เกรดของนักศึกษา (A-F) ควรจะประกาศตวั แปรอย่างไร ก. int grade; ข. char grade; ค. float grade; ง. char grade = \"A-F\";
13 9. ชือ่ ในตวั แปรข้อใดถกู ต้อง ก. G ข. Sue’s; ค. printf; ง. \"char\" 10. “ตัวแปรขอ้ ความ name = sirindhorn” ควรจะประกาศตวั แปรอยา่ งไร ก. char name = sirindhorn; ข. char name = \"sirindhorn\"; ค. char name[20] = 'sirindhorn'; ง. char name[20] = \"sirindhorn\";
Search
Read the Text Version
- 1 - 13
Pages: