แนะนำภาษา C++ เบื้องต้น

 
Home

ประวัติภาษา C , C++
        ค.ศ. 1970 มีการพัฒนาภาษา B โดย Ken Thompson ซึ่งทำงานบนเครื่อง DEC PDP-7 ซึ่ง ทำงานบนเครื่องไมโครคอมพิวเตอร์ไม่ได้ และยังมีข้อจำกัดในการใช้งานอยู่ (ภาษา B สืบทอดมาจาก ภาษา BCPL ซึ่งเขียนโดย Marth Richards)
        ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ได้สร้างภาษา C เพื่อเพิ่มประสิทธิภาพ ภาษา B ให้ดียิ่งขึ้น ในระยะแรกภาษา C ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์โดยทั่วไปนัก
        ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ได้เขียนหนังสือเล่มหนึ่งชื่อว่า The C Programming Language และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C ในการเขียน โปรแกรมมากขึ้น
        แต่เดิมภาษา C ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภายใต้ระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในช่วงปี ค. ศ. 1981 เป็นช่วงของการพัฒนาเครื่องไมโครคอมพิวเตอร์ ภาษา C จึงมี บทบาทสำคัญในการนำมาใช้บนเครื่อง PC ตั้งแต่นั้นเป็นต้นมา และมีการพัฒนาต่อมาอีกหลาย ๆ ค่าย ดังนั้นเพื่อกำหนดทิศทางการใช้ภาษา C ให้เป็นไปแนวทางเดียวกัน ANSI (American National Standard Institute) ได้กำหนดข้อตกลงที่เรียกว่า 3J11 เพื่อสร้างภาษา C มาตรฐานขึ้นมา เรียนว่า ANSI C
        ค.ศ. 1983 Bjarne Stroustrup แห่งห้องปฏิบัติการเบล (Bell Laboratories) ได้พัฒนาภาษา C++ ขึ้นรายละเอียดและความสามารถของ C++ มีส่วนขยายเพิ่มจาก C ที่สำคัญ ๆ ได้แก่ แนวความคิดของการเขียนโปรแกรมแบบกำหนดวัตถุเป้าหมายหรือแบบ OOP (Object Oriented Programming)ซึ่งเป็นแนวการเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่มีความสลับซับซ้อนมาก มีข้อมูลที่ใช้ในโปรแกรมจำนวนมาก จึงนิยมใช้เทคนิคของการเขียนโปรแกรมแบบ OOP ในการพัฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้

Go to Top

ข้อดีของภาษา C และ C++
โปรแกรมเมอร์โดยทั่วไปในปัจจุบันนิยมพัฒนาโปรแกรมด้วยภาษา C และ C++ ด้วยเหตุผล ดังนี้
        1.โปรแกรมเมอร์สามารถสร้างโปรแกรมที่ควบคุมการทำงานของคอมพิวเตอร์และการโต้ตอบระหว่างผู้ใช้กับคอมพิวเตอร์ได้อย่างเต็มประสิทธิภาพ เช่น การเขียนโปรแกรมในลักษณะที่ผู้ใช้ควบคุมโปรแกรมในสภาพแวดล้อม ที่เป็น Event-Driven คือ ผู้ใช้สามารถควบคุมเหตุการณ์ต่าง ๆ ของโปรแกรมในขณะทำงานได้ไม่ใช่ผู้ใช้ถูกควบคุมโดยโปรแกรม ลักษณะการทำงานแบบ Event-Driven ได้แก่โปรแกรมที่ทำงานในสภาพแวดล้อมภายใต้ระบบปฏิบัติการวินโดวส์ เป็นต้น
        2. ภาษา C และ C++ มีประสิทธิภาพของภาษาอยู่ในระดับที่ใกล้เคียงกับภาษา Assembly มากที่ สุด แต่มีความยืดหยุ่นในยึดติดกับฮาร์ดแวร์คอมพิวเตอร์หรือ Microprocessor รุ่นใดรุ่นหนึ่ง ทำให้สามารถ นำโปรแกรมที่สร้างขึ้นไปทำงานได้กับเครื่องคอมพิวเตอร์ได้ทุกรุ่น
        3. ภาษา C++ สนับสนุนการเขียนโปรแกรมในลักษณะเชิงวัตถุหรือ OOP (Object Oriented Programming) ซึ่งเป็นเทคนิคการเขียนโปรแกรมที่นิยมใช้เขียนโปรแกรมขนาดใหญ่ที่มีจำนวนข้อมูลใน โปรแกรมมาก
        4. โปรแกรมเมอร์ส่วนใหญ่จะนิยมใช้ภาษา C, C++ พัฒนาโปรแกรมประยุกต์ในงานด้านต่าง ๆ เป็นจำนวนมากในปัจจุบัน เพราะประสิทธิภาพของภาษาที่ได้เปรียบภาษาอื่น ๆ

