2011/08/27

Object Pascal - ตัวแปรและตัวดำเนินการ

สวัสดีเพื่อน ๆ พี่ ๆ น้อง ๆ ทุกคนครับ
เมื่อวานผมไม่ได้มาเขียนเพิ่ม หวังว่าจะยังไม่ลืมนะครับ ;)

   วันนี้ผมจะมาทบทวนเรื่องตัวแปรสักหน่อย เรื่องนี้เป็นพื้นฐานที่สำคัญมาก ๆ รวมถึงการดำเนินการกับตัวแปรด้วย

   ยังจำกันได้ไหมครับว่ากฎการตั้งชื่อตัวแปรมีอะไรบ้าง ถ้าจำไม่ได้ให้กลับไปอ่านะครับ :)
ผมจะมาเพิ่มกฎพิเศษอีกข้อนึง แต่คงเรียกว่ากฎพิเศษไม่ได้หรอก เพราะมันไม่เหมือนกับกฎการตั้งชื่อตัวแปรในภาษาอื่น
   นั้นก็คือ การตั้งชื่อตัวแปรที่ซ้ำกับคำสงวน เราสามารถใช้อักขระพิเศษ & นำหน้าได้ ไม่ใช่แค่ใช้กับชื่อที่ซ้ำกับคำสงวนเท่านั้น ยังใช้กับชื่อตัวแปรธรรมดาได้อีกด้วย ไม่ใช่แค่ใช้กับ Delphi ได้นะครับ ยังใช้กับ Free Pascal (Lazarus) ได้อีกด้วย เพราะว่าภาษา Object Pascal จะถือว่าตัวพิมพ์เล็ก และตัวพิมพ์ใหญ่เป็นตัวเดียวกัน การที่จะตั้งชื่อตัวแปรให้ไม่ซ้ำกันคงจะยาก
    เช่นในภาษา C ถ้าจะใช้ตัวแปรเก็บค่าที่เหมือนกัน 2 ค่า บางคนอาจจะประกาศชื่อเป็น a, A ซึ่งถือเป็นคนละตัวกันในภาษา C แต่ใน Object Pascal จะถือเป็นตัวแปรตัวเดียวกัน

ผมขอเอาตารางคำสงวนจาก help ของ Delphi XE มาให้ดูนะครับ

(ms-help://embarcadero.rs_xe/rad/Fundamental_Syntactic_Elements.html)

   ลองใช้ & มาสร้างตัวแปรที่ใช้ชื่อในคำสงวนพวกนั้นดูครับ ;)



มาดูเรื่องการดำเนินการ (Expression) กันดีกว่าครับ
    ลองดูรูปแบบการดำเนินการแบบต่าง ๆ ดูกัน ~

X - ตัวแปร
@X - ค่าตำแหน่งในหน่วยความจำของตัวแปร X
10 - ค่าคงที่ตัวเลข
Write(X) - เรียกฟังก์ชัน
X * Y - X คูณ Y
X / (X - 1) - เอา X - 1 มาหาร X พูดแบบนี้อาจจะงง เปลี่ยนใหม่เป็น หาร X ด้วย X - 1 ดีกว่า
X := 5 - การกำหนดค่า
X = 5 - ตรวจสอบว่า X = 5
อย่างสับสนเครื่องหมาย := กับ = นะครับ
:= คือการนำค่าทางขวาไปกำหนดให้ตัวแปรทางซ้าย ส่วน = คือการตรวจสอบว่า ค่าทั้งสองค่า เท่ากันหรือไม่
X in SetA - ตรวจสอบว่า X อยู่ใน เซ็ต ที่ชื่อ SetA หรือไม่
not B - ค่าตรงข้ามทางตรรกศาสตร์ของตัวแปร B
หมายถึง
  not True = False (ไม่จริง = เท็จ)
  not False = True (ไม่เท็จ = จริง)
['a', 'b', 'c'] - เซ็ต
Char(50) - การเปลี่ยนชนิด

