ขอบเขตของตัวแปรในภาษา C++ (Scope of variables In C++)

ตัวแปรทั้งหมดที่เราทำการประกาศค่าไว้ก่อนแล้ว นั้นในภาษา C++ การประกาศค่าตัวแปรจะทำที่ใดของ source code ก็ได้ และระหว่างการประกาศตัวแปรนั้น แต่ละขอบเขตของฟังค์ชัน ( Scope of Function ) นั้นถึงแม้จะชื่อเหมือนกัน แต่ว่าก็ไม่ได้หมายความว่าจะเป็นตัวแปรจะค่าเหมือนกันแต่อย่างใด ซึ่ง ตัวแปร A ที่อยู่ใน ฟังค์ชัน X จะไม่เท่ากับค่าของตัวแปร A ที่อยู่ในฟังค์ชัน Y แต่อย่างใด เพราะว่าอยู่กันคนละขอบเขตกันเราเรียกตัวแปรในขอบเขตแบบนี้ว่า ตัวแปรเฉพาะที่ (ในบทความนี้ขอพูดทับศัพท์ไปเลย เพื่อให้เข้าใจง่ายว่า Local Variables) ซึ่งจะมีค่าและสามารถใช้งานได้เฉพาะฟังค์ชัน ที่มันเกิดร่วมด้วยเท่านั้น


ตัวอย่าง 1

int X () {

   int A = 5;

   return A;

}

int Y () {

   int A = 10;

   return A;

}

int main() {

   std::cout < < X()<< ”;

   std::cout << Y()<< ”;

   return 0;

}


ผล

5 10


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


ตัวอย่าง 2

int x = 5; // Global Variable

int main() {

   double y = 3.1415; // Local Variable

   std::cout < < y << ”; std::cout << x << ”; return 0;

}


ผล

3.1415 5


แต่ ……

มันยังมีข้อที่เรามองข้ามไปคือ ถ้าเราประกาศตัวแปร เหมือนกับ Global Variable แล้วนั้น จะทำให้ตัว Compiler มองว่าตัวที่ประกาศอยู่ในฟังค์ชันคือตัวแปรที่มีความสำคัญหรือ ศักดิ์มากกว่า


ตัวอย่าง 3

int x = 5;

int main() {

   double x = 3.1415; /* ทำการซ่อน Global Variable x = 5 ไว้ */

   std::cout < < x << ”; /* แสดงตัวค่าตัวแปร Local Variable แทน */

   std::cout << ::x << ”;

   /* ใช้ Scope resolution operator มาวางให้ข้างหน้าตัวแปร

   เพื่อบ่งบอกว่าเราต้องการใช้ตัวแปร Globale Variable

   แทน Local Variable*/

   return 0;

}


ผล

3.1415 5


จากตัวอย่างจะเห็นว่าเราจะทำการประกาศตัวแปรทับซ้อนกันก็ได้ได้แต่ว่าไม่เป็นผลดีและอาจเกิดการสับสนใจการใช้งานได้ ทำให้ส่วนใหญ่แล้วจะใช้ Local Variable กันเยอะมาก เพราะว่าจัดการได้ง่าย แต่ก็มีในหลายๆ กรณีเช่นกันที่ต้องใช้ อย่างเช่นตัวแปรที่ต้องการแชร์ค่าเริ่มต้นการทำงานเช่นค่าของ Percen (100) หรือ ค่าของ Pi (3.1415) เป็นต้น เพราะเป็นค่าที่ไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ

Note !

คุณสามารถที่จะบอก Compiler ว่าคุณต้องการใช้ Global Variables แทนการใช้ Local Variable ได้เมื่อคุณตั้งชื่อ Variable ภายใน Function นั้นเหมือนกับ Global Variable โดยใช้ :: (The Scope Resolution Operator) ไว้ด้านหน้าตัวแปรนั้นๆ …

:: identifier

class-name :: identifier

namespace :: identifier

ซึ่งการอ้างถึงของ :: (The Scope Resolution Operator) นั้นสามารถอ้างได้ตั้งแต่ variable, class และnamespace ได้ด้วย

