2.หัดเขียนโปรแกรมง่ายๆ


  • โปรแกรม Hello, World! 




#include <iostream> // preprocessor directive
using namespace std;

// function header
// function body

int main() // special function
{
    // << stream insertion operator ("put to")
    // :: scope resolution operator
    cout << "Hello, World!\n"; // statement
    cout << "Hello, C++!" << endl; // statement
    cout << "Beautiful day";
}

***********************************************************************************************************************************

 เริ่มต้นการเขียนโปรแกรมภาษา C++ ด้วย Dev-C++

***********************************************************************************************************************************
โปรแกรมแรกสำหรับผู้เริ่มต้นการเขียนโปรแกรมในทุกๆ ภาษาคือโปรแกรมที่เรียกว่า "Hello World" ซึ่งเป็นโปรแกรมที่จะแสดงผลข้อความว่า "Hello World" ออกทางหน้าจอคอมพิวเตอร์ของคุณ ถ้านี่เป็นประสบการณ์ในการเขียนโปรแกรมครั้งแรกของคุณ คุณจะแปลกใจกับสิ่งที่คุณจะเห็นต่อไป
// my first world program
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
    return 0;
}
และข้างล่างนี้เป็นผลลัพธ์ของโปรแกรมจากตัวอย่างแรกของเรา
Hello World!
ในส่วนแรกที่คุณเห็นนั้นคือซอสโค้ดของโปรแกรม และส่วนที่สองคือผลลัพธ์ของโปรแกรม เมื่อคุณรันโปรแกรมคุณจะเห็นข้อความว่า "Hello world" ถูกแสดงผลออกทางหน้าจอคอมพิวเตอร์ของคุณ คุณสามารถทดสอบกับคำหรือประโยคอื่นๆ เพื่อดูผลลัพธ์ของมัน เช่น ชื่อของคุณเอง
ต่อไปเป็นการอธิบายการทำงานของโปรแกรมข้างบนทีละบรรทัดเพื่อให้คุณทราบว่าโปรแกรมในภาษา C++ นั้นมีการทำงานอย่างไร
#include <iostream>
คำสั่งแรกในโปรแกรมเป็นการนำเข้าไลบรารี่มาตฐานของภาษา C++ ในตัวอย่างเราได้นำเข้าไลบรารี่ iostream ซึ่งจะประกอบไปด้วยฟังก์ชันการทำงานเกี่ยวกับ Input และ Output ซึ่งในภาษา C++ นั้นมีไลบรารี่อื่นๆ อีกมากมาย คุณสามารถนำเข้าไลบรารี่เหล่านั้นได้ด้วย directive #include ซึ่งแต่ละชุดคำสั่งจบด้วยการขึ้นบรรทัดใหม่
int main()
{
    std::cout << "Hello World!";
    return 0;
}
ต่อมาเป็นฟังก์ชันในการทำงานหลักของโปรแกรม เมื่อโปรแกรมในภาษา C++ เริ่มต้นการทำงานนั้นจะเริ่มต้นทำงานในฟังก์ชันที่ชื่อว่า main() นั่นหมายความว่าโปรแกรมในภาษา C++ ต้องมีฟังก์ชันนี้เสมอ เพราะเป็นฟังก์ชันแรกของโปรแกรมที่จะทำงานเมื่อคุณรันโปรแกรม อย่างไรก็ตามอาจจะมีฟังก์ชันอื่นที่สร้างขึ้นโดยผู้ใช้ ซึ่งคุณจะได้เรียนในบทของฟังก์ชัน

Statement (คำสั่งการทำงาน)