Go to Top

ขั้นตอนการพัฒนาโปรแกรมด้วย C++
        การพัฒนาโปรแกรมด้วยภาษา C++ มีขั้นตอนในการสร้างคล้ายกับภาษาระดับสูงทั่วไป แต่ภาษา
C++ ได้จัดเตรียมเครื่องมือในการพัฒนาโปรแกรมในสภาพแวดล้อมที่รวมไว้ด้วยกันแบบเบ็ดเสร็จ ที่เรียก
ว่า IDE (Integrated Development Environment) คือ ได้นำเครื่องมือที่จำเป็นทั้งหมดในการพัฒนา
โปรแกรมมารวมไว้ ด้วยกัน ทั้ง Editor, Compiler, Link Library และ Help เพื่อความสะดวกของผู้ใช้ใน
ขณะทำการพัฒนาโปรแกรม
        การพัฒนาโปรแกรมด้วยภาษา C++ มีขั้นตอนตามลำดับ ดังนี้
        1. ขั้นตอนการสร้าง Source File หรือแฟ้มต้นฉบับเป็น Text File โดยการใช้ส่วน Editor ของ
IDE (หรือสร้างจาก Editor ของโปรแกรมอื่น ๆ ก็ได้) เมื่อสร้างเสร็จ แล้วจึงบันทึก Source File ไว้ โดย
กำหนดส่วนขยายเป็น CPP เช่น TEST.CPP (C Plus Plus) โดย Source File นี้จะต้องสร้างให้ถูกต้องตาม
โครงสร้างและไวยากรณ์ของภาษา C++ ทั้งหมดก่อน
        2. การคอมไพล์ (Compile) คือการใช้ตัวโปรแกรมหรือ Compiler ของ C++ ในการแปล Source
File ให้เป็นไฟล์ภาษาเครื่องที่เรียกว่า Object File หรือ Object Code จะได้ไฟล์ที่มีส่วนขยายเป็น OBJ
เพิ่มขึ้นมาอีกหนึ่งไฟล์ เช่น TEST.OBJ
        3. การเชื่อมโยง (Linking) เป็นขั้นตอนการเชื่อมโยงไฟล์ประเภท OBJ เข้ากับแฟ้มจากคลัง
(Library) ของภาษา C++ จำนวน 1 แฟ้มหรือมากกว่า ซึ่งไฟล์ใน Library นี้จัดเตรียมไว้โดยผู้สร้างภาษา
C++ ผลก็คือจะได้ผลลัพธ์เป็นไฟล์ที่สามารถนำไปทำงาน หรือ Run ได้โดยอิสระ หรือที่เรียกว่า
Executable File มีส่วนขยายเป็น EXE เช่น TEST.EXE เป็นต้น
ขั้นตอนของการสร้าง Source File , การ Compile และการ Link ทั้งหมดจะดำเนินการได้ใน
IDE ของ C++ ที่จัดเตรียมไว้ให้แล้วอย่างอัตโนมัติ ทำให้ผู้เขียนโปรแกรมสามารถทำสร้างโปรแกรมด้วย
ภาษา C++ สะดวกยิ่งขึ้น

ตัวอย่างวิธีการเขียนโปรแกรมและ Compile ด้วย C++
/*Program : First.CPP
Written by: Mr.Nattee Thasklin
Date : 05/2007 */
#include <iostream.h>
void main(void)
{
cout << "My name is Mr.Nattee Thasklin \n";
cout << "Office : Career and Technology Department ,BCC";
}

         ขั้นที่ 1 สร้าง Source File ใน Editor โดยการ Click Mouse ในหน้าต่าง Editor แล้วพิมพ์ รหัส
คำสั่งของภาษา C++ ตามตัวอย่างให้ถูกต้อง
         ขั้นที่ 2 บันทึกแฟ้ม Source File โดยใช้คำสั่งเมนู File, Save เลือกหรือพิมพ์ชื่อไดรฟ์และ
ไดเรกทอรี่ จากนั้นพิมพ์ชื่อไฟล์ First.CPP แล้ว Click ปุ่มคำสั่ง OK หรือใช้ฟังก์ชันคีย์ F2 เพื่อสั่ง
บันทึกแฟ้มก็ได้ (ถ้าต้องการเขียนเป็นภาษา C ให้บันทึกเป็นไฟล์เป็นประเภท C เช่น First.C)
         ขั้นที่ 3 ใช้คำสั่งสั่ง Run, Run หรือ Ctrl+F9 เพื่อทำการ Compile , Link และทดลอง Run
โปรแกรมที่สร้างขึ้นเพื่อทำงาน จากนั้นกดแป้น Alt+F5 เพื่อดูผลการทำงานของโปรแกรมในหน้าต่าง
ผลลัพธ์ (User Screen)
ผลการทำงานจากโปรแกรม หรือผลการ RUN ได้ดังนี้