เรื่องที่เขียนมาเมื่อกี้อาจจะงง ๆ ไม่ต้องไปสนใจครับ เดี๋ยวได้ใช้แล้วจะเข้าใจเอง :)

ลองมาดูตัวดำเนินการกันดีกว่าครับ

Arithmetic Operators (ตัวดำเนินการทางคณิตศาสตร์)
คิดว่าคงไม่ต้องบอกมากนะครับ ว่าแต่ละเครื่องหมาย หมายถึงอะไร
+ - * / div mod
ขอบอกแค่ 2 ตัวนะครับ คือ div กับ mod
   div คือการหาร แล้วตัดเศษทิ้ง ตัดทิ้งนะครับ ไม่ปัดขึ้น ค่าที่ได้จะเป็นจำนวนจริง
เช่น
3 div 2 = 1
10 div 3 = 2
   mod คือการหารเอาเศษ หรือก็คือ x mod y = x - (x div y) * y
เช่น
3 mod 2 = 1
10 mod 3 = 1
10 mod 4 = 2
ควรระวังเวลาใช้ x / y , x div y , x mod y เมื่อ y = 0 จะทำให้เกิด Runtime Error

Boolean Operators (ตัวดำเนินการทางตรรกศาสตร์)
not (negation)
and (conjunction)
or (disjunction)
xor (exclusive disjunction)
สามารถอ่านเพิ่มเติมได้ในหนังสือคณิต ม. 4 นะครับ

Relational Operators
=     เท่ากับ
<>   ไม่เท่ากับ
<     น้อยกว่า
>     มากกว่า
<=   น้อยกว่าหรือเท่ากับ
>=   มากกว่าหรือเท่ากับ

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


ลำดับความสำคัญของตัวดำเนินการ
  การดำเนินการจะเรียงลำดับความสำคัญไว้ตามนี้ครับ

(ms-help://embarcadero.rs_xe/rad/Expressions_(Delphi).html)

ตัวอย่างเช่น 1 + 3 * 2 จะบวก หรือคูณก่อน ?
  คำตอบคือ 1 + 3 * 2 = 1 + (3 * 2) = 1 + 6 = 7
ซึ่งก็คือ คูณมีลำดับความสำคัญก่อนบวก
สำหรับตัวดำเนินการที่มีความสำคัญเท่ากัน เช่น * / div mod จะทำจากซ้ายไปขวา เช่น
  3 * 2 / 6 * 5 mod 2 ซึงก็คือ ((3 * 2) / 6) * 5 = (6 / 6) * 5 = 1 * 5 = 5

วันนี้ขอจบลงเท่านี้นะครับ ยังไม่มีการบ้านเช่นเคย แต่ขอให้ไปฝึกใช้เครื่องหมายกันดูนะครับ
สวัสดีครับผม ^-^




2011/08/25

Object Pascal - ค่าคงที่

สวัสดีครับ เจอกันอีกแล้วนะครับ ;)

ก่อนอื่นผมขอเฉลยการบ้านของเมื่อวานนะครับ

3) ข้อนี้ทำเหมือนในตัวอย่างเลยครับ



4) ข้อนี้ก็ไม่มีอะไรครับ ให้รับข้อมูลเป็นแบบ string แทน



เป็นยังไงบ้างครับ ไม่ยากเลยใช่ไหมหล่ะ :)

มาเข้าเรื่องของวันนี้ดีกว่าครับ
    ซึ่งก็คือเรื่อง ...  ค่าคงที่ ยังไงหล่ะครับ ^_^

แล้วไอค่าคงที่มันคืออะไรหล่ะ ?
    มันก็เหมือนกับตัวแปรที่เก็บค่า ๆ เดียวตลอดการทำงานของโปรแกรม โดยที่ไม่สามารถเปลี่ยนค่าของมันได้
    ตัวอย่างเช่น ค่าคงที่ทางคณิตศาสตร์ เช่น ค่า พาย มีค่าประมาณ 3.14159265358979324
