Skip to main content

Basic Concept

Variable (ตัวแปร) คืออะไร ?

ใน C++ ตัวแปรคือตัวแทนที่ใช้เก็บค่าข้อมูล เพื่อให้สามารถนำมาใช้งานในโปรแกรมได้ โดยตัวแปรจะประกอบด้วยชื่อและประเภทข้อมูลที่เกี่ยวข้อง

ตัวอย่าง การประกาศตัวแปร

ใน C++ สามารถประกาศตัวแปรได้ด้วยการใช้คำสำคัญคือ ประเภทของตัวแปร (ซึ่งเดี๋ยวเราจะอธิบายอีกที) เช่น int ที่บอกว่าเป็นประเภทของตัวเลข และตามด้วยชื่อตัวแปรที่ต้องการ

เช่น

int myVariable;

ในตัวอย่างนี้ เราได้ประกาศตัวแปรชื่อ myVariable โดยมีประเภทข้อมูลเป็น int ซึ่งหมายถึงจำนวนเต็ม (integer)

ประเภทของตัวแปร

ใน C++ มีประเภทของตัวแปรหลายประเภทที่ใช้งานได้ ตัวอย่างประเภทของตัวแปรที่พบบ่อย ๆ ได้แก่

  1. เก็บค่าจำนวนเต็ม (integer) โดย
    1. short เก็บค่าได้ระหว่าง -32,768 ถึง 32,767
    2. int เก็บค่าได้ระหว่าง -2,147,483,648 ถึง 2,147,483,647
    3. long เก็บค่าได้ระหว่าง -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807
  2. เก็บค่าทศนิยม (floating-point) โดย
    1. float เก็บค่าได้ระหว่าง -3.4 x 10^38 ถึง 3.4 x 10^38
    2. double เก็บค่าได้ราวๆ -1.7 x 10^308 ถึง 1.7 x 10^308
  3. char เก็บค่าอักขระ (character) เช่น ‘A’, ‘c’
  4. bool เก็บค่าตรรกะ (boolean) คือ true (จริง) และ false (เท็จ)

เป็นต้น

ตัวอย่างการใช้งานตัวแปรประเภทต่างๆ และการรับ-ส่งข้อมูลใน C++

ตัวอย่างการใช้งานตัวแปรแบบ int, char

#include <iostream>

int main() {
int myNumber;
std::cout << "กรุณาใส่ตัวเลข: ";
std::cin >> myNumber;
std::cout << "ค่าที่คุณใส่คือ: " << myNumber << std::endl;

char myCharacter;
std::cout << "กรุณาใส่อักขระ: ";
std::cin >> myCharacter;
std::cout << "อักขระที่คุณใส่คือ: " << myCharacter << std::endl;

return 0;
}

ในตัวอย่างนี้ โปรแกรมจะรับค่าตัวเลขจากผู้ใช้และแสดงผลค่าที่ผู้ใช้ใส่เข้ามา และจะรับค่าอักขระจากผู้ใช้และแสดงผลอักขระที่ผู้ใช้ใส่เข้ามา

ผลลัพธ์ก็จะได้เป็นแบบนี้ออกมา (สังเกตว่า โปรแกรมจะไปต่อก็ต่อเมื่อ input มีการรับค่าเข้ามาเพิ่ม ดังนั้น หากไม่มีการใส่ input เข้ามาโปรแกรมก็จะยังคงไม่ทำงานต่อ)

variable-01.webp

ตัวอย่างการใช้งานตัวแปรแบบ float

#include <iostream>

int main() {
float myFloat;
std::cout << "กรุณาใส่ค่าทศนิยม: ";
std::cin >> myFloat;
std::cout << "ค่าที่คุณใส่คือ: " << myFloat << std::endl;

return 0;
}

ในตัวอย่างนี้ โปรแกรมจะรับค่าทศนิยมจากผู้ใช้และแสดงผลค่าที่ผู้ใช้ใส่เข้ามา เมื่อลอง run program และลองใส่ทศนิยมดูก็จะสามารถใส่ค่าเข้ามาได้

