วันเสาร์ที่ 30 พฤษภาคม พ.ศ. 2552

Data & Data type (ข้อมูลและชนิดของข้อมูล)...!!!

Data (ข้อมูลดิบ) คือ ข้อเท็จจริงในชีวิตประจำวันโดยที่ข้อมูลดิบไม่มีขอบเขตที่แน่นอน และยังไม่ผ่านการประมวลผลโดยคอมพิวเตอร์

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

ข้อมูลชนิดจำนวนเต็ม
คือ ชนิดข้อมูลที่อยู่ในรูปจำนวนเต็มบวก เต็มลบ และ เต็มศูนย์
  • int (ใช้พื้นที่ 32 บิต) (ขอบเขต 2^-31 ถึง 2^31 - 1)
  • long (ใช้พื้นที่ 64 บิต) (ขอบเขต 2^-63 ถึง 2^63 - 1 )
  • byte (ใช้พื้นที่ 8 บิต) (ขอบเขต 0 ถึง 2^8 )
  • short (ใช้พื้นที่ 16 บิต) (ขอบเขต 2^-15 ถึง 2^15 - 1)
ข้อมูลชนิดจำนวนทศนิยม
คือ ชนิดข้อมูลที่อยู่ในรูปจำนวนจริง มีจุดทศนิยม
  • float (ใช้พื้นที่ 32 บิต)
  • double (ใช้พื้นที่ 64 บิต)
    ** นิยมใช้ double มากกว่า float แม้ว่าจะใช้พื้นที่มากกว่าก็ตาม ทำให้ค่าที่เก็บนั้นไม่คลาดเคลื่อน

ข้อมูลชนิดตรรกะ
คือ ชนิดข้อมูลที่ใช้เก็บค่าทางตรรกะ ที่มีเพียง จริง และ เท็จ

  • bool มีค่าเพียง 2 ค่า คือ true และ false

ข้อมูลชนิดข้อความ
คือ ชนิดข้อมูลที่ใช้เก็บข้อความ (string) และอักขระเพียงหนึ่งตัว (char)

  • string (พื้นที่ขึ้นอยู่กับขนาดข้อความ) (สามารถรับอักขระได้หลายตัว)
  • char (N/A) (สามารถรับอักขระได้เพียงตัวเดียว)

Variable ( ตัวแปร )....!!!

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

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

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


กฏการตั้งชื่อตัวแปร


  1. ห้ามนำคำสงวน (reserved word) มาตั้งเป็นชื่อตัวแปร
  2. ชื่อตัวแปรจะต้องขึ้นต้นด้วย ตัวอักษรภาษาอังกฤษ อักขระพิเศษ @
    และ _ (underscore) เท่านั้น
  3. ตัวแปรจะต้องไม่ขึ้นต้นด้วยตัวเลข เช่น 9number, 105Ages ถือว่าผิด
  4. ชื่อตัวแปรจะต้องไม่ประกอบไปด้วยอักษรพิเศษทุกชนิด
    (เครื่องหมาย /, +, -, *, %, !) และไม่มีการเว้นวรรค
  5. ตัวอักษรใหญ่และเล็กจะถือว่าไม่เหมือนกัน เช่น mVar, MVAR จะถือว่าเป็นคนละตัวแปร
  6. ไม่ควรใช้ชื่อยาวเกินไป และควรตั้งให้เหมาะสมกับการนำไปใช้ เช่น ตัวแปรเก็บอายุก็ควรตั้งว่า Age เป็นต้น

    ตัวอย่างการตั้งชื่อตัวแปรที่ถูก
    - _Number (ถูกต้องเพราะขึ้นต้นด้วย _ และประกอบไปด้วยตัวอักษร)
    - @humor123
    - InputNumber (ถูกต้องเพราะขึ้นต้นด้วยตัวอักษร)

    ตัวอย่างการตั้งชื่อตัวแปรที่ผิด
    - 12Vat (ผิดเพราะ ขึ้นต้นด้วยตัวเลข)
    - inter-net (ผิดเพราะมีอักขระพิเศษ - )
    - case (ผิดเพราะ case เป็นคำสงวน)


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

(ชนิดของตัวแปร) (ชื่อของตัวแปร) ; // เป็นการประกาศค่าตัวแปรโดยที่ตัวแปรจะไม่มีค่าใดๆในหน่วยความจำ
เช่น int number ; // เป็นการประกาศตัวแปร number ชนิด int (จำนวนเต็ม)

เราสามารถประกาศตัวแปรได้หลายตัวพร้อมกัน
(ชนิดของตัวแปร) (ชื่อของตัวแปร 1), (ชื่อของตัวแปร 2), (ชื่อของตัวแปร 3), ...., (ชื่อของตัวแปร n) ;
เช่น int a,b,c,d,e ;