เราอาจจะประกาศค่าคงที่ Pi = 3.14159265358979324 ไปเลย
วิธีการประกาศง่ายกว่าการประกาศตัวแปรอีกครับ

const
   Pi = 3.14159265358979324;

หรือจะกำหนดชนิดของค่าคงที่ก็ได้ เช่น
const
   Pi : Double = 3.14;

ลองดูตัวอย่างโปรแกรมเลยครับ


    ส่วนใหญ่แล้ว ชื่อค่าคงที่จะใช้ตัวใหญ่ทั้งหมด แต่ก็ไม่ได้มีกฎอะไร ที่ให้ใช้ตัวใหญ่เพราะเราจะได้แยกความแตกต่างระหว่างตัวแปรกับค่าคงที่ได้ แต่ในภาษา Object Pascal จะถือว่าตัวอักษรตัวใหญ่ กับตัวเล็กถือเป็นตัวเดียวกับ เช่น A กับ a เป็นตัวเดียวกัน
    เราจึงสามารถเขียนฟังก์ชัน Writeln เป็น writeln หรือ WriteLn หรือ WRITELN หรือ wrITeLN ก็ได้ มีความหมายเหมือนกัน
    เรายังสามารถพิมพ์คำสั่งหลายคำสั่งในบรรทัดเดียวกันก็ได้ แต่อย่าลืมใส่ ; (Semi-Colon) ปิดท้ายด้วยหล่ะ
    เช่น เราจะพิมพ์ว่า
   Write('Input: '); Readln(R); Ans = R * R; Writeln('Ans = ', R:0:2);
    แบบนี้ก็ไม่ผิดครับ แต่จะทำให้เราอ่านยาก เวลาเขียนโปรแกรมจึงควรจะพิมพ์ให้เราอ่านง่ายมากที่สุด

    หัวข้อของวันนี้ก็จบลงเพียงเท่านี้
    เรื่องนี้ไม่มีอะไรยากครับ วันนี้ผมขอไม่ให้การบ้านนะครับ ^_^ พอดีพึ่งกลับมาถึงบ้าน คิดโจทย์ไม่ทัน ต้องขออภัย สำหรับคนที่รอ
    ส่วนพรุ่งนี้ผมกลับดึกมาก คงไม่ได้มาเขียนต่อ ยังไงก็ต้องขอโทษล่วงหน้าด้วยนะครับ

สำหรับวันนี้ก็ สวัสดีครับ

2011/08/24

Object Pascal - ตัวแปร

สวัสดีครับ กลับมาเจอกันอีกเช่นเคย จนถึงตอนนี้ ผมขอขอบคุณเพื่อน ๆ พี่ ๆ น้อง ๆ ทุกคนที่เข้ามาอ่านนะครับ
ถึงจะมีไม่กี่คนก็เถอะ :)

ก่อนอื่นเลยผมขอเฉลยการบ้านของเมื่อวานก่อนนะครับ

1) โจทย์คือให้พิมพ์ชื่อของตนเองลงไป ก็ง่าย ๆ ครับ จัดยัดลงใน Write หรือ Writeln ได้เลยครับ
แล้วก็อย่าลืมใส่ Readln; ต่อท้ายด้วยนะครับ ^-^


2) ข้อนี้ก็ไม่มีอะไรครับ ใช้ Writeln 3 ตัวก็ได้แล้วครับ



เป็นไงบ้างครับ ไม่ยากเลยใช่ไหม

ก่อนจะเริ่มในส่วนของวันนี้ พอดีมีคนถามมาว่า มีโปรแกรมอื่นที่ใช้แทน Delphi ได้ไหม
     มีครับ เป็นโปรแกรมฟรี ก็คือ Lazarus ครับ โหลดได้จากเว็บของ Free Pascal ครับ

สำหรับการสร้าง Project ใน Lazarus นะครับ ให้สร้างแบบ Program ธรรมดา ไม่ต้องสร้างแบบ Console Application นะครับ เพราะมันเป็นคนละแบบกัน