variable-02.webp

สังเกตว่า เมื่อเราใส่ตัวอักษรเข้ามา ภาษา c++ เองก็ทำการ handle ให้แสดงผลออกมาเป็นตัวเลขออกมาแทน รวมถึงกับเคสก่อนหน้าเช่นเดียวกัน หากเราใส่ตัวอักษรในส่วนของตัวเลข

variable-03.webp

ก็จะเจอว่า โปรแกรมเกิดการ crash เกิดขึ้น (โปรแกรมจะไม่ทำงานไปยัง cin ตัวต่อไปที่รับค่า character) เมื่อพยายามใส่ตัวอักษรใน cin ที่เป็น integer ในโปรแกรม C++ โปรแกรมจะไม่สามารถรับค่าได้ เนื่องจากการแปลงค่าตัวอักษรเป็น integer ไม่สามารถทำได้ ผลลัพธ์ที่เกิดขึ้นคือโปรแกรมจะอ่านค่าเป็น 0 เนื่องจากผลลัพธ์ของการแปลงค่าตัวอักษรเป็น integer ที่ไม่สามารถทำได้จะเป็น 0 ตลอดเวลา ดังนั้นค่าที่รับเข้ามาจะไม่มีผลต่อการทำงานหรือผลลัพธ์ของโปรแกรม

ดังนั้น หากมีการประกาศใช้ตัวแปรประเภทไหน ต้องรับค่าประเภทนั้นเข้าไปเช่นกัน (ในการ handle error เหล่านี้ เดี๋ยวเราจะมีการพูดถึงอีกทีในบทหลังๆกันนะครับ)

Operator

Operator คือสัญลักษณ์หรือตัวดำเนินการที่ใช้ในการดำเนินการกับตัวแปรหรือข้อมูลในโปรแกรม เพื่อทำการคำนวณหรือเปลี่ยนแปลงค่าข้อมูลตามต้องการ

ในภาษา C++ มีตัวดำเนินการหลายรูปแบบที่ใช้ในการทำงานกับตัวแปร จะขอแบ่งกลุ่มออกเป็น

  1. Arithmetic Operators คือ operator สำหรับการดำเนินการทางคณิตศาสตร์
  • + : ใช้ในการบวกเลขหรือเชื่อมต่อสตริง (string concatenation)
  • - : ใช้ในการลบเลขหรือเปลี่ยนเครื่องหมายลบ (negation)
  • * : ใช้ในการคูณเลขหรือการทำการซ้ำ (repetition)
  • / : ใช้ในการหารเลข
  • % : ใช้ในการหารเลขและคืนเศษจากการหาร (modulo)
  1. Relational Operators คือ operator สำหรับการเปรียบเทียบ และคืนค่ากลับออกมาเป็น boolean
  • == : ใช้ในการเปรียบเทียบความเท่ากันของข้อมูล
  • != : ใช้ในการเปรียบเทียบความไม่เท่ากันของข้อมูล
  • > : ใช้ในการเปรียบเทียบค่าข้อมูลว่ามีค่ามากกว่าหรือไม่
  • < : ใช้ในการเปรียบเทียบค่าข้อมูลว่ามีค่าน้อยกว่าหรือไม่
  • >= : ใช้ในการเปรียบเทียบค่าข้อมูลว่ามีค่ามากกว่าหรือเท่ากับหรือไม่
  • <= : ใช้ในการเปรียบเทียบค่าข้อมูลว่ามีค่าน้อยกว่าหรือเท่ากับหรือไม่

3. Logical Operators คือ operator ที่ใช้สำหรับรวม condition

  • && : ใช้ในการตรวจสอบเงื่อนไขทั้งสองว่าเป็นจริงหรือไม่ (logical AND)
  • || : ใช้ในการตรวจสอบเงื่อนไขใด ๆ ว่าเป็นจริงอย่างน้อยหนึ่งเงื่อนไข (logical OR)
  • ! : ใช้ในการเปลี่ยนค่าจริงเป็นเท็จ หรือเท็จเป็นจริง (logical NOT)