ซึ่งจาก "ตัวอย่างที่ 3" ถ้าคุณมี Nested Local Scopes (มี Scope ตัวแปรซ้ำซ้อนกับ Global Variable ) ตัว Compiler จะไปเอาค่าหรืออ้างอิงตัวแปรที่อยู่ใน Function ก่อนเสมอ ถ้าจะใช้ Global Variable ก็เพียงทำหลักการของ The Scope Resolution Operator นั้นเอง

จากที่เราได้รู้แล้วว่า คำว่า Global Variables นั้นสามารถที่จะอ้างอิงได้จากทุกๆ ที่ใน code หรือใน ฟังค์ชัน ซึ่งจะคงอยู่ตลอดหลังจากการตั้งตัวแปรนั้นๆ ขึ้นมาใช้งานแล้ว แต่คำว่าตัวแปรเฉพาะที่ Local Variables นั้นตัวแปรจะถูกจำกัดอยู่ในขอบเขตที่ตัวเองได้เกิดขึ้น แต่ถ้าคุณสร้างมันในตอนแรกของฟังค์ชัน (ในที่นี่หมายถึง main ฟังค์ชันของ C++) ตัวแปรนั้นๆ จะอยู่ใน main ฟังค์ชันเท่านั้น และจะไม่ไปยุ่งกับตัวแปรอื่นๆ ในฟังค์ชันอื่นๆ ด้วยถึงแม้ชื่อจะเหมือนกันในฟังค์ชันอื่นๆ ก็ตามที

ใน C++ นั้น ขอบเขต ของ Local Variables นั้นจะอยู่ที่ ( brackets { } signs ) นั้นเอง ซึ่งถ้าคุณตั้งมันในขอบเขตดังกล่าวแล้ว ตัวแปรจะไม่ยุ่งเกี่ยวกับภายนอกฟังค์ชันแน่นอน


ตัวอย่าง 4

int main(){

   for (int i = 0; i < 100; ++i) {

      int x = 42;

      if (x < i) {

         double x = 3.14; std::cout << x; // Output ที่จะ Print ออกมาจากหน้าจอคือ 3.14

      }

      std::cout << x; // Output ที่จะ Print ออกมาจากหน้าจอคือ 42

      } // ส่วนนี้จะ Error เพราะว่าเราไม่ได้ตั้งตัวแปรไว้ในขอบเขตนี้ ด้วยเหตุผลได้กล่าวไปแล้วในข้างต้น

   std::cout << x;

   return 0;

}


จากเนื่อหาด้านบนคงทำให้หลายๆ คนเห็นภาพมากขึ้นในเรื่องของขอบเขตของตัวแปรในภาษา C++ นะครับ

อ้างอิงจากหนังสือ C++ in a Nutshell ของ O’Reilly


เรียนโปรแกรมมิ่ง หรือ Computer Science จงเป็นเจ้านายภาษา …

ขอท้าวความนิดนึง ว่าทำไมผมถึงเขียนแบบนี้

คืออันนี้ผมไป ได้มาจากพี่เดฟ (ithilien_rp) post ตอบไว้ใน pantip.com โดยที่เจ้าของกระทู้เขียนว่า ในlonghorn นั้น microsoft จะใช้ภาษาใหม่ ซึ่งก็คือ mc++ ดังนั้นขอให้พวกโปรแกรมเมอร์ทั้งหลายระงับการเรียนโปรแกรมกันไว้ก่อนเพราะว่าอีกไม่นานต้องเปลี่ยนอีก