ส่วน Source Code ที่มันเขียนมาให้ ก็ไม่ต้องไปสนใจครับ ให้เขียน Code ของเราในส่วนของ begin - end. ก็พอครับ ลองดูในรูปนะครับ



เอาละครับ มาถึงหัวข้อในวันนี้กันครับ
วันนี้เราจะมาเรียนเรื่อง ตัวแปร กันครับ
แล้วตัวแปรมันคืออะไรหล่ะ
     ตัวแปร (Variable) ก็คือตัวเก็บข้อมูลครับ คงจะเคยเจอกันในคณิตแล้ว เช่น ตัวแปร x, y, z อะไรทำนองนั้น
     แต่ตัวแปรในการเขียนโปรแกรมจะต้องกำหนดชนิดของตัวแปร เช่น จำนวนเต็ม จำนวนจริง ข้อความ ตัวอักษร ฯลฯ
     ตัวแปรแต่ละชนิดจะเก็บข้อมูลต่างชนิดไม่ได้นะครับ เช่นประกาศตัวแปรให้เก็บจำนวนเต็ม จะไปเก็บจำนวนจริง (จำนวนที่มีทศนิยม) ไม่ได้ นอกจากจะแปลงค่าจำนวนจริงให้เป็นจำนวนเต็มก่อน (เช่น ปัดทศนิยมขึ้น หรือตัดทศนิยมทิ้ง)
    รูปแบบการประกาศตัวแปรในภาษา Object Pascal ก็ไม่ยากครับ ลองมาดูกันเลยครับ

รูปแบบคือ

var
  Var_Name: Var_Type;

ลองดูตัวอย่างกันครับ


     จากในรูปนะครับ เมื่อเราจะประกาศตัวแปร เราจะต้องประกาศคำว่า var ก่อน เพื่อบอกว่า จะประกาศตัวแปรแล้วนะ
     จากบรรทัดที่ 9 นะครับ ผมกระกาศว่า Num: Integer; ซึ่งก็คือ ประกาศตัวแปรที่ชื่อว่า Num ให้เป็นชนิด Integer (จำนวนเต็ม) บรรทัดที่ 10 คือ ประกาศตัวแปร 2 ตัว ชื่อว่า Str1 กับ Str2 เป็นชนิด string (ข้อความ)
     ส่วนบรรทัดที่ 11 จะเห็นว่า ผมประกาศตัวแปรชื่อว่า Sum เป็น จำนวนจริง แล้วกำหนดค่าเริ่มต้นให้กับตัวแปรเป็น 0
    เมื่อประกาศตัวแปร ก่อนการใช้ตัวแปร เราจะต้องกำหนดค่าให้กับตัวแปรก่อนเสมอ
    เพราะว่า เมื่อมีการประกาศตัวแปร จะมีการจองหน่วยความจำขึ้นมา ซึ่งหน่วยความจำนั้นอาจจะมีข้อมูลเก่าอยู่ที่เป็นค่าอะไรก็ไม่รู้

    แล้วมันมีชนิดของตัวแปร (Variable Type) อะไรบ้างหล่ะ
    ถ้าจะแบ่งออกเป็นกลุ่มใหญ่ ๆ จะแบ่งได้เป็น จำนวนเต็ม, จำนวนจริง, อักขระ (ตัวอักษร 1 ตัว), สายอักขระ (ข้อความ / ตัวอักษรหลายตัว), ค่าทางตรรกศาสตร์ (จริงกับเท็จ)

     แล้วแต่ละกลุ่มยังมีการแบ่งย่อยออกไปอีกตามขนาดของหน่วยความจำที่ใช้
   ตัวอย่างเช่น
     Integer ใช้หน่วยความจำ 4 byte เก็บตัวเลขได้ตั้งแต่ -2,147,483,648 จนถึง 2147483647 หรือก็คือ 2^31 ถึง 2^31-1 นั้นเอง ที่ต้อง -1 เพราะว่ารวมเลข 0 เข้าไปในค่าบวกด้วย
     แต่ถ้าไม่ต้องการจำนวนที่ติดลบหล่ะ เช่นต้องการเก็บจำนวนนักเรียน มันไม่มีทางติดลบแน่ ๆ มันก็มีตัวแปรอีกแบบครับ ก็คือตัวแปรแบบ unsigned หรือก็คือ ตัวแปรที่ไม่คิดเครื่องหมาย
     ใน Object Pascal เรียกตัวแปร Integer ที่ไม่คิดเครื่องหมายว่า Cardinal ใช้ 4 byte เหมือนกันครับ เก็บข้อมูลได้ตั้งแต่ 0 ถึง 2^32-1 หรือก็คือ 0 ถึง 4,294,967,295 นั้นเอง

