สอนเขียนโปรแกรมพื้นฐานครับ

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


  • ก่อนอื่นมาทำความเข้าใจกันก่อนครับ -

การเขียนโปรแกรมนั้นจะมีภาษา ในการเขียน ซึ่งหลายๆคนเข้าใจผิดว่าการเขียนโปรแกรม
นั้นจะต้องเก่ง ภาษาอังกฤษ แต่จริงๆ แล้วไม่ใช่ครับ การเขียนโปรแกรมมันมีภาษา ของมันเอง
เหมือนภาษา อีกภาษาหนึ่งบนโลก เช่น ภาษาไทย,ภาษาเยอรมัน,ภาษาอังกฤษ

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

เอาละครับก่อนอื่นมาดูเครื่องมือที่ต้องมีในการเขียนโปรแกรมด้วยภาษา Perl กันก่อนครับ
มี1ตัวครับ ให้ Download ไปครับ

  1. http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.817-MSWin32-x86-257965.msi

ติดตั้งให้เรียบร้อยครับ

บทที่ 1. พื้นฐานด้านตัวแปร
ก่อนอื่นมาทำความเข้าใจเรื่อง Interface กันก่อนครับ
แบแรกคือแบบ Console หรือบางคนเรียกว่าแบบดอส(แนะนำว่าเรียก Cosole ดีกว่าครับ)

อีกแบบคือ แบบ GUI (Graphic User Interface)

ซึ่งแบบ Console นั้นจะเป็นแบบจอดำๆ และแบบ GUI จะมีหน้าต่างสวยงามกว่ากันเยอะ
และเราจะเริ่มศึกษาเรื่อง Console กันก่อนครับ
ก่อนอื่น มาทำความเข้าใจกันก่อนนะครับว่า ตัวแปร คืออะไร
ตัวแปรคือสิ่งใช้ใช้แทนค่า ของ อะไรก็ตาม วัตถุ ,ข้อความ และตัวเลข
ให้คุณลองเปิด Notepad ขึ้นมาก่อน หากไม่รู้ว่า Notepad คืออะไร ให้ไปที่ Start->Run
แล้วพิมพ์ Notepad แล้วกด Enter ครับ แล้ว Notepad จะโผล่ขึ้นมา

แล้วพิมพ์


$thaisbuydotcom = "Hello"; 
$beekung = "Swassdee"; 
print "$thaisbuydotcom"; 
$stop = <STDIN>; 

ลงไปใน Notepad แล้วเซฟโดย File->Save as
แล้วเลือก Save as Type เป็น ALL FILE จากนั้นตั้งชื่อไฟล์ว่าอะไรก็ได้
แล้วให้ต่อท้ายด้วย .pl (จุดพีแอล) เช่นผมตั้งชื่อไฟล์ว่า Test ผมจะใส่ชื่อไฟล์ว่า Test.pl
จากนั้นให้กด Save เลยครับ แล้วให้เปิดไฟล์ดังกล่าวโดย ดับเบิ้ลคลิกดูครับ

จะได้ Hello ออกมาทางจอภาพ ดังรูป

ตัวแปรก็เปรียบเสมือนแก้วน้ำครับ
ทุกตัวแปร จะมีเครื่องหมาย $ นำหน้า ตัวแปรแบบนี้เรียกว่าตัวแปร String ครับ
ซึ่งตัวแปรแต่ละตัวจะต้องมีชื่อของมัน ซึ่งเรา(ผู้เขียนโปรแกรม) จะต้องตั้งชื่อให้มัน
$thaisbuydotcom = “Hello”;
หมายถึง ตัวแปร thaisbuydotcom แทนค่าด้วยคำว่า Hello
เปรียบเสมือน แก้น้ำที่เราตั้งชื่อแก้วใบนี้ว่า thaisbuydotcom แล้วใส่คำว่า Hello
ไว้ในแก้วใบนั้น
โดย
เครื่องหมาย $ เป็นการบอกเครื่องว่า นี่คือตัวแปรนะ
thaisbuydotcom คือชื่อตัวแปร ที่เราสามารถตั้งได้เอง
เครื่องหมาย = หมายถึง ค่าของตัวแปร เวลาเราจะกำหนดค่าของตัวแปร
(เวลาเราจะเอาอะไรไปใส่ไว้ในแก้ว ก็ให้เอาไว้หลังเครื่องหมาย = ครับ)
“Hello” หมายถึงคำว่า Hello โดย คำที่อยู่ภายใต้เครื่องหมาย “” โปรแกรม
จะถือว่าเป็น คำพูดครับ ส่วนเครื่องหมาย ; (Semi Colon) หมายถึง จบคำสั่งครับ

