วันจันทร์ที่ 6 กรกฎาคม พ.ศ. 2558

การประกาศเมธอด

          ในโปรแกรมแต่ละโปรแกรมมีเมธอด แต่เมธอดหลักที่โปรแกรมจะทำงานเป็นเมธอดแรกคือเมธอด Main สำหรับโครงสร้างของโปรแกรมที่มีเมธอดหลาย ๆ เมธอดแสดงได้ดังนี้

class
{
        เมธอด Main()
        {
                สเตตเมนต์;
                ..................
        }
        
        เมธอด name1()
        {
                สเตตเมนต์;
                ..................
        }

        เมธอด name2()
        {
                สเตตเมนต์;
                ..................
        }
}

          จากตัวอย่างเป็นการสร้างเมธอดอย่างง่ายขึ้นมาสองเมธอด ชื่อว่า name1 และ name2 โดยเมธอดทั้งสองจะเขียนไว้ในคลาสของโปรแกรม สำหรับภายในเมธอดจะประกอบด้วยสเตตเมนต์ต่าง ๆ ได้ตามที่ผู้เขียนโปรแกรมต้องการ ในการสร้างเมธอดแต่ละเมธอดจะมีรูปแบบดังนี้

modifiers return_type method_name(parameterList)
{
        Statement;
        [return]
}

modifiers         ส่วนนี้จะมีหรือไม่มีก็ได้ ทำหน้าที่คล้ายกับการประกาศตัวแปร ถ้าหากเขียนเป็น public หมายความว่าสามารถเรียกใช้งานที่ใดก็ได้ ถ้าหากประกาศเป็น private จะเรียกใช้ได้ในคลาสเดียวกัน

return_type      เป็นส่วนที่บอกว่าเมื่อเรียกใช้เมธอดนี้แล้วจะมีการคืนค่าหรือไม่ และคืนค่าเป็นข้อมูลประเภทใด ถ้าหากไม่มีการคืนค่าจะใช้คำว่า void แต่ถ้าหากมีการคืนค่าจะต้องระบุเป็นประเภทของข้อมูลที่จะคืนออกมา เช่น int, bool, double เป็นต้น

method_name  เป็นชื่อของเมธอด การตั้งชื่อจะเป็นไปตามกฎการตั้งชื่อของตัวแปร แต่โดยมากแล้วมักจะใช้ตัวอักษรตัวเล็กในการตั้งชื่อ

parameterList   เป็นส่วนที่ใช้ผ่านค่าเข้าไปในเมธอด ถ้าหากมีการผ่านค่าเข้าไปหลายตัวจะใช้เครื่องหมาย , คั่น ถ้าหากเมธอดไม่มีการผ่านค่าจะไม่มีส่วนนี้

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

          สำหรับเมธอดที่ไม่มีการคืนค่ามักเป็นเมธอดที่เขียนขึ้นมาเพื่อให้ทำงานบางอย่างที่จบได้ภายในตัวมันเอง การทำงานของเมธอดประเภทนี้จะคล้ายกับเป็นโปรแกรมย่อยโปรแกรมหนึ่ง ถ้าหากโปรแกรมหลักต้องการเรียกใช้เมธอดก็เรียกชื่อของเมธอดที่ต้องการได้ทันที และเมธอดที่สร้างขึ้นยังสามารถเรียกเมธอดอื่น ๆ เข้ามาร่วมทำงานได้เช่นกัน

ตัวอย่างการสร้างเมธอดอย่างง่าย


          จากโปรแกรมเป็นการสร้างเมธอดชื่อ WelcomeMessage ที่เป็นเมธอดที่ไม่มีการผ่านค่าเข้าไป และไม่มีการคืนค่าออกมา เมื่อโปรแกรมหลัก Main ต้องการเรียกเมธอดนี้ขึ้นมาใช้งาน ก็จะเรียกชื่อเมธอด โดยเขียนว่า WelcomeMessage(); โปรแกมมก็จะทำงานทันที ผลลัพธ์จากการรันโปรแกรมเป็นดังนี้

คำสั่งการทำซ้ำแบบ for

          คำสั่ง for มักจะใช้ในการทำซ้ำที่ทราบจำนวนรอบในการทำซ้ำแน่นอน การททำงานของคำสั่งจะตรวจสอบเงื่อนไขก่อนแล้วทำซ้ำไปเรื่อย ๆ จนกว่าเงื่อนไขจะเป็นเท็จจริงออกจากการทำซ้ำ การเขียนโปรแกรมโดยใช้คำสั่งแบบ for นี้มักจะใช้ตัวแปรตัวหนึ่งเป็นตัวควบคุมการทำงาน และมีการเพิ่มค่าหรือลบค่าตัวแปรนั้น รูปแบบของคำสั่ง for เป็นดังต่อไปนี้

                               for(initialization; test_condition; step)
                               {
                                        statements;
                                        ..................
                                }
                               more statements

โดยที่                initialization                เป็นการการกำหนดค่าเริ่มต้นให้กับตัวแปรควบคุม
                          test_condition             เป็นการตรวจสอบเงื่อนไข ถ้าหากได้ค่าเป็นจริงจะทำงานต่อไป
                          step                             เป็นการเพิ่มค่าหรือลดค่าให้กับตัวแปรควบคุม
                          statements                   เป็นคำสั่งที่จะทำงานซ้ำในลูป

           การใช้คำสั่ง for นั้นสเตตเมนต์ต่าง ๆ ที่จะทำซ้ำจะอยู่ต่อจากคำสั่ง for ถ้าหากเป็นสเตตเมนต์รวมจะเขียนไว้ในเครื่องหมายปีกกา

           โปรแกรมนี้เป็นตัวอย่างการเขียนโปรแกรมหาค่าผลรวมของตัวเลขตั้งแต่ 1 ถึง  100 โดยใช้ตัวแปร i เป็นตัวนับเลขตั้งแต่  1  ถึง 100 และใช้ตัวแปรนี้เป็นตัวแปรควบคุมในคำสั่ง for ด้วย  เพิ่มต้นโปรแกรมจะกำหนดให้ตัวแปร sum ทีค่าเป็นศูนย์ เมื่อเข้าสู่การทำซ้ำจะให้ค่าตัวแปร i เพิ่มครั้งละหนึ่งค่าแล้วนำค่าของตัวแปร sum บวกกับ i ทำซ้ำไปเรื่อย ๆ จนกว่าเงื่อนไขทที่บอกว่า i น้อยกว่าหรือเท่ากับ 100 จะเป็นเท็จ
เมื่อรันโปรแกรมผลลัพธ์ที่ได้จะเป็นแบบนี้


วันอาทิตย์ที่ 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 ถึงสองเท่า โดยแต่ละชนิดมีขอบเขตที่เก็บข้อมูลได้ดังตารางต้อไปนี้

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