เอาหล่ะครับ ลองมาดูชนิดตัวแปรแบบต่าง ๆ กันครับ



ในรูปเป็นตัวอย่างคร่าว ๆ นะครับ

     ต่อไปคือ กฎการตั้งชื่อตัวแปรครับ เท่าที่ผมจำได้
          เอ๊ะ เดี๋ยวนะ นี่แสดงว่ามั่วเองหมดเลยหล่ะสิ
               ผมลืมบอกไปครับว่า ขณะที่ผมเขียนบทความ ผมไม่ได้เปิดหนังสือนะครับ เขียนตามที่จำได้ ช่วนค่าที่ตัวแปรเก็บได้ ผมใช้คำสั่งเรียกดูเอาครับ ไม่ได้มั่วขึ้นมาเอง (จริง ๆ นะ)

    กฎ ก็ไม่มีอะไรมากครับ ผมขอเขียนเป็นข้อ ๆ ตามนี้เลยครับ
        1) ตัวอักษรตัวแรกต้องเป็นภาษาอังกฤษตัวพิมพ์เล็ก พิมพ์ใหญ่ หรือ underscore ( _ ) เท่านั้น ห้ามขึ้นต้นด้วยตัวเลข
        2) ตัวอักษรอื่น ๆ ที่ไม่ใช่ตัวแรก จะเป็นภาษาอังกฤษพิมพ์เล็ก พิมพ์ใหญ่ underscore หรือ ตัวเลข เท่านั้น ห้ามใช้อักขระพิเศษ เช่น / \ | & ^ % $ # @ ! + - = * ฯลฯ
        3) ชื่อตัวแปรต้องห้ามซ้ำกับคำสงวนในภาษา Object Pascal เช่น program begin end var for if else then do while repeat until คำสงวนก็คือคำที่พิมพ์แล้วมันจะเด่นกว่าตัวอื่นครับ ดูไม่ยาก ;)
        จริง ๆ ก็น่าจะมีแค่นี้นะครับ แต่เหมือน Delphi เวอร์ชันใหม่ ๆ จะรองรับภาษาอื่น ๆ ที่ไม่ใช่ภาษาอังกฤษด้วย เช่นประกาศชื่อตัวแปรว่า var ตัวนับ: Integer; สามารถใช้ได้ครับ

ต่อไปมาดูการกำหนดค่าให้กับตัวแปรกันครับ
     เราสามารถกำหนดค่าให้กับตัวแปรตอนประกาศได้ครับ แต่ต้องเป็นการประกาศ 1 ตัวเท่านั้น เช่น



จากภาพจะเห็นว่า เราประกาศตัวแปร A เป็น Integer แล้วกำหนดค่า เป็น 10 แบบนี้ได้ครับ แต่บรรทัดที่เขียนว่า C, D: Integer = 9; แบบนี้ไม่ได้นะครับ ต้องกำหนดค่าให้กับตัวแปรเพียงตัวเดียวเท่านั้น