จากในโค้ดนี้


$thaisbuydotcom = "Hello"; 
$beekung = "Swassdee"; 
print "$thaisbuydotcom"; 
$stop = <STDIN>; 

เราจะเห็นได้ว่ามีตัวแปรสองตัวคือ
$thaisbuydotcom = “Hello”;
$beekung = “Swassdee”;

อ่านว่า
ตัวแปร thaisbuydotcom มีค่าเท่ากับ คำว่า Hello
ตัวแปร beekung มีค่าเท่ากับ คำว่า Swassdee

แล้วคุณสงสัยไหมทำไมเวลารัน(เปิดโปรแกรม)มันถึงมีแต่คำว่า Hello
ลองดูตรง print “$thaisbuydotcom”; สิครับ
print คือคำสั่งแสดงข้อความใดๆก็ได้ ออกทางหน้าจอ
เช่น print “Yes No OK”;
ก็จะมีคำว่า Yes No OK ออกทางหน้าจอ แต่กรณีนี้เราพิมพ์ว่า
print “$thaisbuydotcom”;
ก็หมายความว่า ให้พิมพ์ข้อความที่อยู่ในตัวแปร ที่ชื่อ thaisbuydotcom ออกมาทางหน้าจอครับ
ให้ย้อนกลับไปดูสิครับ ตัวแปรที่ชื่อ thaisbuydotcom เก็บคำว่าอะไรไว้
คำว่า Hello ไงครับ เพราะเหตุนี้ มันจึงแสดงคำว่า Hello ออกมาทางหน้าจอไงครับ
อย่างที่ผมบอกแหละครับ ว่าตัวแปรก็เปรียบเสมือนแก้วใบนึง ที่มีชื่อเรียก และเราสามารถ
เอาอะไรไปใส่ไว้ในแก้วก็ได้ ในกรณีนี้เสมือนว่าเราใส่ คำว่า Hello ไว้ในแก้วที่ชื่อ
thaisbuydotcom และคำสั่ง Print ก็มีหน้าที่ เทแก้ว ออกมาดูว่า ในแก้วมีอะไรอยู่ นั่นเอง

ถ้าเราลองเปลี่ยนบรรทัดที่เขียนไว้ว่า
print “$thaisbuydotcom”;
เป็นเป็น
print “$beekung”;

กลายเป็น


$thaisbuydotcom = "Hello"; 
$beekung = "Swassdee"; 
print "$beekung"; 
$stop = <STDIN>; 

แล้วเซฟจากนั้นลองรันดูสิครับ จาก Hello ในครั้งแรก กลายเป็น Swasdee แล้ว
เพราะอะไรรู้ไหมครับ เพราะว่า คำสั่ง print เปรียบเสมือนการเทแก้วไงครับ
ในครั้งแรกเราเลือกที่จะเทแก้วที่ชื่อว่า thaisbuydotcom ซึ่งใส่ Hello ไว้ในแก้ว
แต่ครั้งนี้เราเปลี่ยนใจ หันมาเทแก้ว ที่มีชื่อว่า beekung แทนไงครับ
ซึ่งแก้วใบที่ชื่อ Beekung เก็บคำว่า Swassdee ไว้ในแก้วไงครับ

