C++ Language

Download Report

Transcript C++ Language

C++ Language
By Atikom Tancharoen
Chapter 1
รู ้จักกับภาษาคอมพิวเตอร์
การสงั่ งานคอมพิวเตอร์ด ้วยภาษา
โปรแกรม
ภาษาเครือ
่ งจะอยูใ่ นรูปแบบของรหัสเลขฐานสอง
(Binary Code) ซงึ่ จะประกอบด ้วยตัวเลขอยูเ่ พียงแค่ 2ตัว
นั่นคือ 0 และ 1 เรียงสลับและต่อกันเป็ นความหมายที่
เครือ
่ งคอมพิวเตอร์เข ้าใจ มันเป็ นเรือ
่ งยากถ ้าจะให ้
มนุษย์สามารถเข ้าใจในภาษานัน
้ ได ้
ื่ สารกับ
ต่อมาจึงมีการพัฒนาภาษาสาหรับสอ
คอมพิวเตอร์ทม
ี่ นุษย์เข ้าใจ โดยใชตั้ วอักษร
ภาษาอังกฤษมากาหนดเป็ นรูปแบบคาสงั่ ซงึ่ สว่ นใหญ่
เป็ นคาทีม
่ ม
ี ค
ี วามหมายในภาษาอังกฤษ แต่การทีจ
่ ะทา
ให ้เครือ
่ งเข ้าใจภาษาทีพ
่ ัฒนาขึน
้ มาได ้นัน
้ ต ้องมี
การสงั่ งานคอมพิวเตอร์ด ้วยภาษา
โปรแกรม(2)
ภาษาทัง้ หมดทีม
่ นุษย์พัฒนากันขึน
้ มา สามารถ
แบ่งระดับตามลักษณะและการทางานของแต่ละภาษา
ได ้เป็ น 3 ระดับ
ภาษาระดับตา่ (Low level language) เป็ นภาษาที่
ใกล ้เคียงกับภาษาเครือ
่ งมากทีส
่ ด
ุ สามารถเขียนคาสงั่
เพือ
่ ติดต่อสงั่ งานกับอุปกรณ์ฮาร์ดแวร์ได ้โดยตรง
โปรแกรมทีเ่ ขียนจะทางานได ้รวดเร็ว แต่ปัญหาคือ
โปรแกรมทีเ่ ขียนด ้วยภาษาระดับตา่ สาหรับเครือ
่ ง
คอมพิวเตอร์แบบหนึง่ โปรแกรมนัน
้ จาไม่สามารถ
นาไปใชกั้ บคอมพิวเตอร์อก
ี แบบหนึง่ ได ้ ตัวอย่างของ
การสงั่ งานคอมพิวเตอร์ด ้วยภาษา
โปรแกรม(3)
ภาษาระดับสูง(High level language) เป็ นภาษาที่
ื่ สารกันตามปกติ คาสงั่ ต่างๆ
ใกล ้เคียงกับภาษาทีใ่ ชส้ อ
ี ของ
มักเป็ นคาทีม
่ ค
ี วามหมายในภาษาอังกฤษ แต่ข ้อเสย
ภาษาระดับสูงคือ มักไม่มค
ี าสงั่ ในการติดต่อกับอุปกรณ์
้ าภาษาระดับตา่
ฮาร์ดแวร์โดยตรง และทางานชากว่
ตัวอย่างภาษาระดับสูงได ้แก่ Pascal, Cobol, Fortran,
Visual Basic, Java, PHP เป็ นต ้น
ภาษาระดับกลาง เนือ
่ งจากภาษาระดับตา่ และสูง
ี ทีแ
ต่างก็มข
ี ้อดีและข ้อเสย
่ ตกต่างกัน ดังนัน
้ ภาษาC จึง
ี และนาเอาข ้อดีของ
พัฒนาขึน
้ มาโดยปรับปรุงข ้อเสย
ภาษาทัง้ 2 ระดับมาใช ้ โดยคาสงั่ ภาษาC เป็ นทีม
่ ี
Chapter 2
ภาษาC++ เบือ
้ งต ้น
โครงสร ้างของโปรแกรม
โครงสร ้างของโปรแกรม(2)
สว่ นประกอบเบือ
้ งต ้นของ C++ มีดงั นี้
1. Comments or Remark หมายถึงสว่ นทีเ่ ป็ นการอธิบายหรือ
หมายเหตุในโปรแกรม เขียนไว ้ในเครือ
่ งหมาย /* ........... */
หรือเขียนตามหลังเครือ
่ งหมาย // ก็ได ้ ในขณะทีแ
่ ปล
Compiler ของ C++ จะไม่นาไปแปลด ้วย แต่ต ้องเขียน
Comments อยูภ
่ ายในเครือ
่ งหมายให ้ถูกต ้อง โดยที่ /* ........ */
หรือ // มักใชกั้ บ Comment หลายๆบรรทัด สว่ น // ใชกั้ บการ
Comments ตามหลัง Statement เป็ นสว่ นใหญ่
2. #include <iostream.h> บรรทัดทีข
่ น
ึ้ ต ้นด ้วย # นีจ
้ ะต ้องมีเสมอ
ในทุกโปรแกรม เรียกว่า Preprocessor เรียกคาว่า include ที่
ื่ ไฟล์ทอ
ตามเครือ
่ งหมาย # นีว้ า่ directive และชอ
ี่ ยูใ่ น
้ อ
เครือ
่ งหมาย <…> (จะใชเครื
่ งหมาย “…” แทนก็ได ้) เรียกว่า
header file หรือ include file ซงึ่ เป็ นไฟล์ทเี่ ก็บไว ้ในคลังคาสงั่
โครงสร ้างของโปรแกรม(3)
#include <iostream.h> หมายถึง การสงั่ ให ้ Compiler นา
ื่ มาให ้คือไฟล์ iostream.h มารวมกับ
สงิ่ ทีอ
่ ยูใ่ นไฟล์ทก
ี่ าหนดชอ
source file ขณะทาการ link เพือ
่ ให ้ได ้ Executable file นั่น
หมายความว่า ในโปรแกรมทีเ่ ราสร ้างขึน
้ ได ้มีการเรียกใช ้
ั ทีถ
ฟั งก์ชน
่ ก
ู เก็บไว ้ใน Header File นัน
้
ั หลักของโปรแกรมคือ
3. Void main() เป็ นการเรียกใชฟั้ งก์ชน
ั main() ซงึ่ จะต ้องมีชอ
ื่ ฟั งก์ชน
ั นีเ้ สมอ ฟั งก์ชน
ั main()
ฟั งก์ชน
ั หลัก จะประกอบไปด ้วยวงเล็บเปิ ด { เป็ นการเริม
เป็ นฟั งก์ชน
่ ต ้น
ื่
ภายในมีการประกาศตัวแปร มีประโยคคาสงั่ ของภาษา C++ มีชอ
ั อืน
้
ั main()
ฟั งก์ชน
่ ๆ ทีผ
่ ู ้เขียนสร ้างขึน
้ แล ้วเรียกใชภายในฟั
งก์ชน
ั ด ้วยวงเล็บปิ ด }
แล ้วจบฟั งก์ชน
ื่ ประเภทข ้อมูล(data type) ทีใ่ ห ้ค่าว่าง
คาว่า void เป็ นชอ
ั ไม่มก
ื่ ฟั งก์ชน
ั ทีถ
จะทาให ้ฟั งก์ชน
ี ารสง่ ค่าใดๆกลับไปยังชอ
่ ก
ู
ั ใด
เรียกใช ้ ทงั ้ นี้ เนือ
่ งจากใน C++ เมือ
่ มีการเรียกใชฟั้ งก์ชน
ั หนึง่ เมือ
ั ทางานเสร็จแล ้ว จะต ้องสง่ ค่า
ฟั งก์ชน
่ ฟั งก์ชน
ื่ ฟั งก์ขน
คืนกลับมายังจุดทีเ่ รียกใชช้ อ
ั เสมอ เพือ
่ ไม่ให ้สง่ คือค่า
โครงสร ้างของโปรแกรม(4)
4. cout << "My name is Mr.Sirichai Namburi \n";
cout << "Office : Computer Department,RIPA";
เป็ นสว่ นของประโยคคาสงั่ หรือ Statement ใน
ภาษาC++ ซงึ่ ต ้องเขียนให ้ถูกต ้องตามไวยากรณ์ของ
ภาษา ทุกประโยคต ้องจบด ้วยเครือ
่ ง semicolon (;) เสมอ
สาหรับคาว่า cout เป็ น object ซงึ่ ถูกเก็บไว ้ในไฟล์
ื่ ไฟล์ iostream.h ไว ้
iostream.h ดังนัน
้ จึงต ้องกาหนดชอ
ในสว่ นของ preprocessor directive ด ้วย
โครงสร ้างของโปรแกรม(5)
#define เป็ นpreprocessor directive อย่าง ใช ้
ื่ ค่าคงที่ ให ้เท่ากับค่าหนึง่ ซงึ่ อาจจะเป็ น
กาหนดชอ
ั่ เป็ นต ้น ตัวอย่างเชน
่ #define PI 3.14
ค่าคงที่ ฟั งก์ชน
(ภาษา C) ซงึ่ เป็ นการกาหนดให ้ค่า PI เท่ากับ 3.14 แต่
ในภาษา C++ มีกฎไวยากรณ์เข ้มงวดมาก ไม่แนะนาให ้
ใช ้ แต่ควรใชค้ าสงวน const มากาหนดค่าคงทีแ
่ ทน
่
่ าหนดให้
อมาโคร
#define
ค่าทีก
่ ชื
ดังเชน
const
double
PI
= 3.14;ก ับมาโคร
#define FIRST 1000 //กาหนดค่าให ้มาโครเป็ นตัวเลข
#define MESSAGE “Hello” //ถ ้าจะกาหนดค่าให ้มาโครเป็ นข ้อความต ้อง
ใสเ่ ครือ
่ งหมาย “ “
#define SECOND FIRST+200 // กาหนดค่าให ้มาโครเป็ นผลลัพธ์จากการ
คานวณ
โครงสร ้างของโปรแกรม(6)
Ex. #include <iostream>
#define NAME "Dev Book"
#define NUM1 100
#define NUM2 NUM1+100
#define SUM(a,b) a+b
using namespace std;
int main()
{
cout<<"Programming Language : "<<NAME<<endl;
cout<<"Num1 = "<<NUM1<<endl;
cout<<"Num2 = "<<NUM2<<endl;
cout<<"Sum = "<<SUM(3,2)<<endl;
system("PAUSE");
return 0;
}
คาสงั่ using
#include < iostream.h >
void main()
{
std::cout<<"test";
}
จาก โค ้ดด ้านบนนีค
้ อ
ื การเขียนแบบไม่อ ้างอิง std (standard)ด ้วยคาสงั่
namespaceดังนัน
้ มือ
่ อ ้างถึงคาสงั ้ cout ( รวมถึง cin และendl ) จึงจาเป็ นต ้องอ ้างถึงคาสงั่
มาตราฐานจาก std
่ นีเ้ นือ
สาเหตุทเี่ ป็ นเชน
่ ง มากจาก การเขียนภาษา C++ นัน
้ ในบางครัง้ จะมีการ
อ ้างอิงหลักการแตกต่างกันไปเนือ
่ งชุดคาสงั่ ของ C++ มีการสร ้างขึน
้ มาใหม่อย่างมากมาย
ดังนัน
้ จึงมีการกาหนดมาตราฐานการเขียนขึน
้ มาเพือ
่ ให ้การเรียกใชค้ าสงั่ ได ้อย่างถูกต ้อง
ซงึ่ Bjarne ผู ้สร ้าง C++ แนะนาให ้เขียนดังนีค
้ อ
ื
#include < iostream >
using namespace std; //ชว่ ยลดขัน
้ ตอนให ้ไม่จาเป็ นต ้องอ ้างถึง std ทุกครัง้
void main()
{
อักขระ Escape sequence
อักขระประเภทนีค
้ อ
ื อักขระพิเศษทีถ
่ ก
ู กันไว ้ เพือ
่
ตีความหมายเป็ นอย่างอืน
่ ซงึ่ สว่ นใหญ่จะใชอั้ กขระ ‘\’
เป็ นตัวกัน
อักขระ Escape sequence(2)
EX.
ี งเตือน
cout << '\a'; //สง่ เสย
้
cout << '\x0a'; //ใชเลขฐาน
16 เท่ากับการใช ้ ‘\n‘ คือขึน
้ บรรทัดใหม่
้
cout << "test_\010"; //ใชเลขฐาน
8 เท่ากับการใช ้ ‘\b‘ คือลบตัวอักษร 1
ตัว ผลลัพธ์คอ
ื test
สรุป ถ ้าจะใชค้ าสงั่ Escape sequence ต ้องอยู่
ภายใต ้เครือ
่ งหมาย’…’ หรือถ ้ามีข ้อความด ้วยก็ต ้องอยู่
ภายตาย “….” ดังตัวอย่างข ้างต ้น
การแสดงผลและการรับข ้อมูล
ความหมายของการแสดงผล
การแสดงผล หมายถึง การสงั่ ให ้คอมพิวเตอร์นา
ข ้อมูลและผลลัพธ์ทม
ี่ อ
ี ยูใ่ นหน่วยความ จาไปแสดงผล
ออกทีอ
่ ป
ุ กรณ์แสดงผล (output device) ของ
คอมพิวเตอร์ การแสดงผลทีอ
่ ป
ุ กรณ์แสดงผลอาจมีเพียง
่
อุปกรณ์เดียว หรือหลาย ๆ อุปกรณ์พร ้อมกันก็ได ้ เชน
แสดงผลทีจ
่ อภาพ เครือ
่ งพิมพ์(Printer)
ลาโพง แผ่นดิสก์ เป็ นต ้น
การแสดงผลทางจอภาพด ้วย cout
จากรูปแบบโครงสร ้างของโปรแกรม C++ จะเห็นตัวอย่าง
้
การใชประโยคค
าสงั่ cout (อ่านว่า c - out ซเี อาต์ ย่อมา
การแสดงผลและการรับข ้อมูล(2)
cout เป็ นออบเจ็กต์(object) อยูใ่ นไฟล์ iostream.h ซงึ่
cout จะเป็ น object ทีท
่ าหน ้าทีด
่ าเนินการเกีย
่ วกับกระแส
่ ป
ข ้อมูล(Stream) ของภาษา C++ ออกไปแสดงผลสูอ
ุ กรณ์
ต่าง ๆ
ื่ ว่า put to
<< เป็ น operator หรือตัวดาเนินการ มีชอ
หรือสง่ ไปที่ หรือเรียกว่า insertion หมายถึง การแสดง
ข ้อความ เครือ
่ งหมาย << จะทาหน ้าทีน
่ าค่าทีอ
่ ยูท
่ างขวา
ของเครือ
่ งหมายซงึ่ อาจจะเป็ นค่าคงที่ ข ้อความหรือ string
ทีอ
่ ยูใ่ นเครือ
่ งหมาย "……" หรือค่าตัวแปร(variable) ก็ได ้ สง่
ให ้แก่
้
Object ทีอ
่ ยูท
่ างซายของเครื
อ
่ งหมาย
รู ปแบบการแสดงผลข้อความทางจอภาพ โดยใช้
cout << มีดงั นี ้
การแสดงผลและการรับข ้อมูล(3)
Ex1. cout_exp.cpp แสดงการใช ้ cout << แสดงข ้อความออกทางจอภาพ
/* Program : cout_exp.cpp
Process : display cout object in iostream.h */
#include <iostream.h>
using namespace std;
int main()
{
cout << "This is Turbo C++ Program ";
cout<< "C++ is high language";
system("PAUSE");
return 0;
}
่ งกระแสข้อมู ลข้อความ
จากตัวอย่างโปรแกรมนี ้ cout จะทาหน้าทีส่
This is Turbo C++ Program C++ is high language ไปแสดงทีจ
่ อภาพ ณ ตาแหน่ง
ี้ ยู่
ปั จจุบน
ั ที่ cursor ชอ
การแสดงผลและการรับข ้อมูล(4)
Ex2. แสดงข ้อความต่อกันโดยใช ้ << ออกทางจอภาพ
/* Program : cout_ex2.cpp
Process : display cout object in iostream.h
*/
#include <iostream.h>
using namespace std;
int main()
{
cout<< "This is Turbo C++ Program."<<" "<<" It is very easy.";
cout<< "I love C++."<<" "<<"It's high level language.";
system("PAUSE");
return 0;
}
้
จากโปรแกรมจะแสดงข้อความต่อไปนี บนจอภาพ
This is Turbo C++ Program. It is very easy. I love C++. It's high level
language.
การแสดงผลและการรับข ้อมูล(5)
การร ับข้อมู ลจากคีบอร ์ดด้วย cin
ในการเขียนโปรแกรมเพือ
่ การประมวล มีความจาเป็ นอย่าง
ยิง่ ทีโ่ ปรแกรมด ้วยทัว่ ไป จะต ้องมีการรับข ้อมูลจากผู ้ใช ้ (user) ผ่าน
้
ทางคียบ
์ อร์ดหรือแป้ นพิมพ์ เพือ
่ ความยืดหยุน
่ ในการใชงาน
้
โปรแกรม ใน C++ สามารถใชออปเจ็
กต์ cin ทีอ
่ ยูใ่ นไฟล์
iostream.h เพือ
่ รับข ้อมูลจากคียบ
์ อร์ดและ อุปกรณ์อน
ื่ ๆ ได ้ มี
รูปแบบดังนี้
ื่ ตัวแปร;
cin >> ชอ
ื่ ตัวแปร>>ชอ
ื่ ตัวแปร>>ชอ
ื่ ตัวแปร>>…;
cin>>ชอ
ี น
โดยที่ cin อ่านว่า ซอ
ิ ย่อมาจาก character in ซงึ่ หมายถึงการรับ
ข ้อมูลในลักษณะของอักษร cin เป็ นออปเจ็กต์ทส
ี่ ร ้างอยูใ่ นไฟล์
iostream.h
ื่ ว่า เอ๊กซแ
์ ทร็กชน
ั (extraction >> เป็ นโอเปเรเตอร์ ซงึ่ มีชอ
้
การแสดงผลและการรับข ้อมูล(6)
Ex. แสดงการรับ ค่าจานวนตัวเลขและตัวอักษรทางแป้ นพิมพ์
เพือ
่ เก็บไว ้ในตัวแปร โดยใช ้ cin>>
#include <iostream>
using namespace std;
int main()
{
int x, y;
char a;
cout << "Enter number x, y : ";
cin >> x >> y;
cout << "Enter char a : ";
cin >> a;
cout << "x = " << x <<endl;
cout << "y = " << y <<endl;
cout << "a = " << a <<endl;
system("PAUSE");
return 0;
}
้
จากโปรแกรมจะแสดงข้อความต่อไปนี บนจอภาพ
การแสดงผลและการรับข ้อมูล(7)
่
ตาแหน่ งแสดงผลทีจอภาพด้
วย endl
การใช ้ endl เป็ นโอเปอเรเตอร์ประเภทตัวผสม (manipulator) ทาหน ้าที่
เลือ
่ นเคอร์เซอร์ เพือ
่ ขึน
้ บรรทัดใหม่และการแสดงผลข ้อความทีต
่ ามมาจะขึน
้
บรรทัดใหม่ด ้วย ตัวอย่างโปรแกรม endl_exp.cpp แสดงข ้อความ และก าหนดให ้
แสดงข ้อความขึน
้ บรรทัดใหม่ด ้วย manipulator คือ endl
Ex.
#include <iostream>
using namespace std;
int main()
{
cout << "This is Turbo C++ Program"<<endl;
cout << "It is very easy."<<endl;
cout <<endl<<endl; // space 2 line
cout << "I like C++ Program"<<endl<<endl;
cout << "Press any key to continue..."<<endl;
system("PAUSE");
return 0;
}
Chapter 3
ข ้อมูลและตัวแปรในภาษา C++
ชนิดข ้อมูล (Data Type)
ชนิดข ้อมูลในภาษา C++ มีอยูห
่ ลายชนิดด ้วยกัน บาง
้ ้ทันที(Built-in Type)เพราะว่าได ้ถูกกาหนดไว ้แล ้ว
ชนิดใชได
บางชนิดจะต ้องรวมไฟล์ไลบารีเ่ ข ้ามาในโปรแกรมก่อน
ในบทนีจ
้ ะขอพิจารณาเฉพาะชนิด Built-in ซงึ่
แบ่งกลุม
่ ได ้ดังต่อไปนี้
้ บข ้อมูลชนิด
- กลุม
่ ชนิดจานวนเต็ม กลุม
่ นีส
้ ว่ นใหญ่จะใชเก็
จานวนเต็ม ได ้แก่ ชนิด bool, char, int, long และ short
้ บข ้อมูลชนิดทีเ่ ป็ นจุด
- กลุม
่ ชนิดจานวนจริง กลุม
่ นีจ
้ ะใชเก็
ทศนิยม ได ้แก่ float, double และ long double
้ บข ้อมูลในลักษณะเป็ นเซตจานวนเต็ม
- กลุม
่ ชนิดทีใ่ ชเก็
ชนิดข ้อมูลในกลุม
่ นี้ จะใชค้ าสงวน enum
่ คลาส
- กลุม
่ ชนิดทีส
่ ร ้างขึน
้ มาใหม่ตามมาตรฐาน c++ เชน
string เป็ นต ้น
- กลุม
่ ชนิดอืน
่ ๆ ได ้แก่ พอยน์เตอร์ อาร์เรย์ คลาส
ชนิดข ้อมูล (Data Type) (2)
ชนิ ดข้อมู ล
่ บข้อมู ลได้
ช่วงทีเก็
จานวนไบท ์(1ไบท ์
= 8บิต)
bool
True/false หรือ 0 กับ 1
1
char
*--128 ถึง 127 หรือ 0 ถึง
256
-32,768 ถึง 32,767
1
int
*อย่างน ้อยหรือเท่ากับ 2,147,483,648 ถึง
2,147,483,647
4
long int
*อย่างน ้อยหรือเท่ากับ 2,147,483,648 ถึง
2,147,483,647
4
signed char
-128 ถึง 127
1
short int
2
ชนิดข ้อมูล (Data Type) (3)
ชนิ ดข้อมู ล
่ บข้อมู ลได้ จานวนไบท ์(1ไบท ์
ช่วงทีเก็
= 8บิต)
unsigned long
*อย่างน ้อยหรือเท่ากับ
0 ถึง 4,294,967,295
4
float
*อย่างน ้อยหรือเท่ากับ
EXP -37 ถึง EXP +38
4
6 (GNU = 8)
*อย่างน ้อยหรือเท่ากับ
EXP -307 ถึง EXP
+308
long double
10 (GNU = 12)
*อย่างน ้อยหรือเท่ากับ
้
หมายเหตุ * จะขึ
น
้ อยู
ก
่ บ
ั ถึงตัEXP
วคอมไพล์ทใี่ ชและ
EXP
-4931
+4932ยดข ้อมูล ดูเพิม
CPU สาหรับรายละเอี
่ เติมได ้จาก
double
ชนิดข ้อมูล (Data Type) (4)
Ex. ตัวอย่างโปรแกรมดูจานวนไบท์ของชนิดข ้อมูลแต่ละชนิด
#include <iostream>
using namespace std;
int main()
{
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;
cout<< "Size of bool =
"<<sizeof(bool)<< " bytes"<<endl;
cout<< "Size of long int =
"<<sizeof(long int)<< " bytes"<<endl;
cout<< "Size of signed char =
"<<sizeof(signed char)<< " bytes"<<endl;
cout<< "Size of unsigned short =
"<<sizeof(unsigned short)<< " bytes"<<endl;
cout<< "Size of unsigned int =
"<<sizeof(unsigned int)<< " bytes"<<endl;
system("PAUSE");
return 0;
}
หน ้าทีข
่ องตัวแปร
ตัวแปร(Variable) คือการจองพืน
้ ทีเ่ ก็บข ้อมูลใน
หน่วยความจาของเครือ
่ งคอมพิวเตอร์พร ้อมกับกาหนด
ื่ เรียกแทนหน่วยความจาในตาแหน่งนัน
ชอ
้ เปรียบเทียบ
ได ้กับจองห ้องทีม
่ เี ลขทีป
่ ระจาห ้องให ้กับข ้อมูล เวลาจะ
้
ื่ ของตัวแปร
ใชงานข
้อมูลใดก็ให ้เรียกผ่านชอ
ื่
ยกตัวอย่าง ถ ้าเราสร ้างตัวแปรมา 1ตัว โดยใชช้ อ
ว่า Num สาหรับเก็บค่าตัวเลข 16 เมือ
่ ต ้องการนาจานวน
้
ื่ Num ตัว
16 นัน
้ มาใชงาน
เราก็เพียงแต่เรียกชอ
แปลภาษาจะแปลความหมายถูกต ้องว่า Num ก็คอ
ื การ
้
นาค่าตัวเลข 16 ทีเ่ ก็บไว ้ในหน่วยความจามาใชงาน
รูปแบบของการประกาศตัวแปร
type name;
type : ชนิดของตัวแปร
ื่ ของตัวแปร ซงึ่ จะต ้องตัง้ ให ้ถูกต ้องตามหลักของ
name : ชอ
ภาษาC++
ตัวอย่างการประกาศตัวแปร แสดงดังต่อไปนี้
ื่ num เพือ
int num; //สร ้างตัวแปรชอ
่ เก็บข ้อมูลชนิดตัวเลข
จานวนเต็ม
ื่ y เพือ
float y; //สร ้างตัวแปรชอ
่ เก็บข ้อมูลชนิดตัวเลขทิศนิยม
ื่ c เพือ
char c; //สร ้างตัวแปรชอ
่ เก็บข ้อมูลชนิดอักขระ
ื่ salary เพือ
double salary; //สร ้างตัวแปรชอ
่ เก็บข ้อมูลชนิด
ตัวเลขทศนิยม
รูปแบบของการประกาศตัวแปร(2)
นอกจากนีเ้ รายังสามารถกาหนดค่าเริม
่ ต ้นให ้กับตัว
แปรไปพร ้อมกับการประกาศตัวแปรได ้ด ้วยดังแสดง
name
ต่type
อไปนี
้ = value;
type : ชนิดของตัวแปร
ื่ ของตัวแปร
name : ชอ
value : ค่าทีจ
่ ะกาหนดให ้กับตัวแปร
ตัวอย่างการประกาศตัวแปร แสดงดังต่อไปนี้
ื่ num เป็ นชนิดจานวนเต็มซงึ่ มีคา่ เริม
int num = 3; //สร ้างตัวแปรชอ
่ ต ้นเป็ น
3
ื่ PI เป็ นชนิดจานวนทศนิยมซงึ่ มีคา่ เริม
float PI = 3.14; //สร ้างตัวแปรชอ
่ ต ้น
เป็ น 3.14
ื่ c เป็ นชนิดอักขระซงึ่ มีคา่ เริม
char c = ‘A’; //สร ้างตัวแปรชอ
่ ต ้นเป็ น A
ื่ salary เป็ นชนิดจานวนทศนิยมซงึ่ มี
double salary = 0.3; //สร ้างตัวแปรชอ
รูปแบบของการประกาศตัวแปร(2)
ในกรณีทจ
ี่ ะสร ้างตัวแปรชนิดเดียวกันมากกว่าหนึง่
ตัว เราสามารถประกาศตัวแปรทัง้ หมดพร ้อมกันในคาสงั่
name_1,
เดีtype
ยวได
้ดังนี้ name_2, name_3, …, name_n;
int num1, num2, num3;
float point1, point2, point3 = 12.00;
char a, b = ‘@’, c = ‘*’;
ตัวอย่างการประกาศตัวแปร แสดงดังต่อไปนี้
ื่ num1 num2 และnum3 เพือ
int num; //สร ้างตัวแปรชอ
่ เก็บข ้อมูล
ชนิดตัวเลขจานวนเต็ม
ื่ point1 point2 และpoint3 เพือ
float y; //สร ้างตัวแปรชอ
่ เก็บข ้อมูล
ชนิดตัวเลขทิศนิยมซงึ่ point3จะมีคา่ เริม
่ ต ้นเป็ น12.00
ื่ a b และc เพือ
char c; //สร ้างตัวแปรชอ
่ เก็บข ้อมูลชนิดอักขระซงึ่ bมี
ค่าเริม
่ ต ้นเป็ น@ และcมีคา่ เริม
่ ต ้นเป็ น*
ื่ ตัวแปร
หลักการตัง้ ชอ
• ต ้องขึน
้ ต ้นด ้วยตัวอักษร A-Z หรือ a-z หรือ
เครือ
่ งหมาย _ (Underscore) เท่านัน
้
ื่ ตัวแปรสามารถใชตั้ วอักษร A-Z หรือ
• ภายใต ้ชอ
a-z หรือตัวเลข 0-9 หรือเครือ
่ งหมาย _
ื่ ห ้ามมีการเว ้นชอ
่ งว่าง หรือใช ้
• ภายในชอ
ั ลักษณ์อน
สญ
ื่ นอกเหนือจากทีร่ ะบุไว ้ในข ้อ 2
• ตัวอักษรตัวเล็กและตัวใหญ่มค
ี วามแตกต่างกัน
ื่ Cat จะไม่เหมือนกับ cat หรือ CAT ดังนัน
โดยชอ
้
จึงต ้องตรวจสอบให ้ดี
ื่ ซ้ากับคาสงวน(Reserved word)
• ห ้ามตัง้ ชอ
ตัวแปรสาหรับข ้อมูลชนิดข ้อความ
ตัวแปรชุดของอักขระทีส
่ ร ้างขึน
้ นีจ
้ ะเรียกว่า
ตัวแปรสตริง ซงึ่ รูปแบบการสร ้างตัวแปร string
สาหรับเก็บข ้อความมีดงั นี้
char name[n]
ื่ ของตัวแปร string
name : ชอ
่ ถ ้าข ้อความ
n : จานวนอักขระในข ้อความบวกเพิม
่ อีกหนึง่ เชน
มี 5 ตัวอักษร จะต ้องกาหนดขนาดเป็ น 6 เนือ
่ งจากในภาษา
c++ มีข ้อกาหนดว่า การเก็บข ้อความตัวสุดท ้ายจะต ้องเป็ น
อักขระว่าง ซงึ่ เขียนแทนด ้วย \0 (เครือ
่ งหมาย \ และเลขศูนย์)
เพือ
่ ให ้ตัวแปลภาษา c++ เข ้าใจว่าเป็ นข ้อความ
Chapter 4
เครือ
่ งหมายและการดาเนินการใน
ภาษา C++
่
เครืองห
มาย
เครือ
่ งหมายการคานวณทาง
คณิตศาสตร์
ตัวอย่างการ
ใช้งาน
ความหมาย
+
การ
ดาเนิ นก
าร
บวก
z=x+y
-
ลบ
z=x–y
*
คูณ
z=x*y
บวกค่าในตัวแปร x กับค่า
ในตัวแปร y ผลลัพธ์เก็บ
ไว ้ทีต
่ วั แปร z
ลบค่าในตัวแปร x กับค่า
ในตัวแปร y ผลลัพธ์เก็บ
ไว ้ทีต
่ วั แปร z
คูณค่าในตัวแปร x กับค่า
ในตัวแปร y ผลลัพธ์เก็บ
ไว ้ทีต
่ วั แปร z