Statement คือคำสั่งการทำงานของโปรแกรมในภาษา C++ ในการเขียนโปรแกรมหนึ่งโปรแกรมนั้นโดยส่วนมากแล้วจะประกอบไปด้วยหลายคำสั่งเพื่อให้การทำงานเสร็จสิ้น จากตัวอย่างก่อนหน้า std::cout << "Hello World!\n" นั้นคือคำสั่งการทำงานของโปรแกรม คำสั่งในภาษา C++ นั้นจะจบด้วยเครื่องหมายเซมิโคลอน (;) ดังนั้นหลายคำสั่งอาจจะอยู่ในบรรทัดเดียวกันได้
int a = 0;
int b = 1; int c = 2;
ในตัวอย่างนั้นเรามีสามคำสั่งด้วยกันซึ่งเป็นคำสั่งในการประกาศตัวแปร สำหรับคำสั่งในการประกาศตัวแปร b และตัวแปร c นั้นจะอยู่บรรทัดเดียวกัน แต่คั่นด้วยเครื่องหมาย ; ทำให้ภาษา C++ สามารถแยกแยะแต่ละคำสั่งของการทำงานได้

คอมเม้นต์

คอมเม้นต์เป็นส่วนของซอสโค้ดที่ไม่มีผลกับโปรแกรมของเรา มันทำให้โปรแกรมเมอร์สามารถอธิบายโปรแกรมของพวกเขา และเพื่อให้ตรวจสอบได้ง่ายในภายหลัง ในภาษา C++ มีสองทางที่คุณจะสามารถคอมเมนต์ได้
// line comment
/* block comment */ 
คอมเมนต์ประเภทแรกคือ การคอมเมนต์แบบบรรทัด มันถูกใช้สำหรับเพื่อคอมเมนต์ในหนึ่งบรรทัด และจะไม่สนใจโค้ดของโปรแกรมหลังจากเครื่องหมายดับเบิ้ลสแลซ // แบบที่สองคือบล็อคคอมเม้นต์ ซึ่งจะละเว้นทุกอย่างเริ่มจาก /* และสิ้นสุดที่ */ ซึ่งมันมักจะใช้กับการคอมเม้นต์ในหลายบรรทัด อย่างไรก็ตามมันยังสามารถที่จะใช้ในการคอมเมนต์เพียงหนึ่งบรรทัดได้ นี่เป็นตัวอย่างของการใช้งานคอมเมนต์ในภาษา C++
// Name: Hello world program
// Author: marcuscode.com
// Date: September 8, 2015
#include <iostream>

/* the main function is called
when the program starts */
int main()
{
    std::cout << "Hello World!"; // display text
    return 0;
}
ในตัวอย่าง เป็นโปรแกรมในการแสดงผลข้อความ "Hello world" เช่นเดิม แต่ในเวอร์ชันนี้เราได้เพิ่มเติมการคอมเมนต์สำหรับโปรแกรม สามบรรทัดแรกเป็นการคอมเมนต์แบบ Single line ซึ่งเป็นการบอกชื่อของโปรแกรม ชื่อผู้เขียน และวันที่ที่สร้างขึ้น คอมเมนต์ที่สองก่อนฟังก์ชัน main() เป็นการคอมเมนต์แบบหลายบรรทัด (Multiline) สำหรับอธิบายการทำงานของฟังก์ชัน และสุดท้ายเป็นการคอมเมนต์ในบรรทัดเดียวกันกับคำสั่งการทำงาน

Using namespace std

ภาษา C++ มีไลบรารี่มาตรฐานที่เรียกว่าเนมสเปลซ (Namespace) จากตัวอย่างของโค้ดโปรแกรมก่อนหน้าที่เราได้ใช้มันไปแล้ว
using namespace std;
เพื่อใช้ฟังก์ชันในไลบรารี่ของ namespace std โดยไม่ต้องมี std:prefix เราจำเป็นต้องใช้คำสั่ง using namespace std อย่างเช่น ฟังก์ชัน cout เราจะสามารถเรียกใช้ฟังก์ชันนี้ได้ในทันที
#include <iostream>

