คำชี้แจง | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
ให้นักเรียนสรุปเนื้อหาความรู้ที่ได้จากการศึกษาค้นคว้า บทเรียนบนเครือข่ายอินเทอร์เน็ต เรื่องการโปรแกรมเบื้องต้น หน่วยที่ 3 ข้อมูลพื้นฐานและตัวดำเนินการ หรือสืบค้นจากอินเทอร์เน็ต ให้ได้ใจความสำคัญ ถูกต้องครบถ้วน ตามหัวข้อที่กำหนดให้ต่อไปนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
วันพุธที่ 12 กรกฎาคม พ.ศ. 2560
แบบฝึกหัดที่ 3
ภาษา C ข้อมูลพื้นฐานและตัวดำเนินการ
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ชนิดของข้อมูลพื้นฐาน (Basic Types) ในภาษาซี มีอยู่ 5 แบบ ดังนี้
3.1.1 ข้อมูลแบบบูลีน (Boolean)
เรียกว่าแบบ bool หมายถึง ข้อมูลที่มีค่าเป็น 0 ถือว่าเป็นเท็จ (False) หรือมีค่าเป็น 1
ถือว่าเป็นจริง (True)
3.1.2 ข้อมูลแบบตัวอักษร (Character)
เรียกว่าแบบ char หมายถึง ข้อมูลที่มีค่าเป็นตัวอักษรหนึ่งตัว อยู่ในเครื่องหมายสัญประกาศ (Apostrophe) เช่น 'A'
3.1.3 ข้อมูลแบบตัวเลขจำนวนเต็ม (Integer)
เรียกว่าแบบ int หมายถึง ข้อมูลที่มีค่าเป็นตัวเลขจำนวนเต็ม แบ่งได้เป็น
3.1.4 ข้อมูลแบบเลขจำนวนจริง (Real Floating Types)
เรียกว่าแบบ float หมายถึง ข้อมูลที่เป็นตัวเลขจำนวนจริง แบ่งได้เป็น
- float หมายถึง ตัวเลขแบบ Single precision (ทศนิยมถูกต้อง 6 ตำแหน่ง)
- double หมายถึง ตัวเลขแบบ Double precision (ค่าทศนิยมถูกต้อง 15 ตำแหน่ง)
- long double หมายถึง ตัวเลขที่มีค่าได้มากกว่าแบบ double และค่าทศนิยมถูกต้อง
18 ตำแหน่ง
3.1.5 ข้อมูลแบบไม่มีค่า (Empty)
เรียกว่าแบบ void หมายถึง ข้อมูลที่ไม่ต้องการกำหนดค่า
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตารางแสดงค่าที่ใช้ได้ของข้อมูลแบบต่าง ๆ ตามมาตรฐาน C99 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
หมายเหตุ : | |||||||||||||||||||||||||||||||||||||||||||||||||||
- ตัวแปลภาษาซี หลายตัวยังไม่รองรับมาตรฐาน C99 ค่าที่ใช้ได้อาจต่างไปจากตารางนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
- เลขแบบวิทยาศาสตร์ (Scientific Notation) "E" หมายถึง คูณด้วย 10 ยกกำลัง | |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวแปร (Variable) หมายถึง ชื่อที่ผู้เขียนโปรแกรมตั้งขึ้นแทนตำแหน่งบนหน่วยความจำ สำหรับเก็บข้อมูลระหว่างการประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า ข้อมูลที่เกิดจากการดำเนินการ หรือข้อมูลผลลัพธ์
การตั้งชื่อตัวแปร จะต้องเป็นไปตามหลักการตั้งชื่อของภาษาซี และชื่อที่เหมาะสม ควรเป็นชื่อที่สื่อความหมาย ซึ่งกฎในการตั้งชื่อ มีดังนี้
1. ต้องประกอบขึ้นจากตัวอักษร ตัวเลข และเครื่องหมายขีดเส้นใต้ (underscore) เท่านั้น
2. อักขระตัวแรกจะต้องเป็นตัวอักษร หรือเครื่องหมายขีดเส้นใต้ (underscore) เท่านั้น
3. อักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ถือเป็นตัวอักษรคนละตัวกัน เช่น A และ a เป็นชื่อที่แตกต่างกัน เป็นต้น
4. ชื่อตัวแปรตามมาตฐาน ANSI C จะมีความยาวไม่จำกัด แต่คอมไพเลอร์ตามมาตรฐาน ANSI C
จะต้องสามารถจำแนกชื่อที่แตกต่างกันได้อย่างมาก 31 อักขระแรก
5. ชื่อตัวแปรต้องไม่ซ้ำกับคำสงวน
| |||||||||||||||||||||||||||||||||||||||||||||||||||
คำสงวน (Reserved Words) หมายถึง คำที่สงวนไว้สำหรับเรียกใช้ตามวัตถุประสงค์ที่กำหนดไว้เฉพาะ เช่น คำที่ใช้ในคำสั่งควบคุมและชนิดของข้อมูล เป็นต้น คำสงวนในภาษา C มีดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวแปรที่ใช้ในภาษาซี จะต้องมีการประกาศชนิดของตัวแปรให้สอดคล้องกับข้อมูลที่จะเก็บในตัวแปรนั้น และจะต้องประกาศชนิดของตัวแปรไว้ก่อน จึงจะเรียกใช้ตัวแปรนั้น ๆ ได้ ชนิดของตัวแปรมีดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ในภาษาซี สามารถประกาศตัวแปร ได้ตามรูปแบบคำสั่งดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ค่าคงตัว (literal constant) หมายถึง ข้อมูลที่ระบุเป็นอย่างใดอย่างหนึ่งในโปรแกรม และมีชนิดของข้อมูล ตามค่าของข้อมูลนั้น ๆ เช่น | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
นอกจากการใช้ค่าคงตัวแล้ว ยังสามารถกำหนดชื่อตัวแปร เพื่อใช้แทนค่าคงตัวในโปรแกรมได้ด้วย ซึ่งจะเรียกชื่อตัวแปรนี้ว่า ค่าคงที่ (constant) โดยใช้คำสั่งตัวประมวลผลก่อนซี #define | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวดำเนินการ ในโปรแกรมภาษาซี มีการใช้ตัวดำเนินการอยู่ 3 ชนิดใหญ่ ๆ ดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
3.5.1 ตัวดำเนินการคำนวณ (Arithmetic Operators) คือ เครื่องหมายที่ใช้ในการคำนวณบวก ลบ คูณ หาร ค่าต่าง ๆ เครื่องหมายที่ใช้มีดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
3.5.2 ตัวดำเนินการเปรียบเทียบ (Relational and Logical Operators) หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ ซึ่งผลที่ได้จากการดำเนินการ จะได้ 2 กรณี คือ จริง จะให้ค่าเป็น 1 และ เท็จ จะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
3.5.3 ตัวดำเนินการตรรกะ (Logical Operators) หมายถึง ตัวดำเนินการที่ใช้ในการเปรียบเทียบและตัดสินใจ โดยนำเงื่อนไขตั้งแต่ 2 เงื่อนไข มาเปรียบเทียบกัน ผลที่ได้จากการดำเนินการ จะได้ผลเป็น 2 กรณี คือ จริง จะให้ค่าเป็น 1 และเท็จ จะให้ค่าเป็น 0 เช่นเดี่ยวกับตัวดำเนินการเปรียบเปรียบเทียบ ตัวดำเนินการที่ใช้มีดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
นิพจน์ (Expression) หมายถึง การนำตัวแปร ค่าคงที่ มาสัมพันธ์กันโดยใช้ตัวดำเนินการอย่างหนึ่งอย่างใดเป็นตัวเชื่อม | |||||||||||||||||||||||||||||||||||||||||||||||||||
3.6.1 นิพจน์ แบ่งออกได้เป็น | |||||||||||||||||||||||||||||||||||||||||||||||||||
1. นิพจน์ทางคณิตศาสตร์ (Arithmetic Expression) | |||||||||||||||||||||||||||||||||||||||||||||||||||
นิพจน์ทางคณิตศาสตร์ หมายถึง การนำตัวแปร ค่าคงที่ มาสัมพันธ์โดยใช้ตัวดำเนินการทางคณิตศาสตร์ เป็นตัวเชื่อม ผลลัพธ์ที่ได้ จะเป็นตัวเลข | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
2. นิพจน์ทางตรรกะ (Logical Expression) | |||||||||||||||||||||||||||||||||||||||||||||||||||
นิพจน์ทางตรรกะ หมายถึง การนำตัวแปร ค่าคงที่ หรือนิพจน์ มาสัมพันธ์กัน โดยใช้ตัวดำเนินการเปรียบเทียบและตัวดำเนินการตรรก เป็นตัวเชื่อม ผลที่ได้จะเป็น จริง หรือ เท็จ คือ จะให้ค่าเป็น 1 หรือ 0 ออกมาเป็นผลลัพธ์ สามารถนำผลไปคำนวณต่อได้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
ถ้า x มีค่าเป็น 4 , y มีค่าเป็น 7 , z มีค่าเป็น 4 หากนำมาเขียนเป็นนิพจน์จะได้ผลดังตาราง | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
3.6.2 กฏเกณฑ์ในการเขียนนิพจน์ | |||||||||||||||||||||||||||||||||||||||||||||||||||
1. ห้ามเขียนตัวแปรติดกัน โดยไม่มีตัวดำเนินการเชื่อม เช่น ab ในภาษาซี ต้องเขียน a*b จะเขียนเป็น ab ไม่ได้ เพราะโปรแกรมจะถือว่าเป็นชื่อตัวแปรเดียว (ชื่อ ab ไม่ใช่ a คูณ b)
| |||||||||||||||||||||||||||||||||||||||||||||||||||
2. ถ้าเขียนนิพจน์ โดยมีชนิดของตัวแปรหรือค่าคงที่ต่างชนิดกัน ในนิพจน์เดียวกัน ภาษาซี จะเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็ก ให้เป็นชนิดข้อมูลที่ใหญ่ขึ้น เช่น | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวอย่าง
int i;
float f;
double d;
นิพจน์ i*f จะได้ผลลัพธ์เป็น float
นิพจน์ d/f + i*f จะได้ผลลัพธ์เป็น double
| |||||||||||||||||||||||||||||||||||||||||||||||||||
3. การหาร จะได้ชนิดข้อมูล ดังนี้ | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวอย่าง
int x = 10;
int y = 4;
float z = 4.0;
นิพจน์ x/y จะได้ผลลัพธ์ 2
นิพจน์ x/z จะได้ผลลัพธ์ 2.500000
| |||||||||||||||||||||||||||||||||||||||||||||||||||
3.6.3 ขั้นตอนการทำงานของนิพจน์ | |||||||||||||||||||||||||||||||||||||||||||||||||||
นิพจน์ในภาษาซี จะทำงานตามลำดับของระดับความสำคัญ ของตัวดำเนินการ ตัวดำเนินการที่มีระดับความสำคัญสูงกว่า จะดำเนินการก่อน หากในนิพจน์มีตัวดำเนินการระดับความสำคัญเท่ากัน จะเริ่มทำตัวดำเนินการจากซ้ายไปขวา | |||||||||||||||||||||||||||||||||||||||||||||||||||
ตารางแสดงตัวดำเนินการ โดยเรียงจากบรรทัดบนสุดไปล่างสุด เป็นระดับความสำคัญสูงสุดไประดับความสำคัญต่ำสุด ตัวดำเนินการในบรรทัดเดียวกันจะมีระดับความสำคัญเท่ากัน | |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวอย่างที่ 1นิพจน์2 + 2 * 2 - 2
วิธีคิด เนื่องจากระดับความสำคัญตัวดำเนินการ์ * มีสูงกว่า + กับ - จึงทำ * ก่อน ส่วน ตัวดำเนินการ +
กับ - มีระดับความสำคัญเท่ากัน จึงทำเรียงจากซ้ายไปขวาตามลำดับ ดังนี้ (คำตอบ 4) ตัวอย่างที่ 2 นิพจน์ x/y*z
วิธีคิด เนื่องจากระดับความสำคัญตัวดำเนินการ * และ / มีค่าเท่ากัน จึงทำเรียงจากซ้ายไปขวาตามลำดับ ดังนี้
ตัวอย่างที่ 3 นิพจน์ i * j + k / m - n
วิธีคิด
ตัวอย่างที่ 4 นิพจน์ a * b >= 8 - c || d - 3 == e / (2 - f) && g < h
วิธีคิด
|
สมัครสมาชิก:
บทความ (Atom)