My name is Mr.Nattee Thasklin
Office : Career and Technology Department ,BCC

        ขั้นที่ 4 กรณีมีข้อผิดพลาด IDE ของ C++ จะไม่สามารถทำการ Compile ได้ จะแจ้งข่าวสารข้อผิด
พลาดไว้ในกรอบหน้าต่าง Message จะต้องแก้ไขให้ถูกต้องก่อน แล้วจึงดำเนินการในขั้นที่ 3 ใหม่

Go to Top

โครงสร้างของโปรแกรม C++
การเขียนโปรแกรมด้วย C++ มีโครงสร้างของโปรแกรมพื้นฐานดังตัวอย่าง
/*Program : First.CPP
Written by: Mr.Nattee Thasklin 1. หมายเหตุหรือคำอธิบาย (comments)
Date : 05/2007 */
#include <iostream.h> 2. Preprocessor, Directive, header file
void main() 3. Function main()
{
cout << "My name is Mr.Nattee Thasklin \n"; 4. Statement ของคำสั่งอยู่ใน block ของ
cout << "Office : Career and Technology Department ,BCC"; เครื่องหมาย{ …. }แต่ละ Statement จบด้วย ;
}
        ส่วนประกอบเบื้องต้นของ C++ มีดังนี้
        1. Comments or Remark หมายถึงส่วนที่เป็นการอธิบายหรือหมายเหตุในโปรแกรม เขียน
อธิบายไว้ในเครื่องหมาย /* ………*/ หรือเขียนตามหลังเครื่องหมาย // ก็ได้ ในขณะที่แปล Compiler
ของ C++ จะไม่นำไปแปลด้วย แต่ต้องเขียน Comments อยู่ภายในเครื่องหมายให้ถูกต้อง โดยที่ /*…..*/
มักใช้กับ Comment หลาย ๆ บรรทัด ส่วน // ใช้กับการ Comments ตามหลัง Statement เป็นส่วนใหญ่
เช่น
/*Program : First.CPP
Written by: Mr.Nattee Thasklin หมายเหตุหรือคำอธิบาย
Date : 05/2007 */
หรือ
cout << "My name is Mr.Nattee Thasklin \n"; // display text to screen
        2. #include <iostream.h> บรรทัดที่ขึ้นต้นด้วย # นี้จะต้องมีเสมอในทุกโปรแกรม เรียกว่า
preprocessor เรียกคำว่า include ที่ตามเครื่องหมาย # นี้ว่า directive และชื่อไฟล์ที่อยู่ในเครื่องหมาย
<…..> (จะใช้เครื่องหมาย “……” แทนก็ได้) เรียกว่า header file หรือ include file ซึ่งเป็นไฟล์ที่เก็บไว้
ในคลังคำสั่ง (Library File) ของ C++
ข้อสังเกต การเขียน preprocessor directive จะต้องเขียนรายการละ 1 บรรทัด และไม่ต้อง
มีเครื่องหมาย ; ที่ท้ายประโยค
#include <iostream.h> หมายถึง การสั่งให้ Compiler นำสิ่งที่อยู่ในไฟล์ที่กำหนดชื่อมา
ให้ คือไฟล์ iostream.h มารวมกับ source file ขณะทำการ link เพื่อให้ได้ Executable file นั่นหมาย
ความว่า ในโปรแกรมที่เราสร้างขึ้น ได้มีการเรียกใช้ฟังก์ชันที่ถูกเก็บไว้ใน Header File นั้น
        3. void main() เป็นการเรียกใช้ฟังก์ชันหลักของโปรแกรมคือ ฟังก์ชัน main() ซึ่งจะต้องมีชื่อ
ฟังก์ชันนี้เสมอ ฟังก์ชัน main() เป็นฟังก์ชันหลัก จะประกอบไปด้วยวงเล็บเปิด { เป็นการเริ่มต้นภายในมี
การประกาศตัวแปร มีประโยคคำสั่งของภาษา C++ มีชื่อฟังก์ชันอื่น ๆ ที่ผู้เขียนสร้างขึ้นแล้วเรียกใช้ภาย
ในฟังก์ชัน main() แล้วจบฟังก์ชันด้วยวงเล็บปิด }
คำว่า void เป็นชื่อ ประเภทข้อมูล(data type) ที่ให้ค่าว่าง จะทำให้ฟังก์ชันไม่มีการส่งค่า
ใด ๆ กลับไปยังชื่อฟังก์ชันที่ถูกเรียกใช้ ทั้งนี้ เนื่องจากใน C++ เมื่อมีการเรียกใช้ฟังก์ชันใดฟังก์ชันหนึ่ง
เมื่อฟังก์ชันทำงานเสร็จแล้ว จะต้องส่งค่าคืนกลับมายังจุดที่เรียกใช้ชื่อฟังก์ชันเสมอ เพื่อไม่ให้ส่งคืนค่าใด
ๆ กลับมา จึงใช้คำว่า void เพื่อกำหนด main() ให้เป็นฟังก์ชันที่ไม่ต้องคืนค่ากลับมา ณ จุดเรียกใช้หรือ
เป็นฟังก์ชันประเภทไม่มีค่านั่นเอง
        4. cout << "My name is Mr.Nattee Thasklin \n";
            cout << "Career and Technology Department ,BCC";
