วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2558

ข้อมูลชนิดอาร์เรย์ C#

          อาร์เรย์จะประกอบด้วยข้อมูลหลาย ๆ ตัวรวมกันเป็นกลุ่ม ข้อมูลแต่ละตัวในกลุ่มนั้นจะเรียกว่า สมาชิก หรือ อีลีเมนต์ (element) หรือเซล (cell) ในการอ้างถึงข้อมูลแต่ละเซลจะใช้อินเด็กซ์ (index) หรือซับสคริปต์ (subscript) เป็นตัวชี้ โดยอินเด็กซ์นี้จะมีค่าเริ่มต้นจาก 0 ตัวอย่างเช่น ถ้ามีข้อมูลอยู่กลุ่มหนึ่งซึ่งเป็นคะแนนของนักศึกษา 9 วิชา สามารถเก็บได้ดังนี้


          จากข้อมูลข้างต้นสามารถบอกได้ว่าข้อมูลอยู่อาร์เรย์ชื่อ X ในแต่ละเซลจะเก็บเลขจำนวนเต็ม ส่วนตัวเลขที่อยู่ในเครื่องหมาย square brackets ([]) เรียกว่าอินเด็กซ์ ซึ่งจะต้องเป็นข้อมูลประเภทจำนวนเต็มเท่านั้น ถ้าหากต้องการติดต่อกับเซลใดก็ให้อินเด็กซ์เป็นตัวชี้ ถ้าหากเราอ้างตัวแปร X[3] หมายความว่าเป็นการติดต่อกับอาร์เรย์ X เซลที่ 3

          ลักษณะการอ้างถึงตัวแปรอาร์เรย์นั้นตัวอินเด็กซ์สามารถเกิดจากการกระทำทางคณิตศาสตร์ได้และผู้เขียนโปรแกรมสามารถนำตัวแปรอาร์เรย์มาใช้งานคล้ายกับตัวแปรทั่วไปได้ ถ้าหากข้อมูลคะแนนของนักศึกษาที่อยู่ในอาร์เรย์เป็นไปตามรูปด้านบน ตัวอย่างการใช้งานอาร์เรย์สามารถเป็นไปได้ดังตัวอย่างต่อไปนี้


X[2];                                อ้างเซลที่ 2 มีค่าเท่ากับ 35
X[2] + X[3];                      นำเซลที่ 2 บวกกับเซลที่ 3 จะได้ 35 + 84 เท่ากับ 119
X[1+3];                            อ้างเซลที่ 4 ที่ค่าเท่ากับ 21
X[5] + 1;                          นำเซลที่ 5 มาบวกด้วย 1 จะได้เท่ากับ 46
X[6] = X[1]+X[2];             นำเซลที่ 1 บสกกับเซลที่ 2 แล้วนำผลลัพธ์ไปเก็บในเซลที่ 6

          ถ้าหากในโปรแกรมมีการประกาศตังแปร์อาร์เรย์เอาไว้ เราสามารถนำตัวแปรนี้มาใช้ได้เหมือนกับตัวแปรทั่วไป เช่น

X[5] = 45;                        ใส่ค่า 45 ลงในตัวแปรอาร์เรย์ X เซลที่ 5
System.out.println(X[6]); พิมพ์ค่าในตัวแปรอาร์เรย์ X เซลที่ 6

          โปรแกรมต่อไปนี้เป็นตัวอย่างเบื้องต้นการใช้อาร์เรย์ โดยประกาศตัวแปรอาร์เรย์ออกมาแต่ใส่ข้อมูลลงไปไม่ครบทุกเซล จากนั้นแสดงผลค่าในอาร์เรย์
     เมื่อรันโปรแกรมผลลัพธ์จะเป็นดังนี้


วันพฤหัสบดีที่ 18 มิถุนายน พ.ศ. 2558

ตัวแปรและประเภทของข้อมูล C#

ประเภทของข้อมูลในภาษา C# แบ่งออกได้เป็น 3 กลุ่มคือ ข้อมูลแบบพื้นฐานหรือ Value types ข้อมูลแบบอ้างอิงออบเจ็กต์หรือ Reference type และข้อมูลแบบเก็บที่อยู่ของออบเจ็กต์หรือ Pointer type

ข้อมูลกลุ่ม Value type จะเป็นการจองหน่วยความจำสำหรับเก็บข้อมูลโดยตรง ในการเขียนโปรแกรมด้วยภาษา C# ข้อมูลในกลุ่มนี้จะแบ่งออกเป็นสองประเภทใหญ่ ๆ คือ
  • Struct types
  • Enumerated types
สำหรับในหัวข้อนี้จะกล่าวถึงข้อมูลในกลุ่มของ Value types เท่านั้น โดยเฉพาะข้อมูลที่เก็บเป็นตัวเลข (Numeric) และข้อมูลแบบบูลีน (Boolean)

สำหรับข้อมูลแบบตัวเลขยังแบ่งออกได้เป็นข้อมูลแบบเลขจำนวนเต็ม (Integral) เลขทศนิยม (Floating-point) และเลขจำนวนจริง (Decimal)

ข้อมูลประเภทเลขจำนวนเต็ม (Integral) มีอยู่ 9 ประเภท ข้อมูลประเภทเลขทศนิยม  (Floating-point) มีสองประเภท และในภาษา C# จะมีข้อมูลประเภทเลขจำนวนเต็มฐานสิบ (Decimal) โดยคอมพิวเตอร์จะเก็บเลขจำนวนเต็มในรูปแบบของเลขทศนิยม โดยใช้หน่วยความจำขนาด 128 บิต ทำให้เก็บตัวเลขจำนวนเต็มค่าสูง ๆ ได้ ประเภทของข้อมูลแบบตัวเลขในภาษา C# แสดงได้ดังตารางต่อไปนี้


          สำหรับข้อมูลแบบจำนวนเต็มแต่ละชนิดจะมีขอบเขตของข้อมูลดังตารางต่าไปนี้
           
สำหรับการเก็บข้อมูลประเภทเลขทศนิยมสามารถเก็บได้ 2 ชนิดคือ ข้อมูลแบบ  float และแบบ double โดยการเก็บข้อมูลแบบ  double นั้นจะใช้หน่วยความจำในการเก็บมากกว่า ซึ่งจะทำให้เก็บตัวเลขที่มีความละเอียดมากกว่าแบบ float ถึงสองเท่า โดยแต่ละชนิดมีขอบเขตที่เก็บข้อมูลได้ดังตารางต้อไปนี้

ตัวอย่างโปรแกรมแสดงค่าสูงสุดต่ำสุดของเลขจำนวนเต็ม
ผลลัพธ์จากการรันโปรแกรมเป็นดังนี้