เราสามารถประกาศตัวแปรพร้อมกับใส่ค่าเริ่มต้นให้กับตัวแปรได้
(ชนิดของตัวแปร) (ชื่อของตัวแปร) = ค่าที่ของตัวแปร ;
เช่น double pi = 3.14 ; // เป็นการประกาศค่าตัวแปร pi ชนิด double (จำนวนจริง) พร้อมกับใส่ค่าให้กับตัวแปร pi

สำหรับการประกาศค่าของ string และ char จะมีการกำหนดค่าเริ่มต้นดังนี้

string text = "Oak" ; // จะมีเครื่องหมาย " มาครอบข้อความเอาไว้

char word = 'O' ; // จะมีเครื่องหมาย ' มาครอบข้อความเอาไว้

** สำหรับรายชื่อชนิดของข้อมูลให้ดูในหัวข้อ Data & Data type ครับ

การประกาศตัวแปรค่าคงที่ ( Constant )
ค่าคงที่ในโค้ดโปรแกรมมีหน้าที่เฉพาะเจาะจงในแต่ละค่า เช่น ค่า พาย ค่า e หรือค่าอะไรก็แล้วแต่ ซึ่งเมื่อเราประกาศตัวแปรค่าคงที่มาแล้วนั้น
จะไม่สามารถเปลี่ยนแปลงค่าได้อีก ไม่ว่าในส่วนของโปรแกรมใดๆ

รูปแบบการประกาศตัวแปรค่าคงที่

const (ชนิดของตัวแปรค่าคงที่) = (ค่าที่ต้องการ) ;
*** การประกาศตัวแปร const จะต้องประกาศพร้อมกับใส่ค่าให้กับตัวแปร จะประกาศเพียงชื่อไม่ได้
*** const int oak ; (ถือว่าผิด จะไม่สามารถรันโปรแกรมได้) x x x x x x

const double PI = 3.14159 ;
** ส่วนใหญ่มักจะตั้งชื่อค่างคงที่ด้วยตัวอักษรใหญ่

ส่วนประกอบในโค้ดของภาษา C#...!!!

เนื่องจากภาษา C# นั้นเป็นภาษาระดับสูงที่มีเครื่องหมายต่างๆมากมาย ก่อนเราจะเขียนโค้ดกัน มาทำความรู้จักกับเครื่องหมายต่างๆของภาษา C# กันก่อนดีกว่าครับ

Comment (ส่วนอธิบายโค้ด)
คือ ส่วนที่ compiler จะไม่ทำการแปลคำสั่ง ใช้เพื่ออธิบายโค้ดที่เราเขียนขึ้นครับ

  • // คำอธิบาย (ในกรณีที่คำอธิบายมีบรรทัดเดียว)
  • /*คำอธิบาย
    คำอธิบาย (ในกรณีที่คำอธิบายมีหลายบรรทัด)
    คำอธิบาย*/

Block (ขอบเขตคำสั่ง) ( "{", "}" )
คือ สัญลักษณ์ที่จะบอกขอบเขตการทำงานของแต่ละ function หรือ procedure และเป็นส่วนที่บรรจุคำสั่งต่างๆ (ตั้งแต่ 1 บรรทัดขึ้นไป) หรืออาจจะบรรจุบล๊อคย่อยๆได้อีกหลายบล๊อคเช่นกัน

  • {...คำสั่ง...} // ตัวอย่างของบล๊อคที่บรรจุคำสั่งเพียงบรรทัดเดียว
    (ในกรณีที่มีคำสั่งเพียง 1 บรรทัด ไม่จำเป็นต้องมี { } ก็ได้)

  • {
    .....คำสั่ง 1 ;
    .....คำสั่ง 2 ; // ตัวอย่างบล๊อคที่บรรจุคำสั่งหลายบรรทัด
    .....คำสั่ง 3 ;
    }
  • {
    ...{
    ........คำสั่ง 1 ; // ตัวอย่างบล๊อคที่บรรจุบล๊อคย่อย
    ...}
    }

Semi Colon เครื่องหมายสิ้นสุดคำสั่ง (;)
คือ สัญลักษณํแทนการสิ้นสุดคำสั่งแต่ละคำสั่ง (แต่ละคำสั่งจะต้องปิดท้ายด้วย ; ซึ่งหมายถึงจบคำสั่งนั้นๆ) จะไม่ใช้ในการปิดบล๊อค (ขอบเขตของคำสั่ง)

  • คำสั่ง 1;
    คำสั่ง 2;
    คำสั่ง 3;
  • คำสั่ง 1; คำสั่ง 2; คำสั่ง 3;

Method (ความสามารถของโปรแกรม)
คือ ส่วนของโปรแกรมที่อยู่ภายนอกโปรแกรมหลัก โดยจะนิยมเรียกกันว่าโปรแกรมย่อย (sub program) แนวคิดของ Method ก็คือการรวมคำสั่งที่ถูกใช้บ่อย และเราไม่จำเป็นต้องสนใจการทำงานภายในของ Method