เป็นส่วนของประโยคคำสั่งหรือ Statement ในภาษา C++ ซึ่งต้องเขียนให้ถูกต้องตามไวยากรณ์
ของภาษา ทุกประโยคต้องจบด้วยเครื่อง semicolon (;) เสมอ สำหรับคำว่า cout เป็น object ซึ่งถูกเก็บไว้
ในไฟล์ iostream.h ดังนั้นจึงต้องกำหนดชื่อไฟล์ iostream.h ไว้ในส่วนของ preprocessor directive ด้วย
header file ที่สามารถใช้ร่วมกับ #include ใน C++ เพื่อให้สามารถเรียกใช้คำสั่งหรือฟังก์ชันต่าง
ๆ ที่ผู้ใช้ต้องการได้ ได้แก่รายชื่อไฟล์ในตารางต่อไปนี้ โดยก่อนที่จะเรียกใช้ header file ใดนั้น ผู้ใช้จะ
ต้องตรวจสอบก่อนว่าฟังก์ชันที่ต้องเรียกใช้ถูกสร้างไว้ใน header file ใด เช่น ถ้ามีการเรียกใช้ฟังก์ชัน
getch() ในโปรแกรม จะต้องเขียน preprocessor directive เรียกใช้ header file ที่ชื่อ conio.h เนื่องจาก
ฟังก์ชัน getch() ถูกเก็บไว้ในไฟล์ conio.h ซึ่งเป็นคลังคำสั่ง (Library) ของ C++ มีรูปแบบการเรียกใช้
ดังนี้
            #include <conio.h>

Go to Top

ไอเด็นติฟายเออร์ (identifier) ใน C++
        ไอเด็นติฟายเออร์ (identifier) หมายถึง ชื่อที่มีอยู่ในส่วนต่าง ๆ ของโครงสร้างโปรแกรม C++
ซึ่งได้แก่ ชื่อของ เลเบล (label) คอนสแตนต์ (constant) แวเรียเบิลหรือตัวแปร (variable) ฟังก์ชัน
(function) และชนิดของข้อมูล (data type)
ประเภทของไอเด็นติฟายเออร์ มี 3 ประเภท คือ keyword , standard identifier และ user-defined
identifier มีรายละเอียด ดังนี้
        1. Keyword เป็นชื่อที่มีความหมายและวิธีการใช้แน่นอน ได้กำหนดไว้ในภาษา C++ แล้ว
คอมไพเลอร์จะไม่ยอมให้เราใช้ชื่อนี้ในลักษณะที่แตกต่างไปจากที่กำหนดไว้ ตัวอย่างของ keyword เช่น
void if else int char float case auto return
        2. Standard Identifier หมายถึง ชื่อที่กำหนดขึ้นในคอมไพเลอร์ ชื่อเหล่านี้มีความหมายและวิธี
ใช้ตามเงื่อนไขที่คอมไพเลอร์กำหนดไว้ แต่เราสามารถเปลี่ยนแปลงวิธีการทำงานและเงื่อนไขการใช้ชื่อ
เหล่านี้ได้ โดยคอมไพเลอร์จะยกเลิกเงื่อนไขเดิมและเปลี่ยนมาใช้เงื่อนไขที่เรากำหนดขึ้นใหม่ standard
identifier ส่วนใหญ่จะเป็นชื่อฟังก์ชันที่มีอยู่ใน C++ เช่น abort, abs, arc, ftime, getch, open, rename
เป็นต้น
        3. User-defined identifier หมายถึง ชื่อที่เรากำหนดความหมายและเงื่อนไขในการใช้ขึ้นเองโดย
ผู้ใช้ แต่ตั้งกำหนดขึ้นตามกฎเกณฑ์ของ C++ ซึ่งมีรายละเอียดของกฎการตั้งชื่อ ดังนี้
    - อักขระตัวแรกต้องเป็นตัวอักษรหรือ underscore ( _ ) จะเป็นตัวเลขไม่ได้ ตัวอักขระตัว
ต่อไปจะเป็นตัวอักษร ตัวเลข หรือเครื่องหมาย _ ก็ได้ เรียงกันโดยห้ามมีช่องว่างภายในชื่อ
    - ชื่อห้ามซํ้ากับคีย์เวิร์ด (Keywords) ของภาษา C++ เช่น main void if
    - คอมไพเลอร์จะถือว่าอักษรพิมพ์เล็กและพิมพ์ใหญ่ มีความแตกต่างกัน ดังนั้น