อะไรทำนองนี้แหละครับ เนื้อหาบทความีดังนี้ครับ


         การเรียนรู้ platform/library/language ใหม่ๆ เป็นเรื่องปกติของ programmer อยู่แล้ว ดังนั้นผมว่ามีของใหม่มา ก็ไม่ใช่เรื่องแปลกอะไร

         การเรียนรู้อะไรผมไม่อยากให้ดูที่เปลือกนอกมากไปนักน่ะครับ อย่าไปดูที่ syntax, libraryอะไรให้มากนัก ดูที่แนวความคิด หรือว่าปรัชญาของการเขียนโปรแกรมจะดีกว่ารวมไปถึง algorithm flow หรือว่า program design ด้วย เพราะว่า ถึงแม้ภาษาต่างๆ มันจะเปลี่ยนไป หรือว่า library/framework ต่างๆ มันเปลี่ยนไปตามกาลเวลาของมัน ไอ้พวก algorithm หรือว่า design philosophyพวกนี้ไม่ค่อยเปลี่ยนตามหรอกครับ หรือว่าเปลี่ยนตามก็ช้ากว่าไม่รู้กี่เท่า

         เรียนprogramming language ใหม่ๆ ภาษานึงนี่ ผมว่ามันไม่ใช่เรื่อง big dealอะไรเลย ตอนที่ผมเปลี่ยนมาใช้ mac os x ใหม่ๆ แล้วอยากจะเขียนโปรแกรมบน osx ผมก็ต้องเรียน objective-c ซึ่งผมไม่เคยเห็นมาก่อนในชีวิตก็ไม่มีอะไรมาก ใช้เวลาครึ่งวันอ่าน syntax, keyword ใหม่ๆ ว่ามีอะไรบ้างอีกครึ่งวันหาพวก FAQ ว่ามันมีอะไรต่างจาก c/c++/java มั่งวันที่สองวันที่สาม ก็เขียนอะไรใน objective-c ได้แล้วส่วนเรื่องการเขียนโปรแกรมใน os x นี่ แน่นอนว่า architecture มันต่างจากwindows โดยสิ้นเชิง ดังนั้นความรู้อะไรก็ตามที่ผมรู้มาจาก win32, mfc,.net ใช้ไม่ได้เลย (ของตาย ยกเว้น M$ จะ port ไปลง แต่ว่า .net ก็มีdotGNU ก็พอจะใช้กันได้บ้าง) แต่ว่าก็เรียนรู้ Cocoa framework (ที่เป็นnative framework ของ mac os x) ก็ใช้เวลาไม่นานเท่าไหร่ ก็เขียน GUIapplication ได้แล้ว ใช้ system service ได้พอสมควร (ก็อ่านๆ พวก basicแล้วที่เหลือก็เปิด reference เอา)

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

