c++ programming

วันอังคารที่ 11 สิงหาคม พ.ศ. 2552

โครงประกอบของโปรแกรมขั้นพื้นฐาน

โครงประกอบของโปรแกรมขั้นพื้นฐาน
ในตอนนี้ เราลองมาพิจารราโปรแกรมแรกกันก่อน ครับ ซึ่งตัวโปรแกรมเป้นดังนี้
ตัวอย่าง
#include void main(){ cout << "สวัสดีครับ"; cout << "C++ Program แรก ";}
Download Source Code
แม้ว่าจะเป็นโปรแกรมเล็กๆ แต่โปรแกรมนี้ ได้แสดงเกี่ยวกับโครงประกอบ หลายๆ อย่างของโปรแกรม C++ เอาไว้ เราลองมาดูรายละเอียดของโปรแกรมนี้ดู
Function
Function เป็นหนึ่งในหน่วยการสร้างขั้นหลัก (Fundamental building block) ของ C++ โปรแกรมแรก ประกอบไปด้วย Function เดี่ยวๆ ที่เรียกว่า main() ส่วนของโปรแกรมนี้ไม่ได้เป็นส่วนหนึ่งของ Function มีเพียงส่วนเดียวคือ #include มันคืออะไร เดี๋วจะอธิบายให้ฟัง
ชื่อ Function (Function name)
เรื่องหมาย () ที่ตามหลังคำว่า main เป็นคุณลักษณะที่แบ่งแยก Function ออกจากส่วนประกอบอื่นๆ ถ้าไม่มีเครื่องหมาย () Compiler จะคิดว่า main หทายถึงตัวแปร หรือส่วนประกอบอื่นๆ ของโปรแกรม เมื่อกล่าวถึง Function เราจะดำเนินการตามข้อตกลงเดีนวกันกับที่ C++ ใช้นั่นคือ เราจะจัดวางเครื่องหมาย () ไว้หลังชื่อของ Function ในภายหลัง เราจะเเห้นว่า ภายใน () ไม่าได้ว่างเสมอไป คือมีการใช้ เครื่องหมาย () ในการส่ง อาร์กิวเมนต์ ของ Function (function arguments) ซึ่ง อาร์กิวเมนต์ เป็นค่าที่ผ่นจากโปรแกรม ที่เรียกใช้ Function
เครื่องหมาย {} และตัวของ Function
ตัว หรืห Body ของ Function ถูกโอบล้อมไว้ด้วย เครื่องหมาย {} เครื่องหมายเหล่านี้จะแสดงบทบาทในทำนองเดียวกันกับคำหลัก BEGIN และ END ทีพบอยู่ในภาษา Basic Pascal Delphi เป็นต้น โดยจะโอบล้อมหรือกำหนดขอบเขต Block หนึ่งๆ ของข้อความคำสั่งในโปรแกรมเอาไว้ ทุกๆ Function จะต้องใช้เครื่องหมาย {} คู่นี้ ดังตัวอย่างข้างต้น มีข้อความเพียง 2 บรรทัด คำสั่ง อยุ่ภายในเครื่องหมาย {} ก็คือคำสั่ง cout อย่างไรก็ตามตัวของ Function อาจประกอบไปด้วยข้อความหลายๆคำสั่ง
เริ่มต้นด้วย main() เสมอ
เมื่อคุณ เขียนโปรแกรมด้วย C++ ข้อความคำสั่งแรกที่กระทำการ จะเป็นข้วามคำสั่งซึ่งอยู่ตรงจุดเริ่มต้น ของ Function ที่เรียกว่า main() โปรแกรมหนึ่งๆ อาจประกอบไปด้วย Class และส่วนประกอบ อื่นๆ ของโปรแกรมอยู่เป็นจำนวนมาก แต่ตัวควบคุมการเริ่มต้น จะอยู่ที่ main() เสมอ ถ้าในโปรแกรมนั้น ไม่มี Function นี้ ปรากฏอยู่เลย ตัว Complier ก็จะแสดง ข้อผิดพลาด ออกมา
ข้อความคำสั่งของโปรแกรม
ข้อความคำสั่งของโปรแกรม เป็นหลักของการเขียนโปรแกรม เครื่อง หมาย ; จะเป็นตัวบงบอกให้ Compiler รู้ว่าสินสุด ข้อความคำสั่ง 1 คำสั่ง เครื่องหมายนี้เป็นส่วนสำคัญเป็นอย่างยิ่ง หากไม่มีข้อความนี้ ตัว Compiler เอง จะไม่ทราบว่า ข้อความคำสั่งสิ้นสุดที่ใหน ดังนั้น หากมีข้อความคำสัง มากกว่า 1 คำสั่ง แต่ใส่ เครื่องหมาย ; ที่ ท้ายของข้อความคำสั่งสุดท้าย ตัว Compiler เอง จะมองเป็น 1 คำลัง ดังนั้น จะเกิดข้อผิดพลาดทันที่ หรือหากไม่ใส่เลย ตัว Compiler ก็จะไม่ทราบ ที่สิ้นสุดของคำสั่ง ก็จะเกิดข้อผิดพลาด เช่นกัน
ระยะว่างเปล่า
ตามความเป็นจริงนั้น Compiler ของ C++ จะเพิกเฉยต่อระยะว่างเปล่า (White space) เกือบจะสมบูรณ์ ระยะว่างเปล้าหมายถึง ช่องว่าง (Space) การปัดแคร่ (Carriage return) การป้อนบรรทัด (Line feeds) การตั้งระยะ (Tab) การตั้งระยะแนวดิ่ง (Vertical tabs) และการป้อนกระดาษ (Form feeds) Compiler จะมองไม่เห็น อักขระเหล่านี้ จากลักษณะเช่นนี้ ทำให้เราสามารถ จัดวางข้อความหล่ายๆ ข้อความ คำสั่ง ไว้บน บรรทัดเดียวกันได้ และแยกข้อความ เหล่านั้นด้วย ช่องว่าง หรือการตั้งระยะ ในจำนวนไดๆ ก็ได้ หรือมิเช่นนั้น เราอาจเขียนข้อความคำสั่ง 1 ข้อความคำสัง ที่กินเนื้อที่ 2 บรรทัด หรือมากกว่า ก็ได้ เพราะ Compiler จะมองไม่เห็นถึงความแตกต่างเหล่านี้
การส่งออก โดยใช้คำสั่ง count และ printf
ข้อความต่อไปนี้
cout << "Thai Programmer WEB";
และข้อความต่อไปนี้
printf( "Thai Programmer WEB");
จะได้ผลลัพธ์เหมือนกัน แต่ สำหรับ cout นั้น จะใช้กับ C++ เท่านั้น ส่วน printf นั้นสามารภใช้ได้ทั้ง C++ และ C ซึ่งคำสั่งทั่งสองนี้ ทำให้มีการแสดงข้อความ ที่อยูภายในเครื่องหมาย " " ออกทางจอภาพ สำหรับ printf เปํนคำสั่งดังเดิม แต่สำหรับ cout นั้นสำหรับ C++ ที่ใช้เขียนโปรแกรมในแบบ OOP หรือการเขียนโปรแกรมแบบมีวัตถุเป้าหมายนั่นเอง โดย cout (ซี-เอาท์) เป็น วัตถุเป้าหมายตัวหนึ่ง (Object) ที่ถูกกำหนดไว้ก่อนแล้วใน C++ ในลักษณะที่สอดคล้องกับกระแสข้อมูลส่งออกมาตรฐาน (Standard output stream) คำว่า กระแส (Stream) เป็นลักษณะนามธรรม (Abstraction) ที่หมายถึงการใหลของข้อมูล โดบปกติการใหลของข้อมูล มักจะให้ใหลไปสู่ จอภาพ ถึงแม้ว่าจะสามารถเปลี่ยนทิศทางได้ (Redirect) ไปยังอุปกรณ์ส่งออกอื่นๆ ได้ก็ตาม เราจะอธิบายถึงกระแสข้อมูล ในโอกาสต่อไป
ตัวดำเนินการ << เรียกว่าตัวดำเนินการแทรก (Insertion operator) หรือ ตัวดำเนินการจัดวางเข้าไปสู่ (Put to operator) ตัวดำเนินการนี้จะชี้ทาง สิ่งที่บรรจุ อยู่ภายในตัวแปร ซึ่งอยู่ทางด้านขวา ไปให้แก่วัตถุเป้าหมาย ที่อยู่ทางด้านซ้าย
ค่าคงที่ String
ข้อความที่อยู่ในเครื่องหมาย " " ก็คือ "Thai Programmer WEB" เป็นตัวอย่างหนึ่งของค่าคงที่ String (String constant) ค่าคงที่ นั้นมีลักษณะต่างจาก ตัวแปรก็คือ เปลี่ยนแปลงค่าไม่ได้นั่นเอง กล่าวคือ ไม่สามารถถูกำหนด ค่าใหม่ได้ ในขณะที่ Program กำลังทำงานอยู่ เราจะกำหนดค่าคงที่ในขณะเริ่มต้นเขียนโปรแกรม และจะยังคงค่านี้ไว้ตลอดช่วงการคงอยู่ของโปรแกรม
พรีโพรเซสเซอร์ ไดเรคทีฟ (Preprocessor directive)
ข้อความต่อไปนี้
#include
อาจดูเหมือนเป็นข้อความคำสั่งของโปรแกรม แต่จริงๆแล้ว ไม่ใช่ บรรทัดนี้ไม่ได้เป็นส่วนหนึ่งของตัว Function และไม่ได้สิ้นสุดด้วยเครื่องหมาย ; ดั่งเช่นข้อความคำสั่งของโปรแกรม แต่บรรทัดแรกกลับเริ่มต้นด้วย # เราเรียกบรรทัดนี้ว่า พรีโพรเซสเซอร์ ไดเรคทีฟ (Preprocessor directive) จะเป็นคำสั่งที่ให้ตัว Compiler รวมเอาส่วนหนึ่งของ Compiler ที่เรียกว่า พรีโพรเซสเซอร์ (Preprocessor) เข้ามารวมก่อน ที่จะทำการ Compile โปรแกรม อย่างแท้จริง
Comment หรือ หมายเหตุ
หมายเหตุ เป็นส่วนหนึ่งของโปรแกรม เกือบทุกๆ โปรแกรม โดยจะช่วยคนที่กำลังเขียนโปรแกรม และใครก็ตาม ผู้ซึ่งจะต้องอ่าน File ต้นฉบับ สามารถเข้าใจได้ว่าอะไรกำลังดำเนินงานอยู่ Compiler จะเมินเฉยต่อ หมายเหตุ ดังนันหมายเหตุ จะไม่ทำมให้ Source Code หรือระยะเวลา ของการเอกซิคิวท์ เพิ่มขึ้น (Execution time) เครื่องหมายสำหรับ Comment มีดังนี้
// ข้อความหมายเหตุ
สำหรับมายเหตุชนิดนี้ จำทะการ หมายเหตุ ได้ทั่ง บรรทัดเพียงบรรทัดเดียว โดบข้อความที่อยู่หลัง เครื่องกมาย // จะเป็นข้อความหมายเหตุ
/* ข้อความหมายเหตุ */
สำหรับหมายเหตุแบบนี้ ใช้ในการหมายเหตุ กับ ข้อความ ที่อยู่ระหว่างบรรทัดคำสั่ง หรือ หมายเหตุข้อความได้ทีละหลายๆ บรรทัด เพราะข้อความหมายเหตุ จะอยู่ภายใน /*........ */

thanks,http://www.thai-programmer.com

ป้ายกำกับ: ,

0 ความคิดเห็น:

แสดงความคิดเห็น

สมัครสมาชิก ส่งความคิดเห็น [Atom]

<< หน้าแรก