Method สามารถแบ่งได้เป็น 2 ประเภท คือ

  • Function (ฟังก์ชั่น)
    เป็น Method ที่จะมีการส่งค่ากลับ เช่นเมื่อเราเรียกใช้งาน เราจะต้องนำตัวแปรมารับค่าที่ถูกส่งมาจาก Function
    (จะขอกล่าวโดยละเอียดในบทถัดไป)
  • Procedure (โพรซีเจอร์)
    เป็น Method ที่ไม่มีการส่งค่ากลับคืน เมื่อเราเรียกใช้จะไม่มีตัวแปรใดๆมารับค่า

Identifier (ไอเด็นติฟายเออร์)
คือ ชื่อที่ใช้สำหรับกำหนดให้กับส่วนประกอบต่างๆของโปรแกรม ไม่ว่าจะเป็น ตัวแปร ฟังก์ชั่น โพรซีเจอร์
(เป็นชื่อที่เราจะสามารถตั้งให้กับตัวแปรเก็บค่าต่างๆหรือชื่อฟังก์ชั่นได้ โดยมีเงื่อนไขตามแต่ละภาษากำหนด)
ประเภทของ Identifier มีดังนี้ คือ

  • Reserved Word (คำสงวน)
    คือ คำที่มีความหมายและเงื่อนไขการใช้ที่แน่นอน และไม่สามารถนำไปตั้งเป็นชื่อของตัวแปรได้

    auto , string , int, double, goto, case, do, while, if, else, break
    float, for, foreach, continue, default, long, void, enum, struct
    stack, const, return, switch, in, class, checked, override, event
    null, lock, random, private, public, protected, char, ref


    ** คำสงวนไม่จำเป็นต้องท่องนะครับ เมื่อได้ใช้บ่อยๆก็จะคุ้นเคยโดยอัตโนมัติ
    ** คำสงวนภายในโปรแกรม Visual Studio จะแสดงเป็นสีน้ำเงิน

  • User-Define Identifier
    คือ ชื่อที่ผู้เขียนโปรแกรมจะต้องตั้งให้กับตัวแปร ฟังก์ชั่น และ เม็ดตอด ต่างๆ เพื่อเป็นการระบุหน้าที่
    การใช้งานที่แตกต่างกันของแต่ละตัวแปร (หลักการตั้งชื่อตัวแปรจะขอกล่าวในบทถัดไป)

Chapter 6 'bout Magic Math...!!!

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

125 x 11 = ?
จากโจทย์นะครับ ให้แยก 125 ออกเป็น 12 กับ 5 นะครับ จากนั้นบวกกัน จะได้ 17 ใช่ไหมครับ
จากนั้นในส่วนของคำตอบให้เราคิด รอไว้เลยครับคือ 12_5 แต่ในช่องว่างเราจะใส่ตัวเลขลงไปเพียงหลักเดียวเท่านั้นนะครับ คือเลข 7 ส่วนเลข 1 จะนำไปทดในหลักถัดไปครับ เพื่อให้เข้าใจงั้นมาดูผลลัพธ์กันครับ

125 x 11 = 1375 (ในช่องว่างนำ 7 ไปใส่ จากนั้นนำ 1 ทดไปบวกกับเลขสองในหลักร้อย) นี่คือผลลัพธ์ครับ ง่ายไหม ?

มาดูการคูณเลขสี่หลักกับ 11 กันบ้างครับ

1547 x 11 = ?
จากโจทย์ให้จับ 1547 แยกออกเป็นสองส่วนครับ คือ 154 กับ 547 แล้วบวกกันครับ ได้เท่ากับ 701 นะครับเก็บไว้ในใจได้เลย จากนั้นเหมือนกับเลขสามหลักครับ เขียนคำตอบรอไว้เลยครับ 1___7 ในช่องว่างให้นำเลขที่คำนวณมาได้มาใส่ได้เพียงสามหลักนะครับ ที่เหลือนำไปทด เพื่อให้เข้าใจเรามาดูผลลัพธ์กันครับ
1547 x 11 = 17017 สำหรับคำตอบมันห่างจากคำตอบที่เราคะเนไว้ตอนแรกมากเหมือนกัน เกิดจากตัวทดครับ เราต้องสังเกตุและทดให้คล่องครับ ไม่เช่นนั้นอาจได้คำตอบที่ผิดได้นะครับ

รับปรับมุมมองในการโปรแกรมมิ่งสำหรับผู้เริ่มต้นเขียนโปรแกรม

รับปรับมุมมองในการโปรแกรมมิ่งจากเรื่องยากๆไม่เข้าใจ จะช่วยทำให้เป็นเรื่องง่ายและสนุก แอดมาคุยกันได้ครับ (ขอจำกัดไว้สำหรับผู้เพิ่งเริ่มต้นเขียนโปรแกรมเท่านั้น ในระดับสูงไปกว่านี้เช่นเขียนจนชำนาญแล้วจะไม่รับนะครับ)
Powered By Blogger