1. แยกการเรียน "ภาษา" กับการเรียน "library/framework" ออกจากกัน
         เดี๋ยวนี้library/framework ใหม่ๆ ส่วนมากจะ support หลายภาษา และ codeที่เขียนเรียกใช้ library เหล่านั้นในแต่ละภาษาจะไม่ต่างกันมากเท่าไหร่(ลองดู code ที่ใช้ .NET framework ที่เขียนใน VB.NET, C#.NET หรือว่าManaged C++.NET สิครับ ออกมาแทบจะเหมือนกันเลย ผมอ่านหนังสือ VB.NET นี่แปลง code เป็น C# ได้แบบแทบไม่ต้องคิดเลย เกือบจะบรรทัดต่อบรรทัด แปลงแค่syntax กับ keyword แล้วก็ structure นิดหน่อย)
         ดังนั้นการแยกการเรียนรู้ library/framework ออกจากการเรียนภาษาเป็นเรื่องที่สำคัญครับ ตามความคิดของผม

2. อย่าไป focus กับภาษามากเกินไป ดูที่ algorithm + program design มากๆ
         ภาษาก็เป็นแค่เครื่องมือแม้ว่าภาษาแต่ละภาษาจะมีข้อดีข้อเสียไม่เหมือนกัน แต่ว่าอย่างไรก็ดี การdesign program นั้น design framework, design patternsส่วนมากจะไม่ขึ้นกับภาษา คือ จะใช้ในภาษาไหนก็ได้ เช่นเดียวกับ algorithm
         ดังนั้นเมื่อต้องถึงเวลาที่จะเปลี่ยน platform ไม่ว่าจะเป็นการไปใช้ platformตระกูลใหม่ (เช่น windows->linux, windows->macหรือว่ากลับกันก็ตาม) หรือว่าตระกูลเดิม แต่ update architectureใหม่จนจำไม่ได้ (เช่น windows 3.11->windows 95, win32->.net หรือmac os 9->mac os x) ก็ตาม สิ่งที่ต้องทำก็คือ
         – เรียนรู้ syntax และลักษณะเฉพาะของภาษาใหม่ (ถ้าจำเป็น)
         -เรียนรู้ basic ของ framework ของ platform นั้นๆ (เช่น การเรียกใช้component, การใช้ memory, ฯลฯ)
         จากนั้นในการเขียนโปรแกรมหรือว่าสร้าง application อะไร ในภาพรวม ก็คิดตามหลักprogram design เดิม และใช้ algorithm ตัวเดิม แต่ว่าเรียกใช้ componentจาก framework ตัวใหม่ (ซึ่งตรงนี้ ถ้า basic แน่นดี ก็เปิดดูจากreference ได้เลย) และอาจจะปัญหาเรื่องรายละเอียดปลีกย่อยนิดหน่อยในส่วนที่เป็นลักษณะเฉพาะของภาษาใหม่ ที่ต่างไปจากภาษาที่เคยชินเท่านั้นเอง เช่นตอนที่เขียน objective-c ใหม่ๆ งงกับมันอยู่พักนึง กับsemi-automatic memory management ของมัน เพราะว่าเคยแต่ใช้ manual แบบc/c++ หรือว่า fully automatic แบบ java
         ส่วนถ้าใครอยากจะลองเล่นกับmanaged c++ ก็หาตัวอย่างได้ทั่วไปครับ ส่วนหนังสือเล่มที่อยากจะแนะนำนอกจากหนังสือของสำนักพิมพ์ microsoft ที่น่าจะเป็นมาตรฐานที่ต้องอ่านแล้วก็มี Developing Applications with Visual Studio.NET โดย RicardGrimes เล่มนี้จะเน้นการใช้ Managed C++และจากพูดถึงส่วนของรายละเอียดต่างๆ ข้อเหมือนและข้อแตกต่างระหว่างmanaged c++ กับ c++และ c# ไว้ดีพอสมควรทีเดียว แต่ว่าอาจจะไม่มี codeตัวอย่างมากนัก เหมาะกับคนที่เขียนโปรแกรมเป็นอยู่แล้ว

อยากจะเขียนโปรแกรม ควรจะศึกษาโปรแกรมอะไรก่อน ?

คำถาม … อยากจะเขียนโปรแกรม ควรจะศึกษาโปรแกรมอะไรก่อนครับ
ไม่รู้จะไปปรึกษาใครแล้วนะครับ พอดีอยากจะเรียนเขียนโปรแกรม แต่เห็นมีโปรแกรมเยอะมากๆเลย ไม่รู้ว่าโปรแกรมอะไรทำหน้าที่อะไรบ้าง

พี่ๆที่พอจะช่วยผมได้ ช่วยผมทีนะครับ อยากจะศึกษา แต่ไม่รู้จะเริ่มจากตรงไหนดี

ขอบพระคุณมากครับ

ขอบคุณจากใจจริงครับ

จากคุณ : NismoO -[ 22 พ.ย. 47 – 01:25:56 ]

กระทู้จาก Pantip.com ครับ http://www.pantip.com/tech/coffee/topic/JX1662452/JX1662452.html

พอดีว่า พี่เดฟ (ithilien_rp) มาตอบให้ …. เลือกภาษาซักตัว อะไรก็ได้ แล้วก็หา compiler ของภาษานั้นๆ แล้วก็มาหัดเขียนโปรแกรมง่ายๆ พวกรับ input แสดง output คิดเลขง่ายๆ แล้วก็หัดใช้พวก loop

compiler หลายตัวก็ฟรี หลายตัวก็เป็น commercial … แต่ว่าตอนแรกอยากให้หัดกับพวก free compiler ก่อน อันนี้ก็แล้วแต่ภาษาน่ะแหละ ว่าจะหาได้ยากง่ายแค่ไหน เช่น Java กับ .NET สามารถที่จะหา compiler ฟรีได้เลยจาก Sun กับ Microsoft โดยตรง ส่วนภาษาที่มีมาตรฐานกลาง เช่นพวก C/C++ ก็ต้องหา compiler เอา จริงๆ ใช้ MinGW ก็ไม่เลวหรอก หรือว่าจะใช้ Borland C++ command line edition ก็ได้

ไม่อยากให้ไปบ้าตามกระแสบางอย่าง ที่ต้องเล่น professional tools พวก visual studio.net enterprise ตั้งแต่ยังทำอะไรไม่เป็น ….

ค่อนข้าง ok มากสำหรับคนทีี่เพิ่งจะเริ่มทำหรือศึกษาด้านการเขียนโปรแกรมครับ

อีกคำถามนึงจาก ThaiDev.com ครับ http://www.thaidev.com/board-c/view.php?1068

คำถาม … ความสามารถของ C “ตอนนี้ผมสามารถเขียน C ได้แต่ก็แค่ใช้แก้บัญหาคณิตศาสตร์เท่านั้นอยากทราบความสามารถอืนและแหล่งรวบรวมความรู้ดังกล่าว”

ตอบ …
1) ตอบแบบวิชาการหน่อยๆ ก็ programming language ไม่ว่าจะภาษาไหน .. ก็ถือว่าเป็น universal turing machine (UTM) ทั้งหมด และด้วยความเป็น UTM ทำให้มันมีความสามารถที่จะทำอะไรก็ได้ที่ UTM ตัวอื่นทำได้ และสามารถ emulate การทำงานของ UTM ตัวอื่นได้หมด และเนื่องจากคอมพิวเตอร์แบบที่เราใช้กันอยู่ทุกวันนี้มันก็เป็น UTM ดังนั้นการทำงานทุกอย่างของ computer ตลอดจนโปรแกรมทุกลักษณะ ก็สามารถใช้ภาษา C เขียนได้หมด

