แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ก
คำนำ แบบฝึกทักษะการเขียนโปรแกรมภาษาซี ของกลุ่ม สาระการเรียนรู้การงาน อาชีพและเทคโนโลยี จัดทาขึ้นเพื่อประกอบการจัดกิจกรรมการเรียนการสอนของ รายวิช าการเขียนโปรแกรมภาษาซี ชั้นมัธยมศึกษาปีที่ 6 โรงเรียนพานพร้าว สังกัด สานักงานเขตพื้นที่การศึกษามัธยมศึกษาเขต 21 โดยมุ่งเน้นให้นักเรียนมีความรู้ ความ เข้าใจ และสามารถปฏิบัติการเขียนโปรแกรมภาษาซี จนเกิดทักษะความชานาญและ สามารถประยุกตในการเรียนต่อในระดับที่สูงขึ้น อีกทั้งยังมุ่งเน้นเพื่อการพัฒนาสมรรถนะ สาคัญของผู้เรียนด้านความสามารถในการใช้เทคโนโลยี แบบฝึกทักษะการเขียนโปรแกรมภาษาซีของกลุ่ม สาระการเรียนรู้การงานอาชีพ และเทคโนโลยี รายวิช าการเขียนโปรแกรมภาษาซี แบ่งเนื้อหาสาระและแบบฝึกหัดเป็น จานวน 6 เล่ม ได้แก่ เล่มที่ 1 แนะนาภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล เล่มที่ 3 ฟังกชันการรับและการแสดงผลข้อมูล เล่มที่ 4 นิพจนและตัวดาเนินการ เล่มที่ 5 คาสั่งควบคุมเงื่อนไข เล่มที่ 6 คาสั่งควบคุมแบบทาซ้า หวังเป็นอย่างยิ่งว่าแบบฝึกทักษะการเขียนโปรแกรมภาษาซี ชุดนี้ จะช่วยส่งเสริม และพัฒนาทักษะการเขียนโปรแกรมภาษาซี ของนักเรียนให้ดียิ่งขึน้ ส่งผลให้นักเรียนมี ผลสัมฤทธิ์ทางการเรียนสูงขึ้น ตลอดจนเสริมสร้างสมรรถนะสาคัญด้านความสามารถใน การใช้เทคโนโลยีของนักเรียนและผู้ที่สนใจ ให้บรรลุตามวัตถุประสงคของหลักสูตร ต่อไป นายสมศักดิ์ พูลเพิ่ม
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ข
สำรบัญ หน้า คานา
ก
สารบัญ
ข
คาแนะนาสาหรับครู
1
คาแนะนาสาหรับนักเรียน
2
สาระการเรียนรู้
3
ผลการเรียนรูท้ ่คี าดหวัง
3
แบบทดสอบก่อนเรียน
4
เนือ้ หา - ตัวแปร - ค่าคงที่ - ชนิดของข้อมูล - การประกาศตัวแปร แบบฝึกหัดที่ 4.1 แบบฝึกหัดที่ 4.2 แบบทดสอบหลังเรียน ภาคผนวก - เฉลยแบบฝึกหัดที่ 4.1 - เฉลยแบบฝึกหัดที่ 4.2 - เฉลยแบบทดสอบก่อนและหลังเรียน - บรรณานุกรม
7 9 9 11 15 16 17 20 21 22 24 25
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
1
คำแนะนำสำหรับครู แบบฝึกทักษะการเขียนโปรแกรมภาษาซี ของกลุ่ม สาระการเรียนรู้การงานอาชีพ และเทคโนโลยี เป็นสื่อประกอบการเรียนการสอนสาหรับแผนการจัดการเรียนรู้ หน่วยที่ 2 รายวิช าการเขียนโปรแกรมภาษาซี ชั้นมัธยมศึกษาปีที่ 6 ซึ่งในการดาเนินกิจกรรมการเรียน การสอน ครูผู้สอนควรปฏิบัติ ดังนี้ 1. ขั้นเตรียมกำรสอน ครูผู้สอนต้องศึกษารายละเอียด ดังนี้ 1.1 ศึกษาโครงสร้าง ผลการเรียนรูท้ ่คี าดหวังของแผนการจัดการเรียนรูใ้ ห้ เข้าใจอย่างละเอียด 1.2 ตรวจสอบแบบฝึกทั กษะการเขียนโปรแกรมภาษาซี ชั้นมัธยมศึกษาปีที่ 6 สื่อการสอน และคอมพิวเตอรให้อยู่ในสภาพที่ใช้งานได้ดี 1.3 ครูผู้สอนควรเตรียมความรู้ในเนื้อหาอย่างลึกซึ้ง และควรมีพนื้ ฐานในการ เขียนโปรแกรมภาษาซี 2. ขั้นดำเนินกิจกรรมกำรเรียนกำรสอน 2.1 ครูผู้สอนสามารถยืดหยุ่นเวลาในการจัดกิจกรรมการเรียนการสอนได้ ตามความเหมาะสม 2.2 ครูแจกแบบฝึกทัก ษะการเขียนโปรแกรมภาษาซีให้นักเรียนได้ศึกษา 2.3 ครูอธิบายและสาธิตขั้นตอนการฝึกปฏิบัติ 2.4 ครูให้นักเรียนเปิดเครื่องและฝึกปฏิบัตกิ ิจกรรมฝึกทักษะที่กาหนดไว้ใน กิจกรรม 2.5 ครูผู้สอนสามารถเพิ่มเติมเนื้อหาบางตอนได้ตามความเหมาะสม 3. ขั้นกำรประเมินผล 3.1 ครูผู้สอนควรแจ้งให้นักเรียนทราบถึงขอบเขตเนื้อหาที่จะประเมิน 3.2 ครูผู้สอนควรประเมินผลทุกครั้งหลังสิน้ สุดกิจกรรมการเรียนการสอน และแจ้งให้นักเรียนทราบถึงผลการประเมิน
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
คำแนะนำสำหรับนักเรียน 1. อ่านคาแนะนาสาหรับนักเรียนให้เข้าใจก่อนลงมือศึกษาแบบฝึกทักษะ การเขียนโปรแกรมภาษาซี 2. ทาแบบทดสอบก่อนเรียน เพื่อประเมินความรู้เดิมของนักเรียน 3. ฟังคาอธิบายและการสาธิตของครู พร้อมทั้งฝึกปฏิบัติหลังจากการสาธิต 4. ศึกษากรอบความรู้ และฝึกปฏิบัติตามขัน้ ตอนที่ระบุไว้ในกรอบกิจกรรม 5. ทดสอบการฝึกปฏิบัติกับครูผู้สอน 6. ทาแบบทดสอบหลังเรียนเพื่อดูความก้าวหน้าในการเรียนของนักเรียนหลังจากทา กิจกรรมการเรียนการสอนโดยใช้แบบฝึกทัก ษะการเขียนโปรแกรมภาษาซี 7. หลังจากทากิจกรรมการเรียนการสอนเสร็จเรียบร้อยแล้ว ให้นักเรียนปิดเครื่อง คอมพิวเตอรอย่างถูกวิธี เก็บเก้าอี้ ให้เรียบร้อย 8. ในการทากิจกรรมตามแบบฝึกทักษะการเขียนโปรแกรมภาษาซีทุกเล่มขอให้ นักเรียนปฏิบัตดิ ว้ ยความตัง้ ใจมีความซื่อสัตยต่อตนเองให้มากที่สุดและไม่ดูเฉลย ก่อนทาแบบทดสอบ 9. หากนักเรียนยังไม่สามารถปฏิบัตไิ ด้ตามกิจกรรมของแต่ละแบบฝึก นักเรียน สามารถรับแบบฝึกทักษะการเขียนโปรแกรมภาษาซีไปศึกษาและฝึกปฏิบัติ เพิ่มเติมนอกเวลาเรียน หรือที่บา้ นเพื่อเพิ่มพูนความรู้และความชานาญให้มาก ยิ่งขึน้
2
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
3
สำระกำรเรียนรู้ 1. 2. 3. 4. 5.
ตัวแปร กฎการตั้งชื่อตัวแปร ค่าคงที่ ชนิดของข้อมูล การประกาศตัวแปร
จุดประสงค์กำรเรียนรู้ 1. ด้ำนควำมรู้ (K) 1. นักเรียนมีความรู้ความเข้าใจในการตั้งชื่อตัวแปรภาษาซี 2. นักเรียนสามารถเลือกใช้งานชนิดของข้อมูลได้เหมาะสม 3. นักเรียนสามารถประกาศตัวแปรค่าคงที่ได้ 2. ด้ำนทักษะกระบวนกำร (P) นักเรียนสามารถใช้งานโปรแกรม Dev C เพื่อพัฒนาโปรแกรมภาษาซีขั้นเบื้องต้นได้ 3. ด้ำนคุณธรรม จริยธรรม และค่ำนิยมอันพึงประสงค์ (A) เป็นบุคคลแห่งการเรียนรู้ ปฏิบัติงานกลุ่มด้วยความร่วมมือร่วมใจ
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
แบบทดสอบก่อนเรียน เรื่อง การประกาศตัวแปรและชนิดของข้อมูล คำสั่ง ให้นักเรียนทาเครื่องหมาย ลงในกระดาษคาตอบ ช่องอักษร ก. ข. ค. หรือ ง. ในข้อที่เห็นว่าถูกต้องที่สุดเพียงข้อเดียว 1. ข้อใดไม่อยู่ในกฎของการตั้งชื่อตัวแปรในภาษาซี ก. ขึน้ ต้นด้วยตัวเลข ข. ขึ้นต้นด้วยอักษรตัวพิมพใหญ่ ค. ขึน้ ต้นด้วยอักษรตัวพิมพเล็ก ง. ใช้เครื่องหมาย “_” เป็นตัวเชื่อมคา 2. ข้อใดต่อไปนี้ตั้งชื่อตัวแปรผิด ก. AAa ข. 4_you ค. name_student ง. Auto 3. ข้อใดต่อไปนี้สามารถกาหนดเป็นค่าคงที่ได้ ก. อัตราภาษีมูลค่าเพิ่ม ข. ค่าล่วงเวลา ค. คะแนนเก็บ ง. เงินเดือนพนักงาน
4
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
4. ข้อใดเป็นการประกาศค่าคงที่ได้ถูกต้องที่สุด ก. const tax = “0.07” ข. const int ans= “3” ค. #define tax = 0.07 ; ง. #define tax 0.07 5. การประกาศชนิดข้อมูลแบบ char จะต้องอยู่ภายในเครื่องหมายใด ก. { } ข. “ ” ค. ‘ ’ ง. /* */ 6. ถ้าต้องการเก็บตัวเลขจานวนเต็มที่มีค่าไม่มากควรกาหนดเป็นข้อมูลชนิดใด ก. char ข. int ค. float ง. double 7. ข้อมูลชนิดใดที่มีขนาดเล็กที่สุด ก. char ข. int ค. float ง. double
5
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
8. ข้อมูลชนิดใดที่มีขนาดใหญ่ท่สี ุด ก. char ข. unsigned char ค. int ง. long int 9. โอเวอรโฟลว (Overflow) หมายถึงข้อใด ก. โปรแกรมแฮงก ข. โปรแกรมเกิดข้อผิดพลาด ค. ค่าเกินกว่าช่วงข้อมูลที่รับได้ ง. ผลการคานวณภาษีผิด 10. ข้อใดเป็นการแก้ปัญหา โอเวอรโฟลว ได้ ก. เพิ่มหน่วยความจาหลัก ข. เลือกชนิดข้อมูลที่มีขนาดใหญ่ขึ้น ค. เลือกคอมพิวเตอรที่มีความเร็วสูงขึ้น ง. เปลี่ยนคอมพิวเตอรเป็นรุน่ ใหม่
6
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
7
ตัวแปร (Variable) ตัวแปร (Variable) คือ การจองพืน้ ที่ในหน่วยความจาของคอมพิวเตอรสาหรับเก็บ ข้อมูลที่ต้องใช้ในการทางานของโปรแกรม โดยมีการตัง้ ชื่อเรียกหน่วยความจาในตาแหน่ง นัน้ ด้วย เพื่อความสะดวกในการเรียกใช้ขอ้ มูล ถ้าจะใช้ขอ้ มูลใดก็ให้เรียกผ่านชื่อของตัวแปร ที่เก็บเอาไว้ กฎกำรตั้งชื่อตัวแปรในภำษำซี ประกอบด้วย 1. สามารถใช้ตัวอักษร A ถึง Z หรือ a ถึง z รวมทั้งตัวเลข 0 – 9 และเครื่องหมาย _(underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ 2. ชื่อตัวแปรมีความยาวได้ถงึ 31 ตัวอักษร 3. ชื่อตัวแปรจะต้องไม่ตรงกับคาสงวน (Reserved Words) ซึ่งเป็นชุดคาสั่งในภาษาซี หากต้องการใช้ช่อื ตัวแปรให้ตรงกับคาสงวน ก็ทาได้ เช่น auto เป็นคาสงวนเปลี่ยนเป็น Auto ก็สามารถใช้ได้ภาษาซีถือว่าเป็นคนละคากัน ตัวอย่ำงคำสงวน
auto default float register struct switch while case double goto
volatile do for return short
else if signed break union const enum int unsigned continue extern
long static void
typedef char sizeof
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวอย่ำงกำรตั้งชื่อตัวแปรที่ผิด 1. ชื่อตัวแปรไม่สามารถนาตัวเลขนาหน้าได้ เช่น
12chai
1num
888
99dddd
2. ไม่สามารถนาเครื่องหมายคณิตศาสตรมาประกอบการตัง้ ชื่อได้ เช่น
+num
*str
num1-num2 num+
3. ไม่สามารถนาเครื่องหมายวรรคตอนมาใช้ได้ เช่น
.num
student.1
num,num
“pi”
4. ไม่เป็นคาสงวน เช่น
do
char
goto
register
student 1
name se
5. ไม่เว้นวรรค เช่น
num a
ตัวอย่ำงกำรตั้งชื่อตัวแปรที่ถูกต้อง 1. ใช้ตัวเลขตามหลังตัวอักษรได้ เช่น
num01
student2
se7en
2. สามารถใช่เครื่องหมาย _ (under score) เชื่อมคาเพื่อสื่อความหมายตัวแปรได้ เช่น
num_01
student_code money_over_time
3. สามารถใช้ตัวอักษรพิมพใหญ่หรือตัวอักษรพิมพเล็กร่วมกันได้ เช่น
Aoto StuDent
StudentCode MondaY
8
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
9
ค่ำคงที่ (Constant) ค่ำคงที่ จะเป็นตัวแปรเมื่อถูกกาหนดขึ้นมาแล้วค่าดังกล่าวจะเป็นค่านั้น ๆ ตลอดไปไม่ สามารถเปลี่ยนแปลงได้ การกาหนดค่าคงที่ในภาษาซีจะใช้ไดเรกทีฟ #define ซึ่งประกาศไว้ส่วนหัวของ โปรแกรมตัวอย่างเช่น #define PI 3.14 #define TXT “Warning…!” การประกาศค่าคงที่ด้วย #define นั้นจะไม่มเี ครื่องหมาย ; ปิด และไม่มีเครื่องหมาย = เพื่อ กาหนดค่า และจะกาหนดชื่อตัวแปรโดยใช้ตัวอักษรพิมพใหญ่ นอกจากนีย้ ังสามารถประกาศด้วยคาสั่ง const ที่ประกาศใช้งานในส่วนของโปรแกรมโดยที่ไม่ ต้องประกาศไว้ส่วนหัวของโปรแกรมเหมือนกับ #define สามารถระบุชนิดของข้อมูลให้กับตัวแปรที่เป็น ค่าคงที่นั้นได้ เช่น Const float TAX_RATE = 0.07; ในการใช้ const ประกาศตัวแปรจะต้องมีเครื่องหมาย ; เมื่อจบคาสั่งด้วยเสมอ
ชนิดของข้อมูล ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน ซึ่งชนิดของข้อมูลแต่ละ อย่างมีขนาดเนือ้ ที่ที่ใช้ในหน่วยความจาที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันไป ดังนัน้ ในการเลือกใช้งานประเภทข้อมูลก็ควรจะคานึงถึงความจาเป็นในการใช้งานด้วย สาหรับประเภทของ ข้อมูลมีดังนีค้ ือ
ชนิดของข้อมูล ภาษาซีจะมีชนิดข้อมูลหลัก ๆ คือ ชนิดข้อมูล char int float double
ควำมหมำย ข้อมูลชนิดตัวอักษร (chareactor) ข้อมูลชนิดตัวเลขจานวนเต็ม (integer) ข้อมูลชนิดเลขจานวนจริง (floating point) ข้อมูลชนิดเลขจานวนจริง 2 เท่า (double precision float )
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
10
และสามารถปรับปรุงด้วยการเพิ่มคาสั่งนาหน้าได้อกี ด้วย 1) signed จะกาหนดตัวแปรชนิดข้อมูลนั้น ให้สามารถมีค่าทัง้ บวกและค่า ลบ อย่างไรก็ตาม คาว่า signed อาจไม่ต้องระบุหน้าชนิดข้อมูลก็ได้ เพราะภาษาซีจะถือว่า เป็นชนิดข้อมูลที่มีเครื่องหมายอยู่แล้ว 2) unsigned จะกาหนดให้ชนิดของข้อมูลนัน้ มีเฉพาะค่าบวกเท่านั้น ซึ่งส่งผล ให้คา่ ตัวเลขกว้างขึน้ 3) long จะกาหนดให้ชนิดข้อมูลที่ระบุเป็นแบบขนาดยาว เพื่อรองรับช่วง ข้อมูลกว้างขึน้ short จะกาหนดให้ชนิดข้อมูลทีร่ ะบุเป็นแบบชนิดสั้น ชนิด
ขนำด (ไบต์)
ช่วงของค่ำ
กำรใช้งำน
char
1
เก็บข้อมูลชนิดอักขระ
Unsigned char
1
ASCII character (-128 ถึง 127) 0-255
int Unsigned int
2 2
-32768 ถึง 32767 0 ถึง 65535
long
2
Float
4
Double
8
Unsigned long
4
เก็บข้อมูลอักขระแบบไม่คิด เครื่องหมาย เก็บข้อมูลชนิดจานวนเต็ม เก็บข้อมูลชนิดจานวนเต็ม ไม่คิด เครื่องหมาย เก็บข้อมูลชนิดจานวนเต็มแบบยาว
-2147483648 ถึง 2147483649 3.4E-38 ถึง 3.4E+38 เก็บข้อมูลชนิดเลขทศนิยม หรือ ทศนิยม 6 ตาแหน่ง 1.7E-308 ถึง 1.7E+308 เก็บข้อมูลชนิดเลขทศนิยม หรือ ทศนิยม 12 ตาแหน่ง 0 ถึง 4294967296 เก็บข้อมูลชนิดจานวนเต็มแบบยาว ไม่คิดเครื่องหมาย
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
กำรประกำศตัวแปร 1. ข้อมูลชนิดตัวอักษร รูปแบบ
char ชื่อตัวแปร;
เช่น char ch1; char ch2; char ch1, ch2, ch3; เกณฑการกาหนดค่าชนิดตัวอักขระ ค่าที่กาหนดต้องเป็นอักขระเพียงค่าเดียวและต้องอยู่ในเครื่องหมาย ‘ ’ (single quote) ขนาดตัวอักษรสูงสุดคือ 1 ตัวอักษรเท่านั้น ตัวอย่ำง การกาหนดค่าตัวอักขระ ch1 = ‘A’; ch2 = ‘b’; ch3 = ‘1’; 2. ข้อมูลชนิดข้อความ (string) รูปแบบ
char ชื่อตัวแปร[n];
เช่น char ch[10]; หมายถึงการประกาศตัวแปรแบบข้อความขนาด 10 ตัวอักษร ค่าที่กาหนดต้องอยู่ในเครื่องหมาย “ ” (double quote) ตัวอย่ำง
char txt1[6] = “Error”;
“Error” มี 5 ตัวอักษรแต่ตอ้ งประกาศ 6 ให้กับตัวจุดสิ้นสุดข้อความ(\0) หรือไม่ต้องบอกขนาดก็ได้ ตัวอย่ำง
char month[]= “January”;
11
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
3. ข้อมูลชนิดตัวเลขจานวนเต็ม รูปแบบ
int ชื่อตัวแปร;
ตัวอย่ำง
int num; int n,n1,n2,n3; int num1=1; int num2= 1251252; int num3= -32796;
4. ข้อมูลชนิดตัวเลขจานวนจริง รูปแบบ
float ชื่อตัวแปร; double ชื่อตัวแปร;
ตัวอย่ำง
float num; float area,height; double num; double pi= 3.142857142857; float x=3.4E+38;
12
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวแปรแบบภำยในและตัวแปรแบบภำยนอก ตัวแปรแบบภำยใน (Local Variable) ตัวแปรชนิดนี้จะประกาศอยู่ในฟังกชั่น ถึงแม้วา่ แต่ละฟังกชั่นจะประกาศตัว แปรคนละตัวเดียวกันก็ตาม ถือว่าเป็นตัวแปรคนละตัวกัน #include <stdio.h> void main() { int num=0; // ตัวแปรภายใน ชุดคาสั่ง 1; ชุดคาสั่ง 2; } func1() { int num=555; // ตัวแปรภายใน ชุดคาสั่ง 1; }
13
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวแปรแบบภำยนอก (Global Variable) ตัวแปรชนิดนี้จะประกาศไว้ภายนอกฟังกชั่น และจะเป็นตัวแปรสาธารณะที่ ทุกฟังกชั่นสามารถเรียกใช้งานได้ #include <stdio.h> float TAX=0.7; // ตัวแปรภายนอก float ans; void main() { ชุดคาสั่ง 1; ชุดคาสั่ง 2; ans = ans * TAX; //เรียกใช้ตัวแปรภายนอก }
โอเวอร์โฟลว์ (Overflow) เกิดขึ้นเนื่องจากการประกาศตัวแปรที่มชี ่วงข้อมูลขนาดเล็ก เกินไป เช่น ช่วงข้อมูลแบบตัวเลขจานวนเต็ม int นั้น มีช่วง ของข้อมูลตัวเลขตั้งแต่ -32768 ถึง 32768 ค่าของข้อมูล จะต้องไม่นอ้ ยหรือมากกว่านีม้ ิฉะนั้นจะได้ค่าที่ผดิ เพีย้ นไป แก้ไขโดยการเปลี่ยนไปใช้ชนิดข้อมูลที่มีขนาดใหญ่ข้ึน
14
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
15
คำสั่งรับข้อมูลทำงแป้นพิมพ์ scanf(); เป็นฟังกชั่นที่ใช้สาหรับรับค่าข้อมูลจากทางแป้นพิมพโดยข้อมูลที่เข้ามา สามารถ เป็นตัวแปรชนิดตัวเลข ตัวอักขระหนึ่งตัว หรือข้อความสตริงก็ได้ รูปแบบ scanf(“formatControlString”,&variable); formatControlString หมายถึง ส่วนควบคุมรูปแบบข้อมูล ที่ต้องสัมพันธกับชนิดของ ตัวแปรโดยจะกาหนดอยู่ในเครื่องหมาย “ ” variable หมายถึง ตัวแปรที่รับค่าและถ้าต้องการรับค่าตัวแปรหลายตัว สามารถใช้เครื่องหมาย , คั่นในการรับค่าข้อมูลทางแป้นพิมพด้วยฟังกชั่น scanf () จะต้อง พิจารณาสิ่งต่อไปนี้ 1. ข้อมูลที่รับเป็นตัวเลข ซึ่งนาไปใช้ในการคานวณได้ จะต้องใส่เครื่องหมาย & (ampersand) นาหน้าตัวแปรเสมอ 2. ข้อมูลที่รับเป็นข้อความ อาจจะไม่ต้องใส่เครื่องหมาย & นาหน้าตัวแปรก็ได้ การรับค่าข้อมูลทางแป้นพิมพด้วยฟังกชั่น scanf( ) จะต้องจับคูก่ ับรูปแบบข้อมูลและ ชนิดของข้อมูลให้ตรงกัน เช่นเดียวกันกับฟังกชั่น printf( )
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวอย่างโปรแกรมที่ 2.1 การใช้คาสั่ง scanf(); รับค่าตัวเลข บรรทัดที่ 1 2 3 4 5 6 7 8 9 10
คำสั่ง #include <stdio.h> #include <conio.h> main() { int age; printf(“Enter your age”); scanf(“%d”,&age); printf(“Your age is %d”,age); getch(); }
บรรทัดที่ 5 ประกาศตัวแปรชื่อ age เป็นชนิดจานวนเต็ม บรรทัดที่ 6 ข้อความรอรับค่า บรรทัดที่ 7 รับค่าที่กรอกมาเก็บไว้ในตัวแปร age บรรทัดที่ 8 แสดงข้อความ พร้อม ตัวเลขที่ป้อน ผลการรันโปรแกรม
16
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวอย่างโปรแกรมที่ 2.2 การใช้คาสั่ง scanf(); รับค่าข้อความ บรรทัดที่ 1 2 3 4 5 6 7 8 9 10
คำสั่ง #include <stdio.h> #include <conio.h> main() { char name[15],surname[25]; printf(“Enter your name and sername:”); scanf(“%s %s”,name,surname); printf(“Hello! %s %s”,name,surname); getch(); }
บรรทัดที่ 5 ประกาศตัวแปรชื่อ name,surname เป็นชนิดข้อความขนาด 15 และ 25 ตัวอักษร บรรทัดที่ 6 ข้อความรอรับค่า บรรทัดที่ 7 รับค่า 2 ข้อความ โดยแต่ละข้อความเว้นช่องว่างระหว่างข้อความ บรรทัดที่ 8 แสดงข้อความ ที่ป้อน ข้อสังเกต การรับข้อความไม่จาเป็นต้องมีเครื่องหมาย & หน้าตัวแปร ผลการรันโปรแกรม
17
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
การรับค่าข้อความ (string) โดยใช้ scanf(); ไม่สมบูรณเพราะข้อมูลที่ใส่มีช่องว่าง เนื่องจากช่องว่างใน scanf ถือเป็นจุดสิ้นสุดการรับข้อความ ดังนั้นการรับค่าข้อความที่มี ช่องว่างควรใช้คาสั่ง gets(); คาสั่ง gets(); เป็นฟังกชันที่ใช้รับข้อมูลชนิดข้อความ (string) จากคียบอรด จากนั้นนา ข้อมูลที่รับเข้าไปเก็บไว้ในตัวแปรสตริง (string variables) ที่กาหนดไว้ ซึ่งคาสั่ง gets(); จะต้องประกาศไว้ใน เฮดเดอรไฟล #include <string.h> รูปแบบ gets(ตัวแปรข้อความ); ข้อควรจำ gets(); รับได้เฉพาะข้อความ(string) เท่านั้น ไม่สามารถรับค่าข้อมูลชนิดอื่นได้ และไม่ต้องใช้ %s
18
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
ตัวอย่างโปรแกรมที่ 2.3 การใช้คาสั่ง gets(); รับข้อความ บรรทัดที่ 1 2 3 4 5 6 7 8 9 10 11 12
คำสั่ง #include <stdio.h> #include <conio.h> main() { char name[30],address[30]; printf("Enter your name:"); gets(name); printf("Enter your address:"); gets(address); printf("\n\nHello %s \n Address is %s",name,address); getch(); }
บรรทัดที่ 7 และ 9 ใช้คาสั่ง gets(); รับข้อความเก็บไว้ในตัวแปร บรรทัดที่ 10 แสดงข้อความในตัวแปร ผลการรันโปรแกรม
19
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
มาทาแบบฝึกหัด กันเถอะ
20
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
คำสั่ง
ให้นักเรียนตอบคาถามต่อไปนี้
1. กฎการตั้งชื่อตัวแปรในภาษาซี มีอะไรบ้าง ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ………………………………………………………………………………………………………
2. ชนิดข้อมูลพืน้ ฐานของภาษาซี ประกอบด้วยอะไรบ้าง ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ………………………………………………………………………………………………………
3.ตัวแปรและค่าคงที่ มีความแตกต่างกันอย่างไร
……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ………………………………………………………………………………………………………
4. เราสามารถกาหนดค่าคงที่ก่แี บบ ยกตัวอย่างประกอบ
……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ……………………………………………………………………………………………………… ………………………………………………………………………………………………………
21
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
22
1. อัตราการแลกเปลี่ยนสกุลเงินบาท 31.86 บาท ต่อ 1 ดอลลารสหรัฐ ให้นักเรียนเขียน โปรแกรมด้วยการกาหนดค่าอัตราการแลกเปลี่ยนนี้เป็นค่าคงที่ และให้รับค่าเงินสกุล ดอลลาร เพื่อคานวณเป็นเงินสกุลบาท โดยแสดงผลลัพธทางจอภาพ
ตัวอย่างผลการรันโปรแกรม
2. จง เขียนโปรแกรมคานวณหาค่าพื้นที่วงกลม โดยให้รับค่ารัศมีจากผู้ใช้ โดยให้ค่า pi เก็บ ไว้ในค่าคงทีแ่ บบ const เมื่อคานวณได้ผลลัพธแล้ว ให้มีการแสดงผลออกทางหน้าจอดังนี้
ตัวอย่างผลการรันโปรแกรม
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
3. จงเขียนโปรแกรมรับค่าเงินเดือนและค่าล่วงเวลา จากนันจงค ้ านวณหารายได้ รวม ภาษี 10% จากยอดรายได้ รวม และรายได้ สทุ ธิโดยให้ แสดงผลลัพธ์ทางจอภาพ
ตัวอย่างผลการรันโปรแกรม 4. จงเขียนโปรแกรมรับข้ อมูลนักเรี ยน ซึง่ ประกอบด้ วยชื่อ คะแนนปฏิบตั ิการ คะแนนสอบ กลางภาค และสอบปลายภาค จากนันค ้ านวณหาคะแนนรวมที่ได้ โดยให้ แสดงผลลัพธ์ทาง จอภาพ
ตัวอย่างผลการรันโปรแกรม
23
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
แบบทดสอบหลังเรียน เรื่อง การประกาศตัวแปรและชนิดของข้อมูล คำสั่ง ให้นักเรียนทาเครื่องหมาย ลงในกระดาษคาตอบ ช่องอักษร ก. ข. ค. หรือ ง. ในข้อที่เห็นว่าถูกต้องที่สุดเพียงข้อเดียว 1. โอเวอรโฟลว (Overflow) หมายถึงข้อใด ก. โปรแกรมแฮงก ข. โปรแกรมเกิดข้อผิดพลาด ค. ค่าเกินกว่าช่วงข้อมูลที่รับได้ ง. ผลการคานวณภาษีผิด 2. ข้อใดเป็นการแก้ปัญหา โอเวอรโฟลว ได้ ก. เพิ่มหน่วยความจาหลัก ข. เลือกชนิดข้อมูลที่มีขนาดใหญ่ขึ้น ค. เลือกคอมพิวเตอรที่มีความเร็วสูงขึ้น ง. เปลี่ยนคอมพิวเตอรเป็นรุน่ ใหม่ 3. ข้อใดต่อไปนี้ตั้งชื่อตัวแปรผิด ก. AAa ข. 4_you ค. name_student ง. Auto
24
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
25
4. ข้อมูลชนิดใดที่มีขนาดเล็กที่สุด ก. char ข. int ค. float ง. double 18 5. ข้อใดเป็นการประกาศค่าคงที่ได้ถูกต้องที่สุด ก. const tax = “0.07” ข. const int ans= “3” ค. #define tax = 0.07 ; ง. #define tax 0.07 6. ข้อใดต่อไปนี้สามารถกาหนดเป็นค่าคงที่ได้ ก. อัตราภาษีมูลค่าเพิ่ม ข. ค่าล่วงเวลา ค. คะแนนเก็บ ง. เงินเดือนพนักงาน 7. ถ้าต้องการเก็บตัวเลขจานวนเต็มที่มีค่าไม่มากควรกาหนดเป็นข้อมูลชนิดใด ก. char ข. int ค. float ง. double
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
26
8. การประกาศชนิดข้อมูลแบบ char จะต้องอยู่ภายในเครื่องหมายใด ก. { } ข. “ ” ค. ‘ ’ ง. /* */ 9. ข้อมูลชนิดใดที่มีขนาดใหญ่ท่สี ุด ก. char ข. unsigned char ค. int ง. long int 10. ข้อใดไม่อยู่ในกฎของการตั้งชื่อตัวแปรในภาษาซี ก. ขึน้ ต้นด้วยตัวเลข ข. ขึ้นต้นด้วยอักษรตัวพิมพใหญ่ ค. ขึน้ ต้นด้วยอักษรตัวพิมพเล็ก ง. ใช้เครื่องหมาย “_” เป็นตัวเชื่อมคา
19
แบบฝึกทักษะการเขียนโปรแกรมภาษาซี เล่มที่ 2 ตัวแปรและชนิดของข้อมูล
27 34 20
บรรณำนุกรม ขวัญจิตร สุวรรณวงศ์ . (ม.ป.ป). การเขียนโปรแกรมภาษาซี.(ออนไลน์). เข้าถึงได้จาก http://www.lks.ac.th/kuanjit/Program_C/menu_c52.htm. วันที่สืบค้น 8 ต.ค.2553 ฝ่ายตาราวิชาการคอมพิวเตอร. การเขียนโปรแกรมเบื้องต้น(ภาษาซี) .-- กรุงเทพฯ: ซีเอ็ดยูเคชั่น,2553 วรรณวณา ปัญญาใส. (2553) . สื่อการสอนภาษาซี .(ออนไลน). เข้าถึงได้จาก http://www.comcn.in.th/elearnning /wanwana/web_c/. วันที่สืบค้น 21 ต.ค.2553 สุรัตน โคอินทรางกูร . (2541) . การเขียน Flowchart เบื้องต้น. (ออนไลน) เข้าถึงได้จาก http:// www.bus.tu.ac.th/usr/surat/mis201/homepage/cmat/sheet/Flowchar.doc, วันที่สืบค้น 24 ตุลาคม 2553 อนิวัฒน แก้วห่อทอง. (2553). กำรเขียนโปรแกรมภำษำซี. . (ออนไลน).เข้าถึงได้จาก http://itd.htc.ac.th/st_it51/it5144/npt/work/c/bc7.html,วันที่สืบค้น 16 ก.ย.2555 โอภาส เอี่ยมสิริวงศ. การเขียนโปรแกรมด้วยภาษา C (Programming with C).—กรุงเทพฯ: ซีเอ็ดยูเคชั่น,2552 Thatchapol Piluk. (2552) . Data structure . (ออนไลน) เข้าถึงได้จาก http://dropmilk.blogspot.com/2009_07_01_archive.html. วันที่สืบค้น 21 ต.ค.2553