int main()
{
    std::cout << "Hello C++\n";
    std::cout << "My name is Mateo\n";
    return 0;
}
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello C++\n";
    cout << "My name is Mateo\n";
    return 0;
}
โปรแกรมสองโปรแกรมด้านบนให้ผลลัพธ์ที่เหมือนกัน โปรแกรมแรกเราไม่ได้ประกาศโดยการใช้คำสั่ง namespace std และเราจำเป็นต้องเข้าถึงฟังก์ชัน cout โดยการใช้ std:cout ในการที่จะอนุญาติให้สามารถเข้าถึงทุกอย่างใน Namespace ได้โดยไม่ต้องใช้ std:prefix เราจำเป็นต้องใช้คำสั่ง using namespace std เหมือนในโปรแกรมที่สอง

Whitespace

Whitespace คือตัวอักษรหรือเครื่องหมายที่ใช้แบ่งแยกคำสั่งและ Token ในโค้ดของโปรแกรม ในภาษา C++ นั้น Whitespace จะประกอบไปด้วย การเว้นวรรค Tab และการขึ้นบรรทัดใหม่ Whitespace ที่เรียงต่อกันเป็นจำนวนมากนั้นไม่มีผลต่อการทำงานของโปรแกรมและคอมไพเลอร์ แต่มันช่วยให้โปรแกรมเมอร์สามารถทำโค้ดให้เป็นระเบียบและสามารถอ่านเข้าใจได้ง่ายขึ้นโดยคนอื่นๆ แต่ Whitespace ยังคงต้องใช้ในบางที่ เช่น ระหว่างคำสั่งของภาษา C++ และชื่อของตัวแปร เป็นต้น
int a = 1;
int b=2;
int c  =  3;
ในตัวอย่าง เป็นการใช้ Whitespace ในรูปแบบต่างๆ ซึ่งถือว่าเป็นรูปแบบการเขียนโปรแกรมของแต่ละคน แต่โดยปกติแล้วเรานิยมใช้ Whitespace ในรูปแบบของการประกาศตัวแปร a

Keywords

Keyword คือคำที่ถูกสงวนไว้ในภาษา C++ ซึ่งมันถูกใช้ในการทำงานของภาษา นั่นหมายความว่าคุณไม่สามารถใช้คำสั่งเหล่านี้ในการประกาศชื่อตัวแปร เมธอด คลาส หรือ Identifier อื่นได้ๆ นี่เป็นรายการของ Keyword ในภาษา C++
alignasalignofandand_eq
asmatomic_cancelatomic_commitatomic_noexcept
autobitandbitorbool
breakcasecatchchar
char16_tchar32_tclasscompl
conceptconstconstexprconst_cast
continuedecltypedefaultdelete
dodoubledynamic_castelse
enumexplicitexportextern
falsefloatforfriend
gotoifimportinline
intlongmodulemutable
namespacenewnoexceptnot
not_eqnullptroperatoror
or_eqprivateprotectedpublic
registerreinterpret_castrequiresreturn
shortsignedsizeofstatic
static_assertstatic_caststructswitch
synchronizedtemplatethisthread_local
throwtruetrytypedef
typeidtypenameunionunsigned
usingvirtualvoidvolatile
wchar_twhilexorxor_eq
เนื่องจากว่าภาษา C++ นั้นได้รับการพัฒนาอย่างต่อเนื่อง บาง Keyword นั้นได้ถูกเพิ่มเข้ามาในภายหลังตั้งแต่ C++11 และ C++17 และบาง Keyword ใช้งานในโมดูล TS
ในบทนี้ คุณได้เรียนรู้โครงสร้างพื้นฐานของภาษา C++ เราได้ให้คุณดูตัวอย่างของโปรแกรมในภาษา C++ และอธิบายการทำงานของโปรแกรม คำสั่งการทำงานของโปรแกรม และการคอมเมนต์โค้ด และรายการของ Keywords ที่ถูกใช้ในการทำงานของภาษา ซึ่งสิ่งเหล่านี้มีความสำคัญที่คุณจะต้องทำความเข้าใจสำหรับการเขียนโปรแกรมในภาษา C++