Note = Operator ที่ใช้ในการกำหนดค่าตัวแปร (Assignment) ไม่ได้ใช้สำหรับการเปรียบเทียบค่าที่เท่ากัน หากต้องการเปรียบเทียบการเท่ากันในการเขียนโปรแกรม ต้องใช้ == แทน

ตัวดำเนินการเหล่านี้ช่วยให้เราสามารถทำการคำนวณ ตรวจสอบเงื่อนไข หรือเปลี่ยนแปลงค่าข้อมูลได้ในโปรแกรม C++ ในหัวข้อนี้ เดี๋ยวเราจะแนะนำการใช้ Arithmetic Operators กันก่อน โดยเราจะลองใช้ร่วมกับตัวแปร เพื่อให้เห็นภาพการใช้งาน Operator ทั่วไปมากขึ้น ****ในส่วนของ Relational และ Logical นั้น เราจะมาพูดคุยกันในหัวข้อ Control Flow อีกที

Arithmetic Operators

มาดูตัวอย่างเบื้องต้น การใช้งานตัวดำเนินการทางคณิตศาสตร์ใน C++ กัน โดย

ตัวอย่างที่ 1 จะเป็นพื้นฐานการใช้ร่วมกับตัวแปร interger โดยทำการใช้ร่วมกับ +, -, *, /, % ตามตัวอย่างต่อไปนี้

#include <iostream>

int main() {
int num1 = 10;
int num2 = 5;
int sum = num1 + num2;
int difference = num1 - num2;
int product = num1 * num2;
int quotient = num1 / num2;
int remainder = num1 % num2;

std::cout << "ผลรวม: " << sum << std::endl;
std::cout << "ผลต่าง: " << difference << std::endl;
std::cout << "ผลคูณ: " << product << std::endl;
std::cout << "ผลหาร: " << quotient << std::endl;
std::cout << "เศษ: " << remainder << std::endl;

return 0;
}

ในตัวอย่างนี้ เรามีตัวแปร num1 และ num2 ที่เก็บค่าตัวเลข และใช้ตัวดำเนินการ +, -, *, /, % เพื่อดำเนินการทางคณิตศาสตร์กับตัวแปรเหล่านี้ โดยเก็บผลลัพธ์ลงในตัวแปร sum, difference, product, quotient, และ remainder ตามลำดับ

ผลลัพธ์ที่ได้จะเป็นดังนี้:

ผลรวม: 15
ผลต่าง: 5
ผลคูณ: 50
ผลหาร: 2
เศษ: 0

ตัวอย่างที่ 2 ในภาษา C++ เราสามารถใช้ตัวดำเนินการ + กับ character ได้ แต่หากเรานำมาต่อ character กันแบบนี้โดยตรงเช่นเคสนี้

#include <iostream>

int main() {
char firstCharacter = 'H';
char secondCharacter = 'i';
char space = ' ';
char exclamationMark = '!';

std::cout << firstCharacter + secondCharacter + space + exclamationMark << std::endl;

return 0;
}

ผลลัพธ์จะออกมาเป็นดังนี้

242

The char type in C++ is essentially a small integer type that represents characters as their ASCII values. For example, the character 'H' has an ASCII value of 72, 'i' is 105, ' ' (space) is 32, and '!' (exclamation mark) is 33.

char ใน c++ โดยพื้นฐานนั้นมีการเก็บเป็นตัวเลขเอาไว้ เรียกว่า ASCII (การเข้ารหัสตัวอักษรให้กลายเป็นตัวเลขเพื่อใช้เป็น standard ในการเก็บระหว่าง computer และอุปกรณ์ electronic ที่แสดงผล Text ออกมาได้ สามารถอ่านเพิ่มเติมได้ ที่นี่) จากเคสนี้

  • 'H' มีค่าเท่ากับ 72
  • 'i' มีค่าเท่ากับ 105
  • ' ' มีค่าเท่ากับ 32
  • '!' มีค่าเท่ากับ 33