Identifier ชื่อFIRST_PROGRAM กับ first_program จะถือว่าเป็นชื่อต่างกันและเป็นคนละชื่อกัน
    - ชื่อมีความยาวไม่จำกัด แต่จะมีความหมายเฉพาะอักขระ 32 ตัวแรกเท่านั้น แต่ควรตั้ง
ชื่อให้มีความหมายสอดคล้องกับวัตถุประสงค์การนำชื่อนั้นไปใช้ภายในโปรแกรม เพื่อความสะดวกในการจดจำในขณะเขียนโปรแกรม

Go to Top

ชนิดของข้อมูล(Data Type)
ข้อมูลใน C++ แบ่งชนิดข้อมูลออกเป็น 2 ประเภท คือ
1. Simple data type เป็นชนิดข้อมูลที่ใช้แสดงค่าของสิ่งใดสิ่งหนึ่งเพียงรายการเดียว เช่น ค่า
ความสูง นํ้ าหนัก จำนวนนักเรียน อุณหภูมิ ระดับคะแนน เป็นต้น
2. Structure เป็นข้อมูลชนิดใช้แสดงค่าของสิ่งใดสิ่งหนึ่งหลายรายการ เช่น ความสูงของนัก
เรียนใน ชั้น ม. 6, อุณหภูมิของแต่ละวันในเดือนตุลาคม, รายชื่อนักเรียนใน 1 กลุ่ม ต้องกำหนดเป็นข้อมูล
ชนิดโครงสร้างแบบ อาร์เรย์ (array) แบบโครงสร้าง(structure) หรือแบบยูเนียน(union) เป็นต้น
ข้อมูล Simple data type รายละเอียดชนิดของมูลและช่วงของข้อมูลประเภท Simple data type
แสดงได้ดังตารางต่อไปนี้

หมายเหตุ ชื่อชนิดของข้อมูลได้แก่ char, unsigned char , int , unsigned int, short in, long ,
unsigned long , float , double , long double เป็น keyword ที่นำไปกำหนดประเภทข้อมูลที่จะใช้ใน
โปรแกรม

• ตัวอย่างโปรแกรม size_mem.cpp เป็นตัวอย่างโปรแกรมแสดงขนาดของหน่วยความจำที่ข้อ
มูลแต่ละชนิดใช้พื้นที่หน่วยความจำ โดยใช้ คีย์เวิร์ด sizeof ซึ่งให้ค่าขนาดหน่วยความจำที่ข้อ
มูลชนิดนั้นใช้ มีหน่วยเป็น byte
/*Program : size_mem.cpp
Process : Display size of memory for each simple data type
*/
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr(); //clear screen in conio.h
cout<< "Size of char = "<<sizeof(char)<< " bytes"<<endl;
cout<< "Size of unsigned char = "<<sizeof(unsigned char)<< " bytes"<<endl;
cout<< "Size of int = "<<sizeof(int)<< " bytes"<<endl;
cout<< "Size of unsigned int = "<<sizeof(unsigned int)<< " bytes"<<endl;
cout<< "Size of short int = "<<sizeof(short int)<< " bytes"<<endl;
cout<< "Size of long = "<<sizeof(long)<< " bytes"<<endl;
cout<< "Size of unsigned long = "<<sizeof(unsigned long)<< " bytes"<<endl;
cout<< "Size of float = "<<sizeof(float)<< " bytes"<<endl;
cout<< "Size of double = "<<sizeof(double)<< " bytes"<<endl;
cout<< "Size of long double = "<<sizeof(long double)<< " bytes"<<endl;
getch(); //wait for press any key
}

Go to Top

การประกาศตัวแปร (Variable Declaration)
        ตัวแปร (Variables) ในภาษา C++ หมายถึง ชื่อที่กำหนดขึ้นเพื่อใช้เก็บค่าของข้อมูลหรือค่าคงที่
ประเภทต่าง ๆ ในขณะโปรแกรมทำงาน ซึ่งผู้เขียนโปรแกรมต้องตั้งชื่อตัวแปรตามกฎเกณฑ์การตั้งชื่อ
ประเภท user defined identifier
การใช้ตัวแปรในภาษา C++ จะต้องมีการประกาศ (Declaration) ชื่อตัวแปรและประเภทของตัว
แปร (Data type) ไว้ก่อน จึงจะสามารถนำตัวแปรไปใช้ในโปรแกรมได้ มีรูปแบบการประกาศตัวแปรดัง
นี้
      โดยที่ Data_type คือ ชื่อของประเภทข้อมูลของตัวแปร ที่สามารถเก็บค่าได้ เช่น int, float
                variable_name คือ ชื่อของตัวแปรที่ผู้ใช้กำหนดเอง ถ้าในประเภทนั้นมีมากกว่า 1 ตัวให้