เครื่องหมายกำหนดค่า ( := )
     เครื่องหมายนี้คือการเอาค่าขวามือ ไปกำหนดให้กับตัวแปรทางซ้ายมือ เช่น



   จากรูปนะครับ จะเห็นว่า เราให้ A เป็น 10 ให้ B เป็น A + 20 ก็คือ 10 + 20 = 30 นั้นเอง แล้วก็ให้ C เป็น B + A = 30 + 10 = 40

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


    ในภาพคือตัวอย่างโปรแกรมคำนวณพื้นที่วงกลม โดยการรับค่ารัศมี แล้วคำนวณจากสูตร พาย อาร์ กำลังสอง นั้นเอง
    แต่เมื่อรันแล้วใส่ตัวเลขลงไป คำตอบมันออกมาแปลก ๆ


    อ่าว ทำไมมันออกมาเป็น 1.32665000000000E+0002 หล่ะ มันคืออะไร ?
        มันก็คือ 1.32665 * 10^2 นี่เองครับ อย่าตกใจ
    แล้วจะให้มันแสดงผลแบบที่อ่านง่าย ๆ จะทำยังไงหล่ะ ?
        ต้องกำหนดค่าจำนวนทศนิยมให้มันครับ วิธีก็แสนง่าย



    เปลี่ยนจากแสดง A ไปเป็น A:0:2
    แล้วมันคืออะไรหล่ะ ?
    มันจะมีค่า 2 ตัวครับ จากตัวอย่าง ตัวแรกคือเลข 0 หมายถึง ให้กำหนดช่องว่างเพื่มให้พอดี 0 ช่อง ตรงนี้ผมคิดว่าอย่าพึ่งไปสนใจมันเลยครับ เรามาดูตัวหลังดีกว่า เลข 2 ข้างหลังหมายถึง ให้แสดงทศนิยม 2 ตำแหน่งนั้งเอง ลองรันดูใหม่ครับ เราจะได้คำตอบออกมาเป็น 132.66

ถึงตรงนี้แล้วผมคิดว่า ผู้อ่านคงจะงงกันไม่น้อย ขนาดผมเขียนเองยังงงเองเลยครับ ;)

แต่ยังไงผมก็จะฝากการบ้านไว้นะครับ อย่าลืมทำกันด้วยหล่ะ
3) จงเขียนโปรแกรมรับค่ารัศมี แล้วคำนวนหาเส้นรอบวงของวงกลม ให้ใช้สูตร เส้นรอบวง = 2 * พาย * r
4) จงเขียนโปรแกรมรับค่าชื่อผู้ใช้ แล้วแสดงข้อความว่า Hello, ชื่อที่รับเข้ามา.
   เช่น พิมพ์ชื่อไปว่า Acoshift
   ให้แสดงผลออกมาเป็น Hello, Acoshift.
   ( มี . ข้างหลังด้วยนะครับ เพื่อเพิ่มความยาก )

บทนี้อาจจะยากสักหน่อย แต่ขอให้พยายามลองเขียนดูครับ เขียนมั่ว ๆ ดูได้ครับ คอมไม่พังหรอก ^-^
ถ้ามีข้อสงสัยอะไรยังไงก็ส่งเมลมาถามผมได้นะครับที่ acoshift(at)gmail.com ผมจะรีบตอบกลับทันที่ที่เห็นเมลนะครับ

ไว้เจอกันบทความหน้าครับ

2011/08/23

Object Pascal - Hello World

สวัสดีเพื่อน ๆ พี่ ๆ น้อง ๆ ทุกท่านครับ กลับมาเจอกันอีกแล้ว
ตามที่ผมสัญญาไว้เมื่อวาน วันนี้ผมจะมานำเสนอวิธีเขียนโปรแกรมบน Console ครับ :)
แต่ เอ... แล้วไอ Console ที่ว่ามันคืออะไรหล่ะ ?
ถ้าจะพูดกันแบบง่าย ๆ เลย มันก็คือโปรแกรมที่แสดงผลใน cmd ยังไงหล่ะครับ
แล้วไอ cmd ที่ว่ามันคืออะไรหล่ะ ?
มันก็คือหน้าจอดำ ๆ ที่เอาไว้พิมพ์คำสั่งไงครับ ไม่เชื่อลองกด Start->Run แล้วพิมพ์ cmd แล้วกด Enter ดูสิ



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

     เอาละครับ บ่นมาซะยาว ลองมาเขียนโปรแกรมง่าย ๆ ที่เป็นพื้นฐานของการเขียนโปรแกรมทุกภาษากันก่อนเลย