จึงได้ผลลัพธ์เป็น 242 ออกมานั่นเอง (จริงๆ มีวิธีการต่อ character ให้กลายเป็น String อยู่ แต่จะขอเก็บไว้เป็นหัวข้อถัดไปเนื่องจากต้องมีการพึ่งพา library เพิ่มเติมสำหรับการทำเรื่องนี้)

และนี่คือตัวอย่างการใช้ Operator โดยประมาณ ในเรื่อง Operator นั้นเดี๋ยวเราจะได้เจอกันเรื่อยๆตลอดการเรียนใน Course นี้เช่นเดียวกัน

รู้จักกับ Array

Array (อาร์เรย์) คือโครงสร้างข้อมูลที่ใช้ในการเก็บข้อมูลหลายๆ ชิ้นในตำแหน่งเดียวกัน โดยสามารถเข้าถึงและใช้งานข้อมูลใน Array ได้โดยอ้างอิงถึงตำแหน่งของข้อมูลใน Array ด้วยตัวดัชนี (index) ซึ่งเริ่มต้นที่ 0

Array ทำให้เราสามารถจัดเก็บข้อมูลที่เกี่ยวข้องกันได้ในตำแหน่งเดียว ทำให้ง่ายต่อการเข้าถึงและประมวลผลข้อมูลใน Array โดยสามารถใช้ Loop (ที่เดี๋ยวเราจะอธิบายเพิ่มเติมกันอีกที) เพื่อทำงานกับข้อมูลใน Array ได้อย่างมีประสิทธิภาพ

ตัวอย่างเช่นเราสามารถใช้ Array เพื่อเก็บข้อมูลตัวเลขด้วยการสร้าง Array และกำหนดค่าให้กับแต่ละตำแหน่งของ Array ดังนี้:

int numbers[] = {1, 2, 3, 4, 5};

ในตัวอย่างนี้ เราสร้าง Array ชื่อ numbers ที่เก็บตัวเลข 1, 2, 3, 4, 5 โดยใช้เครื่องหมาย [] เพื่อระบุว่าเป็น Array และกำหนดค่าให้แต่ละตำแหน่งของ Array ด้วยเครื่องหมาย {}

เมื่อเรามี Array เราสามารถเข้าถึงและใช้งานข้อมูลใน Array ได้โดยการอ้างอิงถึงตำแหน่งของข้อมูลใน Array ด้วยตัวดัชนี (index) โดยเริ่มต้นที่ 0

ตัวอย่างการเข้าถึงและใช้งานข้อมูลใน Array:

int firstNumber = numbers[0]; // ใช้ตัวดัชนี 0 เพื่อเข้าถึงตัวเลขแรกใน Array
int secondNumber = numbers[1]; // ใช้ตัวดัชนี 1 เพื่อเข้าถึงตัวเลขที่สองใน Array

ในตัวอย่างนี้ เราใช้ตัวดัชนี 0 เพื่อเข้าถึงตัวเลขแรกใน Array และใช้ตัวดัชนี 1 เพื่อเข้าถึงตัวเลขที่สองใน Array

Array เป็นสิ่งสำคัญในการเขียนโปรแกรมเพราะช่วยให้เราสามารถจัดเก็บและใช้งานข้อมูลหลายๆ ชิ้นในตำแหน่งเดียวกันได้อย่างมีประสิทธิภาพ

อีกเคสหนึ่งคือการประกาศประเภทก่อน แล้วค่อย assign ทีหลัง

#include <iostream>