ใช้เครื่องหมาย , แยก และจบประโยคด้วยเครื่องหมาย ; (semi-colon)
การประกาศตัวแปรเพื่อใช้ในโปรแกรมของ C++ มี 2 ลักษณะ คือ
1. definition คือ เป็นการประกาศเพื่อกำหนดความหมาย เป็นประโยคคำสั่งที่ประกอบด้วย ชื่อ
ประเภทของตัวแปร และตัวแปร โดยทั่วไปมักจะประกาศไว้ตอนต้น ๆ ของฟังก์ชัน หรือโปรแกรม เช่น
#include <iostream.h>
void main()
{ int number;
float sales, purchase; การประกาศตัวแปรในลักษณะ definition
char grade;
…
}
2. การประกาศแบบกำหนดค่า ณ ตำแหน่งที่ใช้ หมายถึง การประกาศตัวแปร ณ ตำแหน่งที่
ต้องการใช้ตัวแปรในโปรแกรม ก็จะประกาศพร้อมกับหนดค่าให้กับตัวแปรทันที ดังตัวอย่างโปรแกรม
ตัวอย่างโปรแกรม pos_var.cpp แสดงวิธีการประกาศตัวแปร ณ จุดที่ต้องการใช้ในโปรแกรม
/*Program : pos_var.cpp
Process : Show declared varaible at any position in program */
#include <iostream.h>
#include <conio.h>
void main()
{ float sale,price;
clrscr();
sale=500.25;
price=5.25;
float total=sale*price; ประกาศตัวแปร total ณ ตำแหน่งที่ต้องการใช้
cout<< "Total Sale = "<<total;
getch();
}
การประกาศใช้ตัวแปรใน C++ สามารถทำได้ 2 ลักษณะ คือ
    1. Global variable คือ ตัวแปรที่กำหนดหรือประกาศไว้นอกฟังก์ชันใด ๆ ทุกฟังก์ชัน
สามารถนำตัวแปรประเภท Global ไปใช้ได้ทุกฟังก์ชัน เพราะเป็นลักษณะการประกาศแบบสารธรณะ
    2. Local variable คือ ตัวแปรที่กำหนดหรือประกาศไว้ในฟังก์ชันใดฟังก์ชันหนึ่ง
สามารถนำ
ตัวแปรนั้นไปใช้ได้เฉพาะในฟังก์ชันนั้น ๆ เท่านั้น ฟังก์ชันอื่นไม่สามารถนำไปใช้ได้ เพราะประกาศใน
ลักษณะส่วนตัวหรือเฉพาะที่
หมายเหตุ กรณีที่มีการตั้งชื่อตัวแปรประเภท Global และ Local ซํ้ ากัน จะถือว่าเป็นตัวแปรคนละ
ตัวกัน เนื่องจากใช้พื้นที่ในหน่วยความจำในการเก็บข้อมูลในตำแหน่งที่ต่างกัน แต่ถ้ามีการเรียกใช้ชื่อตัว
แปร C++ จะนำตัวแปรประเภท Local มาใช้ก่อนเสมอ

ตัวอย่างโปรแกรม glo_loc.cpp แสดงการประกาศตัวแปรประเภท Global และ Local ใน
โปรแกรม
/*Program : glo_loc.cpp
Process : define global and locat variable */
#include <iostream.h>
#include <conio.h>
char grade; //defined global variable ประกาศตัวแปรประเภท Global Variable
void main()
{ int midterm,final,total; //defined local variable in function main() ประกาศตัวแปรประเภทLocal
clrscr();
main() Variable ในฟังก์ชัน
midterm = 30;
final=50;
total=midterm+final;
grade='A';
cout<< "You get total score "<<total<<" And get grade = " <<grade;
getch();
}
• การกำหนดตัวแปรคงที่(Constant)
        ตัวแปรคงที่หรือคอนสแตนต์ (Constant) หมายถึง ตัวแปรที่เก็บค่าคงที่ที่ไม่สามารถเปลี่ยนแปลง
ได้ การกำหนดคอนสแตนต์ มีจุดประสงค์เพื่อป้องกันมิให้มีการเปลี่ยนแปลงค่าของตัวแปรนั้นในขณะ
ทำงาน สามารถกำหนดได้ทั้งในลักษณะที่เป็น Global และ Local รูปแบบการกำหนดค่าคอนสแตนต์ ใช้
คำว่า const นำหน้าประเภทข้อมูลและชื่อคอนสแตนต์ ดังนี้
const ชนิดข้อมูล ชื่อคอนสแตนต์ = ค่าคงที่;
ตัวอย่างเช่น
const int Day = 7;
const int month = 12;
const float PI = 3.1418926;
const float Amount = 1.0E+2; // คือ 1.0 * 102
const float Rate = 1E-3; // คือ 1 * 10-3
const char name = 'A'; // ให้ค่ารหัส ASCII ของ A คือ 65
const char ch = 'B'; // ให้ค่ารหัส ASCII ของ B คือ 66