นั้นก็คือ !!! โปรแกรม Hello World !!!
โปรแกรม Hello World คือโปรแกรมที่แสดงข้อความว่า Hello World ...
     แค่นี้แหละครับ เบสิกสุด ๆ แล้ว เอาละครับ มาลุยกันเลย !!

ในที่นี้ผมใช้โปรแกรม Delphi XE นะครับ จะได้เวอร์ชันอื่นก็ได้ครับ เหมือนกัน

     หลังจากเปิดโปรแกรมมา ให้สร้าง Project ใหม่ กดที่ File->New->Other...
แล้วเลือก Console Application ตามภาพเลยครับ



พอกด OK แล้วจะได้หน้าจอ (ไม่)โล่ง ๆ มีตัวหนังสือเขียนอยู่




มันคืออะไร ? อย่าพึ่งไปสนใจครับ ให้ลบส่วนที่อยู่ระหว่าง begin ถึง end. ออก แบบนี้ครับ



คำสั่งแรกที่ต้องรู้คือคำสั่ง Write กับ Writeln
     ... แล้วมันต่างกันยังไงหล่ะ
          คำสั่ง Write ก็เอาไว้แสดงข้อความยังไงหล่ะครับ ส่วน Writeln มาจากคำว่า Write Line ซึ่งก็คือ หลังจากที่แสดงข้อความแล้ว ให้ขึ้นบรรทัดใหม่นั้นเอง
     ข้อความในภาษา Object Pascal จะใช้ ' ' ครอบข้อความ เช่น 'Hello World' ฯลฯ
     ตัวอย่างการแสดงข้อความ Writeln('Hello World');
     เราสามารถขึ้นบรรทัดใหม่โดยการพิมพ์ว่า Writeln; เฉย ๆ ก็ได้ครับ

* ในภาษา Object Pascal จะเริ่มทำงานตามคำสั่งที่อยู่ระหว่าง begin ถึง end. ก่อนเสมอ ซึ่งก็คือ ส่วนหลักของโปรแกรม หรือเรียกอีกอย่างกว่า Main function นั้นเอง

เอาหล่ะครับ มาลองกันเลย !!!



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

ลองรันกันดูนะครับ


เป็นไงครับ โปรแกรมแรกของพวกเราโปรแกรม Hello World

แต่ก่อนจะจากกันไปผมก็ขอฝากการบ้านไว้สักเล็กน้อย ให้ไปฝึกทำกันดูครับ
เพราะการเขียนโปรแกรมต้องเขียนบ่อย ๆ จะทำให้เก่งขึ้นไงครับ :)

การบ้าน

1) จงเขียนโปรแกรมแสดงชื่อของตัวเองออกมา

2) จงเขียนโปรแกรมให้แสดงผลดังนี้ (ให้เว้นบรรทัดหลังจบ 1 คำ)
Apple
Banana
Carrot

การบ้าน 2 ข้อคงไม่เยอะเกินไปนะครับ ^-^
เดียวคราวหน้าผมจะมาเฉลยการบ้านให้ครับ
แต่ถ้าใครมีข้อสงสัย หรืออยากให้ผมตรวจการบ้านให้ก็ส่ง Source Code มาได้ครับ ที่เมลของผม
คือ acoshift(at)gmail.com อย่างลืมเปลี่ยน (at) เป็น @ ด้วยนะครับ ^w^

ไว้เจอกันใหม่ครับผม