พอทำความเข้าใจมาถึงขั้นนี้แล้วก็จะสงสัยว่า $stop = ; ล่ะคืออะไร
แน่นอนนครับ ว่า stop คือตัวแปร(ซึ่งเปรียบเสมือนแก้ว) ใส่ ไว้ในแก้ว
ปัญหาคือท่านอยากจะทราบว่า คืออะไร STDIN หมายถึง Standard Input
แปลง่ายๆก็คือทางเข้าของข้อมูล นั่นเอง จากโค้ดที่ผมให้ไป ลองเอาบรรทัดสุดท้าย ที่เขียนว่า
$stop = ; ลองลบบรรทัดนี้ออกดูสิครับ แล้วรันโปรแกรมดู จะเห็นว่า มันรันแว้บเดียวแล้วหายไปเลย
เป็นเพราะว่าหลักการทั่วไปของการเขียนโปรแกรม มีอยู่ว่า เมื่อทำคำสั่งทุกคำสั่งเสร็จหมดแล้ว มันจะปิดตัวเองลงไปครับ
คือคำสั่งให้หยุดรอการกดปุ่ม Enter ครับ โดยข้อมูลก่อนที่จะกด Enter จะถูกเก็บไว้ในตัวแปร ซึ่งในที่นี้คือ $stop
นั่นเอง เช่นพิมพ์ abc แล้วกด Enter โปรแกรมจะทำการเก็บ abc ใส่ไว้ในตัวแปรชื่อ $stop แล้วโปรแกรมก็จะหายไป เพราะจบคำสั่งแล้ว
หลายท่านคงยังไม่เข้าใจ เรามาลอง Code นี้กันครับ


$bef = <STDIN>;
print "$bef";
$stop = <STDIN>;

พอเซฟแล้วรันดูสิครับ จะเห็นว่าไม่มีอะไรเลย แน่นอนครับ $bef ตัวแรกกำลังทำงานคำสั่ง <STDIN> อยู่ นั่นก็คือรอให้เรากด Enter นั่นเอง
แต่อย่าเพิ่งกดEnter เฉยๆครับ ผมได้บอกแล้วว่า <STDIN> จะรอให้เรากด Enter แต่ข้อความที่เราพิมพ์ก่อนที่เราจะกด Enter จะถูกเก็บลงตัวแปร
ให้ลองเปิดโปรแกรม แล้วพิมพ์ hello แล้วกด Enter ครับ โปรแกรมจะตอบกลับมาว่า Hello เหมือนกับที่เราพิมพ์เลย
อย่าเพิ่งดีใจนะครับ มันยังไม่เข้าใจภาษามนุษย์หรอก ที่มันตอบว่า Hello ได้ นั้น เป็นเพราะมันเลียนแบบ สิ่งที่คุณพิมพ์ครับ
โดยมีโครงสร้างดังนี้
$bef = <STDIN>;
หมายถึง ทำงานคำสั่ง STDIN แล้วนำข้อมูลบรรจุลงในตัวแปร(แก้วน้ำ) ชื่อ bef ซึ่งเราพิมพ์ Hello แล้วกด Enter ทำให้ $bef เก็บคำว่ากับ Helloไว้
(แปลเป็นภาษาคนได้ทำนองว่า แก้วที่ถูกตั้งชื่อว่า bef ใส่ข้อความว่า Hello ไว้ในแก้ว)
บรรทัดที่สอง เขียนว่า print “$bef”;
หมายถึง แสดงค่าที่ตัวแปร bef เก็บไว้ ซึ่งก็คือ Hello ที่เราพิมพ์ไปในบรรทัดแรกนั่นเอง(เทแก้วชื่อ Bef ออกมาดูว่าในแก้วมีอะไรนั่นเอง)
$stop = <STDIN>;
เป็นการหยุดโปรแกรมให้อยู่เฉยๆ ไม่จบไปก่อนที่เราจะทันได้ดูผลของโปรแกรม

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

ดีครับ ทำให้โลกเห็นเลยครับ

ของดีๆแบบนี้ต้อง +1

น่าจะอยู่ How-to ได้นะครับ (ย้ายให้) +1

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

รอบทความต่อไปนะครับ