ตัวอย่างโปรแกรม contst.cpp แสดงการกำหนดและการใช้ constant ในโปรแกรม มีราย
ละเอียด ดังนี้
/*Program : const.cpp
Process : Display constant in program
*/
#include <iostream.h>
#include <conio.h>
const float rate = 0.05; // Global constant
void main()
{ const float tax=0.03; //Local constant
float sales,income,total_tax;
clrscr();
sales = 8500.50;
income = sales*rate;
total_tax=income*tax;
cout<< "Income = "<< income <<endl;
cout<< "Total tax = "<< total_tax <<endl;
getch();
}

Go to Top

วิธีการกำหนดค่าให้แก่ตัวแปรใน C++ ทำได้ ดังนี้
        1. การใช้ประโยคคำสั่งเครื่องหมายเท่ากับ (=) โดยกำหนดให้ชื่อตัวแปรที่จะใช้เก็บค่าอยู่ทางซ้าย
มือของ เครื่องหมาย = ตัวแปรหรือค่าคงที่อยู่ทางด้านขวาของเครื่องหมาย ดังเช่นตัวอย่างโปรแกรมต่อ
ไปนี้
ตัวอย่างโปรแกรม variable.cpp แสดงการกำหนดค่าคงที่ให้กับตัวแปรในโปรแกรม โดยใช้
เครื่องหมายเท่ากับ =
/*Program : variable.cpp
Process : Display set value of varible */
#include <iostream.h>
#include <conio.h>
void main()
{ int number; //declaration variable การประกาศตัวแปรภายในฟังก์ชันmain()
float sales,purchase; //declaration variable
// set value of variable
number = 50;
sales = 5000.75; การกำหนดค่าคงที่ให้กับตัวแปร
purchase = 3500.50;
clrscr(); // function clear screen from <conio.h>
//show value from variable
cout << "Show varlue of variable"<<endl;
cout << "number = " << number<<endl;
cout << "sales = " << sales<<endl;
cout << "purchase = " << purchase;
getch(); // function getch() for wait to press anykey from <conio.h>
}
หมายเหตุ กรณีเป็นตัวแปรประเภทตัวเลข ค่าคงที่ด้านขวามือห้ามมีเครื่องหมายวรรคตอนใด ๆ
ทั้งสิ้น ยกเว้นจุดทศนิยม ส่วนตัวแปรประเภท char กำหนดค่าคงที่ในเครื่องหมาย '_' เช่น ch = 'A';
        2. การกำหนดค่าเริ่มต้นให้แก่ตัวแปร> เมื่อมีการประกาศใช้ตัวแปรในลักษณะ definition มีการ
กำหนดค่าคงที่ให้แก่ตัวแปรทันที

ตัวอย่างโปรแกรม varia2.cpp แสดงการกำหนดค่าให้แก่ตัวแปร number, sales, purchase
ด้วยเครื่องหมาย = เมื่อประกาศตัวแปรในโปรแกรม
/*Program : varia2.cpp
Process : Display set value of varible */
#include <iostream.h>
#include <conio.h>
void main()
{ int number=500; //declaration and set value variable ประกาศตัวแปร
float sales=500.50,purchase=3500.75; //declaration and set value variable พร้อมกำหนดค่า
clrscr(); // function clear screen from <conio.h>
//show value from variable
cout << "Show varlue of variable"<<endl;
cout << "number = " << number<<endl;
cout << "sales = " << sales<<endl;
cout << "purchase = " << purchase;
getch(); // function getch() for wait to press anykey from <conio.h>
}
        3. การกำหนดค่าตัวแปรโดยการรับค่าทางแป้นพิมพ์ โดยการใช้ฟังก์ชันในการรับข้อมูล (Input)
เข้าไปเก็บไว้ในตัวแปร จะกล่าวรายละเอียดต่อไปในบทที่ 2
ตัวแปรประเภท Global และ Local

Go to Top

การดำเนินการทางคณิตศาสตร์ (Arithmetic Operations)
ในการคำนวณทางคณิตศาสตร์ของภาษา C++ มีการใช้เครื่องหมายสำหรับการคำนวณ ดังนี้
ตาราง แสดงเครื่องหมายคำนวณทางคณิตศาสตร์ใน C++
ข้อสังเกต การใช้โอเปอเรเตอร์ (Operator) ในการเพิ่มค่า(increment) ++ และลดค่า(decrement)

-- มีข้อควรสังเกต ดังนี้
        1. การเพิ่มค่าขึ้นทีละ 1 ได้แก่การเพิ่มค่าให้แก่ตัวแปรครั้งละ +1 เช่น
      count = count +1;
      count +=1;
      count++;
      ++count;