2) ตอบแบบสั้นๆ ง่ายๆ ก็ จะเขียนอะไรก็ได้หมดน่ะแหละ ที่คุณเคยเห็นบนคอมพิวเตอร์น่ะ (ไม่ว่าจะเป็นกราฟฟิค เสียง ฯลฯ หรือว่าระบบอะไรก็ช่าง .. เขียน OS ยังได้เลย)

ดังนั้น…… ก็แล้วแต่ว่าคุณจะออกแบบโปรแกรมถูกหรือเปล่า จะใช้ data structures กับ algorithm เหมาะสมมั้ย และจะใช้ library อะไร (หรือว่าจะเขียน library ใหม่เอง) เช่นถ้าจะเขียนโปรแกรมเกี่ยวกับทางกราฟฟิคก็อาจจะใช้ OpenGL อะไรประมาณนั้น เป็นต้น

จากคุณ rp@jp เมื่อ 11:22am (20/11/2004)

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

การเซ็ตให้ Borland C++ Compiler 5.5 ทำงานร่วมกับ EditPlus เพื่อทำการ Compile ไฟล์ที่เขียนขึ้นด้วยภาษา C++

สิ่งที่ต้องมี

  • Borland C++ Compiler 5.5
  • EditPlus

1. ดาวน์โหลด Borland C++ Compiler 5.5 มาจากเว็บ Borland ที่ http://www.codegear.com/downloads/free/cppbuilder

2. ดาวน์โหลด EditPlus ได้จากที่นี่ http://www.editplus.com

3. เมื่อโหลดได้แล้วทำการติดตั้งดังภาพด้านล่างนี้ครับ


ภาพที่ 3-1


ภาพที่ 3-2


ภาพที่ 3-3


ภาพที่ 3-4


ภาพที่ 3-5

4. เปิด EditPlus ขึ้นมาแล้วไปที่ Tools ที่เมนูบาร์ แล้วไปที่ เมนู Configure User Tools


ภาพที่ 4-1