int main() {
int numbers[5]; // ประกาศ Array ชื่อ numbers ที่มีขนาด 5

numbers[0] = 10; // กำหนดค่าให้ตำแหน่งแรกของ Array เป็น 10
numbers[1] = 20; // กำหนดค่าให้ตำแหน่งที่สองของ Array เป็น 20
numbers[2] = 30; // กำหนดค่าให้ตำแหน่งที่สามของ Array เป็น 30
numbers[3] = 40; // กำหนดค่าให้ตำแหน่งที่สี่ของ Array เป็น 40
numbers[4] = 50; // กำหนดค่าให้ตำแหน่งที่ห้าของ Array เป็น 50

std::cout << "ตำแหน่งที่ 1 ของ Array คือ " << numbers[0] << std::endl;
std::cout << "ตำแหน่งที่ 2 ของ Array คือ " << numbers[1] << std::endl;
std::cout << "ตำแหน่งที่ 3 ของ Array คือ " << numbers[2] << std::endl;
std::cout << "ตำแหน่งที่ 4 ของ Array คือ " << numbers[3] << std::endl;
std::cout << "ตำแหน่งที่ 5 ของ Array คือ " << numbers[4] << std::endl;

return 0;
}

ในตัวอย่างนี้ เราประกาศ Array ชื่อ numbers ที่มีขนาด 5 และกำหนดค่าให้แต่ละตำแหน่งของ Array ด้วยตัวดัชนี โดยกำหนดให้ตำแหน่งแรกของ Array เป็น 10, ตำแหน่งที่สองของ Array เป็น 20, ตำแหน่งที่สามของ Array เป็น 30, ตำแหน่งที่สี่ของ Array เป็น 40, และตำแหน่งที่ห้าของ Array เป็น 50

จากนั้นโปรแกรมจะแสดงผลลัพธ์ออกทางหน้าจอว่า "ตำแหน่งที่ 1 ของ Array คือ 10", "ตำแหน่งที่ 2 ของ Array คือ 20", "ตำแหน่งที่ 3 ของ Array คือ 30", "ตำแหน่งที่ 4 ของ Array คือ 40", และ "ตำแหน่งที่ 5 ของ Array คือ 50"

และนี่คือ Array เดี๋ยวเราจะให้เห็นภาพการใช้ประโยชน์จาก Array มากขึ้นในหัวข้อของ Loop กันอีกทีนะครับ

แนะนำตัวแปร String

ตัวแปรประเภท String ใน C++ คือตัวแปรที่ใช้เก็บข้อมูลเป็นชุดอักขระหรือข้อความ ซึ่งสามารถใช้ในการเก็บข้อมูลที่เป็นคำพูด ประโยค หรือข้อความต่าง ๆ ได้ เช่น การเก็บชื่อ นามสกุล ที่อยู่ หรือข้อความอื่น ๆ

โดยการใช้งาน String ใน c++ นั้นต้องนำเข้า library <string> เพื่อใช้งานตัวแปรประเภท String ใน C++ ได้

ตัวอย่างการประกาศตัวแปรประเภท String ใน C++:

#include <iostream>
#include <string>

int main() {
std::string myString = "Hello, World!";
std::cout << myString << std::endl;

return 0;
}

ในตัวอย่างนี้ เราได้ประกาศตัวแปรชื่อ myString ที่มีประเภทข้อมูลเป็น std::string ซึ่งเป็นคลาสในไลบรารี <string> ของ C++ และกำหนดค่าให้เป็น "Hello, World!" จากนั้นโปรแกรมจะแสดงผลค่าของตัวแปรนี้ออกทางหน้าจอ

ตัวแปรประเภท String ใช้ในการจัดการข้อมูลที่เป็นข้อความได้หลากหลาย เช่น การเชื่อมต่อสตริงด้วยตัวดำเนินการ + หรือการเข้าถึงตัวอักษรแต่ละตัวในสตริงด้วยตัวดำเนินการแบบ Array [] (ระบุ index ที่ต้องการเข้าถึง) เป็นต้น (เดี๋ยวจะมีแนะนำเพิ่มเติมในหัวข้อ Loop อีกที)