สำหรับ ++ มีวิธีการใช้ 2 วิธี คือ แบบ prefix และ แบบ postfix มีข้อแตกต่างกัน ดัง
ตัวอย่างต่อไปนี้เป็นการใช้ ++ แบบ prefix
price = 5;
volume = 3;
value = price * ++volume; // ค่าของ value คือ 20 ค่าของ volume คือ 4

จากประโยคคำสั่งนี้ ค่าของ volume จะเพิ่มขึ้น 1 ก่อนที่จะนำไปคูณกับ price แล้วนำ
ไปเก็บไว้ในตัวแปร value

ต่อไปนี้ ลองพิจารณาการใช้ ++ แบบ postfix
price = 5;
volume = 3;
value = price * volume++; // ค่าของ value คือ 15 ค่าของ volume คือ 4
จากประโยคคำสั่งนี้ ค่าของ volume คือ 3 จะถูกนำไปคูณกับ price คือ 5 ก่อนแล้วนำ
ไปเก็บไว้ในตัวแปร value จากนั้นจึงเพิ่มค่าของ volume อีก 1 จึงมีค่าเป็น 4
         2. การลดค่าลงทีละ 1 ได้แก่การลดค่าของตัวแปรครั้งละ -1 เช่น
count = count -1;
count -=1;
count--;
--count;
สำหรับ -- มีวิธีการใช้ 2 วิธี คือ แบบ prefix และ แบบ postfix มีข้อแตกต่างการใช้เช่น
เดียวกับการใช้ ++

Go to Top

เครื่องหมายเปรียบเทียบและตรรก (Comparison and Logical Operators)
         การเปรียบเทียบ หมายถึง การหาว่าเมื่อนำค่าที่อยู่ทางด้านซ้ายของเครื่องหมายกับค่าที่อยู่ทางขวา
ของเครื่องหมายเปรียบเทียบ มาเปรียบเทียบกันแล้วจะได้ผลลัพธ์เป็นจริงหรือเท็จ ซึ่งในแต่ละกรณีเมื่อ
เปรียบเทียบกันแล้ว จะได้ค่าเป็นจริงหรือเป็นเท็จเพียงค่าเดียวเท่านั้น โดย C++ จะใช้ค่า 0 แทนเท็จ และ
1 แทน จริง และมีลำดับในการประมวลผลจากซ้ายไปขวา ถ้าไม่มีวงเล็บกำกับไว้ มีเครื่องหมายเปรียบ
เทียบดังนี้
ตาราง แสดงเครื่องหมายเปรียบเทียบใน C++

         การหาค่าลอจิก (Logic) หมายถึง การหาผลลัพธ์จาก Logic operator ซึ่งจะให้ค่าผลลัพธ์ออกมา
เป็นจริงหรือเท็จกรณีใดกรณีหนึ่งเท่านั้น เครื่องหมายที่เป็น Logical operator ใน C++ แสดงไว้ในตาราง
ดังนี้
ตาราง แสดงเครื่องหมายเปรียบเทียบเชิงตรรก (Logical operator) ใน C++

ตาราง แสดงค่าเป็นจริงและเท็จในกรณีต่าง ๆ ที่เป็นไปได้ทั้งหมดของ AND, OR , NOT โดยกำหนดให้
A และ B คือประโยคตรรกที่ให้ค่าจริงหรือเท็จ


ตัวอย่างโปรแกรม logic_tst.cpp เป็นการแสดงค่าตรรกที่ได้จากการเปรียบเทียบด้วยเครื่อง
หมายเปรียบเทียบและ ตัวดำเนินการตรรก โดยค่า 0 แทน เท็จ และ 1 แทนจริง ดังนี้
/*Program : logic_tst.cpp
Process : Test logical value of expression
*/
#include <iostream.h>
#include <conio.h>
void main()
{ clrscr();
cout<< "Display Logic Operation :\a";
cout<< "\nLogic value of expression (3==5) :" <<(3==5);
cout<< "\nLogic value of expression (5==5) :" <<(5==5);
cout<< "\nLogic value of expression (3<=5) :" <<(3<=5);
cout<< "\nLogic value of expression (3>=5) :" <<(3>=5);
cout<< "\nLogic value of expression (3<=5)&&(5>3) :" <<((3<=5)&&(5>3));
cout<< "\nLogic value of expression ((3<=5)&&(3>5)) :" <<((3<=5)&&(3>5));
cout<< "\nLogic value of expression ((3<=5)||(3>5)) :" <<((3<=5)||(3>5));
cout<< "\nLogic value of expression ((8<=5)||(3>=5)) :" <<((8<=5)||(3>=5));
cout<< "\n\nValue 1 is true, 0 is false ....press any key";
getch();
}

Go to Top