5. เข้ามาที่หน้าต่าง Preferences ตอนนี้เราจะอยู่ที่ Tools และหัวข้อย่อย User tools

  • ให้เราเลือกที่ Groups and tools items ไหนก็ได้ ในตัวอย่างเลือกอยู่ที่ Groups 4
  • กดปุ่ม Add Tool แล้วไปที่ Program


ภาพที่ 5-1

6. เราจะได้ New Program มา 1 อัน

  • เราสามารถเปลี่ยนชื่อได้โดยไปที่ Menu text ในที่นี้ให้เปลี่ยนเป็น “Borland C++ Compile
  • ในส่วนของ Command ให้ไป Browse ให้ชี้ไปที่ ไฟล์ bcc32.exe ซึ่งในที่นี้ถ้าติดตั้งตามแบบข้างต้น (ข้อที่ 3 ) จะได้ที่นี่ C:\Borland\BCC55\Bin\bcc32.exe
  • ในส่วนของ Argument ให้ใส่ตามข้างล่างนี้เลย ถ้าติดตั้งตามแบบข้างต้น (ข้อที่ 3 )
    -IC:\Borland\BCC55\Include -LC:\Borland\BCC55\Lib -n$(FileDir) $(FilePath)
  • จากข้อที่แล้วจะสังเกตที่ได้ขีดเส้นได้ว่าคือที่ ที่เราได้เซ็ตไว้ข้างต้นแล้วในตอนที่ติดตั้ง Borland C++ Compiler 5.5 ซึ่งในข้อที่ 3 เราได้กำหนดไว้ที่ C:\Borland\BCC55 นั้นเอง
  • ในส่วนของ Initial directory ให้กำหนดเป็น C:\Borland\BCC55\Bin
  • ให้ทำการทำเครื่องหมายถูกที่ Capture output ด้วย


ภาพที่ 6-1

7. ทำการกดปุ่ม Add Tool แล้วไปที่ Program เพื่อ New Program อีกหนึ่งอัน


ภาพที่ 7-1

8. ในขั้นตอนนี้เราจะทำ Menu Run กันในโปรแกรม EditPlus แต่มีข้อเสียอยู่อย่างเดียวคือ

เราจะไม่สามารถใช้กับโปรแกรมที่มีการรับ Argument ได้ ซึ่งทางผู้จัดทำเอกสารยังไม่ได้หาข้อมูลเพิ่มเติมแต่อย่างใด แต่สามาถ Compile ได้แต่จะมีวิธีการทำในภายหลังว่าจะทำยังไงให้สามารถ Run แล้ว สามารถให้โปรแกรมสามารถรับค่าได้

  • ที่ Menu text ให้เปลี่ยนจาก New Program เป็น Run
  • ที่ Command ให้ใส่ $(FileNameNoExt)
  • ที่ Initial directory ให้ใส่ $(FileDir)
  • ให้ทำการทำเครื่องหมายถูกที่ Capture output ด้วย


ภาพที่ 8-1

9. ต่อมาเรามาทำการเปลี่ยนชื่อ Groups 4 ให้เป็น C++ Compile ก่อนเพื่อจะได้ไม่สับสน

  • ไปที่ Group Name
  • แล้วทำการเปลี่ยนชื่อเป็น C++ Compile
  • กด OK เพื่อยืนยันการเปลี่ยนแปลง


ภาพที่ 9-1

10. แล้วกด OK ออกมาจาก หน้าต่าง Preferences

