การเขียนโปรแกรมคอมพิวเตอร์ จำเป็นอย่างยิ่งที่จะต้องทำความเข้าใจเกี่ยวกับชนิดข้อมูล ตัวแปร
เครื่องหมายและนิพจน์ เพราะการที่จะกำหนดให้โปรแกรมคอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่ง หรือตัดสินใจเลือกทำงานนั้น เครื่องหมายและนิพจน์ นับเป็นสิ่งสำคัญมากที่ผู้เขียนโปรแกรมควรจะเข้าใจหลักการทำงาน
และลำดับการทำงานของเครื่องหมายและนิพจน์ต่าง ๆ ให้ดี เพื่อเป็นตัวช่วยควบคุมโปรแกรมให้ทำงานได้อย่างมีประสิทธิภาพ
การเขียนโปรแกรมคอมพิวเตอร์นั้น มีความจำเป็นอย่างยิ่งที่จะต้องจัดการกับข้อมูลประเภทต่าง ๆ
เพื่อให้งานนั้น ๆ สามารถจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพและสะดวกต่อการค้นหาข้อมูล ดังนั้นในภาษาซี จึงแบ่งประเภทของข้อมูลออกได้เป็น 6 ประเภทด้วยกันคือ
1. ข้อมูลชนิดเลขจำนวนเต็ม (Integer)
2. ข้อมูลชนิดตัวเลขทศนิยม (Float)
3. ข้อมูลชนิดเลขฐานแปด (Octal)
4. ข้อมูลชนิดเลขฐานสิบหก (Hexadecimal)
5. ข้อมูลชนิดตัวอักขระ (Character)
6. ข้อมูลชนิดข้อความ (String)
1. ข้อมูลชนิดเลขจำนวนเต็ม (Integer) คือ เลขจำนวนเต็มทั่วไป ไม่ว่าจะเป็นเลขจำนวนเต็มบวก จำนวนเต็มศูนย์และจำนวนเต็มลบ ซึ่งเลขจำนวนเต็มเหล่านี้ สามารถนำไปคำนวณได้ ตัวอย่าง เช่น 100, 56,
0, -20 เป็นต้น
2. ข้อมูลชนิดตัวเลขทศนิยม (Float) คือ เลขทศนิยมชนิดคงที่ หรืออาจจะเป็นทศนิยม แบบไม่รู้จบ หรืออาจจะเป็นเลขทศนิยมที่เขียนในรูป E (หรือ e) ยกกำลัง ตัวเลขทศนิยมเหล่านี้ สามารถนำมาใช้ใน
การคำนวณได้ ตัวอย่าง เลขทศนิยมนี้ได้แก่ 20.25, -0.60, 58.96, 5.40e04 เป็นต้น
3. ข้อมูลชนิดเลขฐานแปด (Octal) คือ เลขจำนวนเต็มที่ประกอบด้วยเลข 0, 1 ,2, 3, 4, 5, 6 และ 7 เมื่อนำมาใช้ในภาษาซี จะต้องเขียนเลขศูนย์นำหน้า เช่น 0123, 045 เป็นต้น ซึ่งเลขฐานแปด เหล่านี้สามารถนำมาใช้เพื่อการคำนวณได้
4. ข้อมูลชนิดเลขฐานสิบหก (Hexadecimal) คือ ตัวเลขประเภทหนึ่งที่ใช้ในระบบคอมพิวเตอร์ ซึ่งประกอบด้วย 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e และ f เวลาใช้งานในภาษาซีจะต้องเขียนด้วย 0x นำหน้าเพื่อให้รู้ว่าตัวเลขที่นำมาใช้งานนั้นเป็นฐานสิบหก
5. ข้อมูลชนิดตัวอักขระ (Character) เป็นตัวอักษร หรือสัญลักษณ์อื่น ๆ ที่มีความยาว เพียง 1 ตัวอักษรเท่านั้น ซึ่งอาจจะเป็นตัวอักษร A-Z, a-z, 0-9 หรือ #, @, $ และอื่น ๆ เป็นต้น โดยจะเขียนไว้ในเครื่องหมาย ' ' (Single Quote) ตัวอักขระทั้งหมดนั้น สามารถศึกษาหรือดู รายละเอียดเพิ่มเติมได้จากตารางรหัส ASCII (American Standard Code II)
6. ข้อมูลชนิดข้อความ (String) เป็นข้อมูลแบบตัวอักษรที่มีความยาวมากกว่า 1 ตัวอักษร มาเรียงต่อกันเป็นข้อความ โดยที่ข้อความนั้นจะต้องถูกเขียนไว้ในเครื่องหมาย " " (Double Quote) ตัวอย่างเช่น "Phitsanulok", "Welcome" เป็นต้น)
——————————————————————————————————————————
ตัวอย่างการกำหนดชนิดข้อมูลในภาษาซี
ข้อมูล | ชนิดของข้อมูลในภาษาซี |
| 1.) -60 2.) ‘#’ 3.) 0.22222… 4.) “Good_Bye” 5.) 0 | 1.) ชนิดเลขจำนวนเต็ม (Integer) 2.) ชนิดตัวอักขระ (Character) 3.) ชนิดตัวเลขทศนิยม (Float) 4.) ชนิดข้อความ (String) 5.) ชนิดเลขจำนวนเต็ม (Integer) |
ตัวแปร (Variable)![]()
หมายถึง ชื่อที่ถูกกำหนดขึ้นมาเพื่อใช้แทน หรือเก็บข้อมูลในหน่วยความจำ(Memory) บางครั้งตัวแปรอาจจะเปรียบเสมือนชื่อกล่องที่เก็บข้อมูล โดยสามารถนำเอาข้อมูลชนิดต่าง ๆ ไปเก็บไว้ในกล่องนั้นได้
ส่วนการตั้งชื่อตัวแปรนั้นจะต้องขึ้นต้นด้วยตัวอักษร และตามด้วยตัวอักษร หรือตัวเลขก็ได้ และชื่อตัวแปรที่ตั้งขึ้นมาควรจะสื่อความหมายกับสิ่งที่กำลังดำเนินการ หรือเกี่ยวข้องกับเรื่องที่สนใจอยู่ ตัวอย่างชื่อตัวแปร เช่น NAME, SURNAME, ADDRESS1, Phone หรือ ID4 เป็นต้น
——————————————————————————————————————————
ตัวอย่าง ถ้าต้องการเก็บข้อมูลส่วนตัวของนักเรียน ควรตั้งชื่อตัวแปรให้สื่อความหมายกับสิ่งที่กำลังดำเนินการ หรือเกี่ยวข้องกับเรื่องที่สนใจอยู่ โดยมีตัวอย่างการตั้งชื่อตัวแปรการเก็บข้อมูลนักเรียนดังต่อไปนี้
ข้อมูลนักเรียน | ชื่อตัวแปร |
| 1) ชื่อ | 1) Name |
| 2) นามสกุล | 2) Surname |
| 3) ที่อยู่ | 3) Address |
| 4) เบอร์โทร | 4) Phone |
| 5) รหัสประจำตัว | 5) ID |
——————————————————————————————————————————
| การเลือกใช้ประเภทของตัวแปรนั้น ควรจะเลือกให้มีความเหมาะสมกับการใช้งาน เนื่องจากการเลือกใช้ที่เหมาะสมและตรงกับงานนั้น ๆ จะมีผลทำให้การใช้งานหน่วยความจำของเครื่องคอมพิวเตอร์นั้น ๆ มีความเหมาะสมตามไปด้วย และหากใช้ไม่เหมาะสมกับงานแล้วก็จะทำให้เป็นการสิ้นเปลืองหน่วยความจำของเครื่องคอมพิวเตอร์โดยใช่เหตุ ดังนั้นควรศึกษาประเภทของตัวแปรได้ดังตารางที่ 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
—————————————————————————————————————————— ตัวอย่าง ถ้าต้องการเก็บข้อมูลตามตารางข้างล่างนี้ ควรกำหนดประเภทตัวแปร Int, Float, Long, Char ให้ถูกต้องดังต่อไปนี้
ข้อสังเกต การกำหนดชนิดของตัวแปร มีสิ่งที่ควรพิจารณาอยู่ 2 ประการคือ ตัวแปรนั้นจะต้องสามารถรับค่าได้ทุกค่าโดยไม่เกินขอบเขตของข้อมูลชนิดนั้นและตัวแปรจะต้องไม่ใช่หน่วยความจามากเกินความจำเป็น เช่น ถ้าข้อมูลไม่เกินขอบเขตของ int ก็ไม่ควรกำหนดตัวแปรให้เป็น float หลักการตั้งชื่อตัวแปร —————————————————————————————————————————— ตัวอย่าง ตัวอย่างการตั้งชื่อตัวแปรในภาษา C ทั้งที่ถูกต้องและไม่ถูกต้องตามหลักการ ดังต่อไปนี้
————————————————————————————————————————— รูปแบบการประกาศตัวแปร
หรืออีกรูปแบบหนึ่ง
อธิบาย
ตัวอย่างการประกาศตัวแปร
จากตัวอย่างที่แสดงให้ดูเบื้องต้น จะเห็นได้ว่าสามารถประกาศตัวแปรได้หลากหลายรูปแบบ ทั้งแบบมีค่าและไม่มีค่าเริ่มต้น ทั้งนี้จะขึ้นอยู่กับการใช้งานของผู้ใช้งานเอง —————————————————————————————————————————— ตัวอย่าง ถ้าต้องการประกาศตัวแปรในการเก็บข้อมูลส่วนตัวนักเรียน โดยมีตัวอย่างการประกาศตัวแปรในการเก็บข้อมูลนักเรียนดังต่อไปนี้
——————————————————————————————————————————เครื่องหมายในภาษาคอมพิวเตอร์ เครื่องหมายในการเขียนโปรแกรมคอมพิวเตอร์ที่ภาษาคอมพิวเตอร์สามารถเข้าใจความหมาย และสามารถทำงานได้นั้น จะถูกแบ่งออกตามประเภทของการใช้งานและเหตุการณ์ เช่น ต้องการเปรียบเทียบนิพจน์ว่าเป็นจริงหรือเท็จ ก็จะใช้เครื่องหมายทางตรรกศาสตร์เข้ามาเปรียบเทียบ หรือหากต้องการเปรียบเทียบนิพจน์หรือค่า 2 ค่าว่ามากกว่าหรือน้อยกว่า ก็จะใช้เครื่องหมายเปรียบเทียบ มากกว่า (>) หรือน้อยกว่า (<) เป็นต้น ดังนั้นเครื่องหมายในภาษาคอมพิวเตอร์ จะถูกแบ่งออกเป็น 3 ประเภทคือ
—————————————————————————————————————————— 1. เครื่องหมายทางคณิตศาสตร์
ตัวอย่าง กำหนดให้กับนิพจน์และผลลัพธ์ที่ได้ โดยในทีนี้กำหนดให้ตัวแปร i และ j มีชนิดข้อมูลเป็นเลขจำนวนเต็ม และตัวแปร j ถูกกำหนดให้มีค่าเท่ากับ 5
นอกจากนี้ ในภาษาซียังมีเครื่องหมายที่ใช้ในทางคณิตศาสตร์อื่น ๆ อีก เพื่อใช้ในการเพิ่ม หรือลดค่าของตัวแปร ซึ่งสามารถแบ่งตามการใช้งานได้หลากหลายวิธี ดังตารางที่ 2 ตารางที่ 2 เครื่องหมายทางคณิตศาสตร์เพิ่มเติม
ตัวอย่าง กำหนดให้ i และ j เป็นตัวแปรชนิดเลขจำนวนเต็ม มีค่าเท่ากับ 5 และ 7 ตามลำดับ ส่วนตัวแปร f และ g เป็นตัวแปรชนิดเลขจำนวนจริง มีค่าเท่ากับ 5.5 และ -.325 ตามลำดับ และต่อไปนี้เป็นนิพจน์ในรูปแบบต่าง ๆ และผลลัพธ์ที่ได้ ทั้งนี้แต่ละนิพจน์ให้ใช้ค่าตัวแปรเริ่มต้นตามที่กล่าวมา
—————————————————————————————————————————— 2. เครื่องหมายเปรียบเทียบ เครื่องหมายการเปรียบเทียบ เป็นเครื่องหมายที่มีความสำคัญอีกเช่นกัน เพื่อเปรียบเทียบค่าของตัวแปรตั้งแต่ 2 ค่าขึ้นไป โดยผลลัพธ์จากการเปรียบเทียบจะได้เป็นค่าจริง (True) หรือ เท็จ (False) โดยเครื่องหมายในการเปรียบเทียบ ดังตารางที่ 3 ตารางที่ 3 เครื่องหมายการเปรียบเทียบ
ตัวอย่าง ถ้าตัวแปร i, j และ k มีชนิดข้อมูลเป็นเลขจำนวนเต็ม มีค่า 1, 2 และ 3 ตามลำดับ และจากนิพจน์ต่อไปนี้ จะได้ผลลัพธ์จากการตรวจสอบดังนี้
—————————————————————————————————————————— 3. เครื่องหมายทางตรรกศาสตร์
ตารางที่ 5 หลักการดำเนินการด้วยเครื่องหมาย &&
ตารางที่ 6 หลักการดำเนินการด้วยเครื่องหมาย ||
ตารางที่ 7 หลักการดำเนินการด้วยเครื่องหมาย !
ตัวอย่าง กำหนดให้ i มีชนิดข้ัอมูลเป็นจำนวนเต็ม มีค่าเท่ากับ 7 และ f มีชนิดข้อมูลเป็นเลขจำนวนจริงมีค่าเท่ากับ 5.5 ส่วน c เป็นตัวแปรชนิดตัวอักษร ที่มีค่าเท่ากับ w และต่อไปนี้เป็นนิพจน์ตรรกะในรูปแบบต่าง ๆ และผลลัพธ์ที่ได้
—————————————————————————————————————————— ลำดับความสำคัญของตัวดำเนินการทางคณิตศาสตร์
ในการทำงานของตัวดำเนินการทางคณิตศาสตร์ คอมพิวเตอร์จะมีลำดับการทำงานดังนี้ ตัวอย่าง กำหนดให้ตัวแปร i และ j เป็นเลขจำนวนเต็มมีค่าเท่ากับ 20 และ 8 ตามลำดับ ผลลัพธ์จากนิพจน์นี้ค่า ans จะมีค่าเท่ากับ 8 ซึ่งเป็นไปตามลำดับการประมวลผลดังต่อไปนี้
—————————————————————————————————————————— |
นิพจน์ (Expression) ![]()
นิพจน์ คือ การนำเอาค่าคงที่ หรือตัวแปรต่าง ๆ มาดำเนินการประมวลผล โดยผ่านทางเครื่องหมายทางคณิตศาสตร์ หรืออาจจะเป็นเครื่องหมายในการเปรียบเทียบ ตัวอย่างนิพจน์ที่มักจะพบในปัจจุบัน เช่น
a + b = 0, a + 5 = 10 เป็นต้น นิพจน์ สามารถแบ่งออกได้เป็น 2 ประเภท คือ
| 1. | นิพจน์ทางคณิตศาสตร์ |
|---|---|
2. | นิพจน์ทางตรรกศาสตร์ |
(แหล่งข้อมูล... คู่มือเขียนโปรแกรมด้วยภาษา C ฉบับสมบูรณ์/ อรพิน ประวัติบริสุทธิ์)
——————————————————————————————————————————
1. นิพจน์ทางคณิตศาสตร์ ![]()
เป็นเหมือนนิพจน์ทางคณิตศาสตร์ทั่ว ๆ ไป เพียงแต่จะต้องมีการเปลี่ยนเครื่องหมายทางคณิตศาสตร์ทั่วไป เช่น + - x และ ÷ ให้อยู่ในรูปแบบของเครื่องหมายทางคณิตศาสตร์ที่ใช้ในระบบคอมพิวเตอร์ ซึ่งจะพบว่าเครื่องหมาย x (คูณ) จะต้องเปลี่ยนเป็น * ส่วนเครื่องหมาย ÷(หาร) จะเปลี่ยนเป็น / เพื่อให้คอมพิวเตอร์รับรู้ว่ากำลังจะดำเนินการใดอยู่ ดังตารางที่ 1
ตารางที่ 1 ตัวอย่างการเปรียบเทียบนิพจน์ทางคณิตศาสตร์
| นิพจน์ในทางคณิตศาสตร์ทั่วไป | นิพจน์ในทางคณิตศาสตร์ในคอมพิวเตอร์ |
a + b + c | a + b + c |
2ab + c | 2 * a * b + c |
a + b c + d | a + b / c + d |
(a x b) + c | ( a * b ) + c |
2a + 3b C | (2 * a) + (3 * b) / c |
ลำดับการประมวลผลของเครื่องหมายในการคำนวณ ลำดับในการประมวลผลทางคณิตศาสตร์ในทางคอมพิวเตอร์ที่ใช้ในการคำนวณนั้น จะมีความสำคัญและประมวลผลลำดับก่อนหรือหลังนั้นจะขึ้นกับเครื่องหมายทางคณิตศาสตร์ที่เขียนด้วย โดยระบบคอมพิวเตอร์จะดำเนินการจากซ้ายไปขวา
——————————————————————————————————————————
2. นิพจน์ทางตรรกศาสตร์ ![]()
เป็นเหมือนนิพจน์ทางตรรกศาสตร์ทั่ว ๆ ไป ที่จะต้องมีการเปรียบเทียบความเป็นจริงและเท็จ
แต่การเขียนนิพจน์ทางตรรกศาสตร์ในทางคอมพิวเตอร์ จะต้องเขียนให้อยู่ในรูปแบบการเปรียบเทียบ
โดยใช้เครื่องหมาย && (และ) , || (หรือ) และ ! (นิเสธ) ดังตารางที่ 2
ตารางที่ 2 ตัวอย่างการใช้นิพจน์ทางตรรกศาสตร์
กำหนดให้ a = 5 , b = 10 และ c = 20
นิพจน์ตรรกศาสตร์เขียนใน รูปแบบคอมพิวเตอร์ | การดำเนินการ | ผลลัพธ์ |
a < b && b > c | T && F | F |
(b + a) < c || 2c | T || T | T |
a == b || (!c) | F || F | F |
ตัวอย่างที่ 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
วิธีคิด