11. เขียนโปรแกรม ง่ายๆ ทดสอบกันว่ามันทำงานหรือเปล่า

  • แต่ก่อนทำการ Compile และ Run ต้องทำการ Save ก่อนเพื่อจะได้ Run ได้
  • การ Save ที่ถูกต้องและจะทำให้ Compile ผ่านได้และไม่ผิดพลาด นั้นควรตั้งชื่อไฟล์ และการเก็บไฟล์ไว้ที่ Folder ที่ไม่มีช่องว่างในการตั้งชื่อ และชื่อต้องที่ไม่มีช่องว่างในการตั้งชื่อด้วย (แต่สามารถใช้ _ ในการเว้นระยะแทนได้) เช่น
    • D:\Ford\MyProgramming
    • D:\cpp
    • D:\cpp\test.cpp
    • D:\cpp\test_input.cpp
  • ไม่ควร Save ไว้ที่ Folder หรือตั้งชื่อไฟล์ที่มีช่องว่างระหว่างชื่อ, ชื่อเป็นภาษาอื่นนอกจากภาษาอังกฤษ, ชื่อมีเครื่องหมายพิเศษหรือ มีสัญลักษณ์พิเศษ เช่น
    • D:\Ford\My Programming
    • D:\Ford\My OOP
    • D:\Ford\My Cpp
    • D:\Ford\My C(pp)
    • D:\cpp\tes#t.cpp
    • D:\cpp\test input.cpp
  • เราก็เขียนโปรแกรมง่ายๆ ดังภาพด้านล่างนี้ ……… และ Save ไว้ที่ D:\test.cpp


ภาพที่ 11-1

12. เมื่อเรา Save แล้ว ก็ไปที่ Tools ที่เมนูบาร์ ไปที่ User Tool Groups แล้วเลือกที่ C++ Compile ที่เราได้เซ็ตกันเมื่อกี้นี้


ภาพที่ 12-1

13. เราก็จะได้เมนูใหม่เข้ามาคือ Borland C++ Compile และ Run ที่เราเซ็ตไว้เมื่อกี้นี้

  • ให้เรากดที่เมนู Borland C++ Compile เพื่อทำการ Compile


ภาพที่ 13-1

14. เราจะได้ผลลัพธ์ตามภาพ


ภาพที่ 14-1

15. แล้วถ้าเราจะ Run ให้ใช้ เมนู Run ดังภาพ


ภาพที่ 15-1

16. เราจะได้ผลลัพธ์ตามภาพ


ภาพที่ 16-1

17. เรามาเขียนโปรแกรมรับค่าและ วิธีการแก้ปัญหาของ EditPlus ที่ทำการ Run แบบรับค่าไม่ได้ (ภาพที่ 17-2)

  • จากโปรแกรมนี้นั้น จะมีการรับค่ามาหนึ่งค่า เราจะรวบรัดขั้นตอนในบางตอนไปเลย ซึ่งเมื่อเขียนโปรแกรมนี้เสร็จแล้วให้ทำการ Compile ตามวิธีเดิมข้างต้นไปได้กล่าวไปแล้ว แต่ไม่ต้องทำการ Run แต่อย่างใด มิเช่นนั้นแล้วโปรแกรม EditPlus จะมี Process ค้างและทำให้เครื่องมีปัญหาได้
  • แต่ถ้าไปเผลอ Run แก้โดยให้ทำการ ปิดโปรแกรม EditPlus แต่จะมี Dial Box ขึ้นมาถามว่าเราจะ Stop Process หรือไม่ ดังภาพภาพที่ 17-1 ให้ตอบ Yes ไป

ภาพที่ 17-1


ภาพที่ 17-2

18. ทางแก้ในด้านนี้คือใช้ Command Prompt นั้นเอง

  • ให้ไปที่ Start > Run
  • พิมพ์ cmd


ภาพที่ 18-1

19. ไปที่ ที่อยู่ไฟล์ที่เราได้ Compile ไว้

  • ซึ่งในการ Compile นั้นโปรแกรม Borland C++ Compiler 5.5 จะทำการ Build ไฟล์ที่เรา Compile เป็น Execute File ( .exe ) ให้เราแล้ว
  • เราเพียงแต่เข้าไปหาไฟล์ที่เรา Compile ไว้แล้วพิมพ์ชื่อไฟล์นั้นๆ ลงไปให้ตรงเท่านั้น
  • ในขั้นตอนนี้ควรมีความสามารถในการใช้คำสั่ง DOS


ภาพที่ 19-1

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

แนะนำการทำเว็บ (ตอนที่ 2)

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


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

ประชาสัมพันธ์ อย่างไรดีกับเรื่องนี้

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

Read moreแนะนำการทำเว็บ (ตอนที่ 2)