Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Encapsulation ใน C++ (การห่อหุ้มข้อมูล)

    Encapsulation (การห่อหุ้ม) เป็นหลักการสำคัญของ OOP ที่ รวม Data (Attributes) และ Methods (Behaviors) ไว้ในหน่วยเดียวคือ Class และ ซ่อนรายละเอียดการทำงานภายใน (Implementation Details) ไว้จากภายนอก หลักการหลัก Data Hiding: ทำ Data Members เป็น private Controlled Access: ให้เข้าถึงผ่าน public Methods

  2. Local Class ใน C++ (คลาสภายในฟังก์ชัน)

    Local Class คือ คลาสที่ประกาศ ภายในฟังก์ชัน (Function) หรือ Block ใช้ได้เฉพาะใน Scope นั้นๆ เท่านั้น ลักษณะสำคัญ Scope จำกัดอยู่ใน Function/Block ที่ประกาศ ไม่สามารถเข้าถึงได้จากภายนอก Function Member Functions ต้อง Define ภายใน Class Definition เท่านั้น ไม่สามารถมี Static Data Members (แต่ Static

  3. Nested Classes ใน C++ (คลาสซ้อน)

    Nested Class (คลาสซ้อน) คือ คลาสที่ประกาศ ภายในคลาสอื่น เรียกคลาสภายนอกว่า Enclosing Class ลักษณะสำคัญ เป็น Member ของ Enclosing Class (เหมือน Variable/Function) มี Access Specifier ของตัวเอง (public/private/protected) Enclosing Class ไม่มีสิทธิ์พิเศษ เข้าถึง private ของ Nested Class Nested Class

  4. Constructors ใน C++ (Constructor ทุกประเภท)

    Constructor เป็น Member Function พิเศษที่ทำงานเมื่อสร้าง Object ชื่อเดียวกับ Class ไม่มี Return Type ใช้สำหรับ Initialize Object ประเภทของ Constructor ประเภท ลายเซ็น คำอธิบาย Default ConstructorClassName()ไม่มีพารามิเตอร์ (หรือทุกตัวมี default) Parameterized ConstructorClassName(args...)รับพา

  5. Copy Constructor ใน C++ (Constructor คัดลอก)

    Copy Constructor เป็น Constructor พิเศษที่สร้าง Object ใหม่โดย คัดลอกจาก Object เดิมของคลาสเดียวกัน ลายเซ็นมาตรฐาน ClassName(const ClassName& other); ต้องรับ const reference เพื่อป้องกัน Infinite Recursion (ถ้ารับ by value จะต้อง copy อีกครั้ง) โค้ดตัวอย่าง #include <iostream> using namespac

  6. Destructors ใน C++ (ทำลายออบเจกต์)

    Destructor เป็นฟังก์ชันพิเศษที่ทำงานอัตโนมัติเมื่อ Object สิ้นสุดอายุ (Out of scope, delete, จบโปรแกรม) ลักษณะสำคัญ ชื่อเหมือนคลาส แต่ขึ้นต้นด้วย ~ (tilde) ไม่มีพารามิเตอร์ และ ไม่มีคืนค่า แต่ละคลาสมีได้ เพียง 1 ตัว (ไม่ overload ได้) ทำงาน อัตโนมัติ - ไม่เรียกเอง (ยกเว้น placement new) โค้ดตัวอ

  7. Default Constructors ใน C++ (Constructor แบบไม่มีพารามิเตอร์)

    Constructor เป็นฟังก์ชันพิเศษที่ทำงานอัตโนมัติเมื่อสร้าง Object ของคลาส ชื่อเหมือนคลาส ไม่มี return type Default Constructor Constructor ที่ ไม่มีพารามิเตอร์ (หรือพารามิเตอร์ทุกตัวมีค่า default) โค้ดตัวอย่าง #include <iostream> using namespace std; class DemoDC { private: int num1, num2

  8. Access Modifiers ใน C++ (Public, Private, Protected)

    Access Modifiers (ตัวกำหนดการเข้าถึง) ใช้สำหรับ Data Hiding (การซ่อนข้อมูล) ใน OOP ควบคุมว่าใครสามารถเข้าถึงสมาชิกของคลาสได้บ้าง สรุป 3 ระดับการเข้าถึง Modifier ภายในคลาส Derived Class ภายนอกคลาส public✓✓✓ protected✓✓✗ private✓✗✗ 1. Public Access Modifier เข้าถึงได้จากที่ไหนก็ได้ #include

  9. Binary Search ใน C++ (การค้นหาแบบทวิภาค)

    Binary Search เป็นอัลกอริทึมค้นหาใน อาร์เรย์ที่เรียงลำดับแล้ว โดยแบ่งช่วงค้นหาลงครึ่งเรื่อยๆ เงื่อนไข อาร์เรย์ต้อง เรียงลำดับแล้ว (Sorted) เข้าถึงแบบ Random Access ได้ (Array, Vector) หลักการทำงาน ตั้งค่า low = 0, high = n-1 คำนวณ mid = (low + high) / 2 เปรียบเทียบ arr[mid] กับค่าที่หา (target)

  10. โปรแกรม C++ เรียงลำดับอาร์เรย์ด้วย Selection Sort (Sorted Array)

    Sorted Array คือ อาร์เรย์ที่ข้อมูลเรียงลำดับแล้ว (น้อยไปมาก หรือ มากไปน้อย) มีอัลกอริทึมการเรียงมากมาย เช่น Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort หลักการ Selection Sort หาค่าน้อยที่สุดในส่วนที่ยังไม่เรียง สลับกับตำแหน่งแรกของส่วนที่ยังไม่เรียง ขยายส่วนที่เร

  11. โปรแกรม C++ ตรวจสอบ Sparse Matrix (เมทริกซ์ลischt)

    Sparse Matrix (เมทริกซ์ลischt) คือ เมทริกซ์ที่ส่วนใหญ่ของสมาชิกเป็นศูนย์ (0) โดยทั่วไปถ้าจำนวน 0 มากกว่าครึ่งหนึ่งของสมาชิกทั้งหมด จะถือว่าเป็น Sparse Matrix ตัวอย่าง Matrix 3x3: 5 0 0 3 0 1 0 0 9 จำนวน 0 = 5 จาก 9 ช่อง (55.5%) → Sparse Matrix ✓ โค้ดโปรแกรมตรวจสอบ Sparse Matrix #include <iostr

  12. โปรแกรม C++ สร้าง Singly Linked List (ลิงค์ลิสต์เดี่ยว)

    Singly Linked List เป็นโครงสร้างข้อมูลพื้นฐานที่ประกอบด้วย Node ต่อกันเป็นโซ่ แต่ละ Node มี: data - ข้อมูล next - จุดชี้ไป Node ถัดไป (NULL ถ้าเป็น Node สุดท้าย) โครงสร้าง Node struct Node { int data; Node* next; }; Node* head = nullptr; // จุดเริ่มต้นของลิสต์ โค้ดโปรแกรม Singly Linked

  13. โปรแกรม C++ สร้าง Circular Singly Linked List (ลิงค์ลิสต์วนแบบเดี่ยว)

    Circular Singly Linked List เป็นลิงค์ลิสต์ที่ Node สุดท้ายชี้กลับไปที่ Head (Node แรก) สร้างวงกลม ลักษณะเฉพาะ Node แต่ละตัวมี data และ next เท่านั้น (เหมือน Singly) Node สุดท้าย next ชี้ไป Head ไม่ใช่ NULL สามารถเริ่มเดินจาก Node ใดก็ได้ และวนกลับมาเดิม ไม่มี ปลาย ชัดเจน - ต้องระวัง Infinite Loop

  14. โปรแกรม C++ สร้าง Doubly Linked List (ลิงค์ลิสต์สองทิศทาง)

    Doubly Linked List เป็นโครงสร้างข้อมูลที่แต่ละ Node มี 3 ส่วน: data - ข้อมูล prev - จุดชี้ไป Node ก่อนหน้า next - จุดชี้ไป Node ถัดไป โครงสร้าง Node struct Node { int data; Node* prev; Node* next; }; Node* head = nullptr; // จุดเริ่มต้นของลิสต์ โค้ดโปรแกรม Doubly Linked List prev;

  15. โปรแกรม C++ ใช้ Array สร้าง Stack (สแต็ก)

    Stack (สแต็ก) แบบ Array ใช้ LIFO (Last In, First Out) เก็บข้อมูลในอาร์เรย์ขนาดคงที่ โครงสร้างข้อมูล const int MAX_SIZE = 100; int stack[MAX_SIZE]; int top = -1; // -1 หมายถึงสแต็กว่าง โค้ดโปรแกรม Stack ด้วย Array = MAX_SIZE - 1) { cout << Stack Overflow! << endl; retur

  16. โปรแกรม C++ ใช้ Linked List สร้าง Stack (สแต็ก)

    Stack (สแต็ก) เป็นโครงสร้างข้อมูลแบบ LIFO (Last In, First Out) - ข้อมูลที่เข้าไปทีหลังจะออกก่อน ออปเปอเรชันหลักของ Stack Push: เพิ่มข้อมูลด้านบน (Top) Pop: ลบข้อมูลด้านบน (Top) Peek/Top: ดูข้อมูลด้านบนโดยไม่ลบ โครงสร้าง Node struct Node { int data; Node* next; }; Node* top = nullptr; /

  17. ฟังก์ชัน acos() ใน C++ STL - หา Arc Cosine (อาร์กโคไซน์)

    acos(x) คืนค่า อาร์กโคไซน์ (Inverse Cosine) ของ x ในหน่วย เรเดียน (radians) ช่วงค่าคือ 0 ถึง π Syntax double acos(double x); float acos(float x); long double acos(long double x); Domain (โดเมน): x ∈ [-1, 1] Range (เรนจ์): [0, π] เรเดียน (0° ถึง 180°) ตัวอย่างโค้ดพื้นฐาน #include <iostream>

  18. ฟังก์ชัน atan2() ใน C++ STL - หาองศาจากพิกัด (x,y)

    atan2(y, x) คืนค่า อาร์กทันเจนต์ (arctangent) ของ y/x ในช่วง -π ถึง +π ระบุโควดранต์ได้ถูกต้องต่างจาก atan() Syntax double atan2(double y, double x); float atan2(float y, float x); long double atan2(long double y, long double x); พารามิเตอร์: y = พิกัด Y, x = พิกัด X คืนค่า: มุมในเรเดียน (-π ถึง π

  19. โปรแกรม C++ ใช้ Array สร้าง Queue (คิว)

    Queue (คิว) แบบ Array ใช้ FIFO (First In, First Out) เก็บข้อมูลในอาร์เรย์ขนาดคงที่ โครงสร้างข้อมูล const int MAX_SIZE = 100; int queue[MAX_SIZE]; int front = -1, rear = -1; โค้ดโปรแกรม Queue ด้วย Array rear) front = rear = -1; } void display() { if (front == -1) { cout <&l

  20. โปรแกรม C++ ใช้ Linked List สร้าง Queue (คิว)

    Queue (คิว) เป็นโครงสร้างข้อมูลแบบ FIFO (First In, First Out) - ข้อมูลที่เข้าไปก่อนจะออกก่อน โครงสร้าง Node สำหรับ Linked List Queue struct Node { int data; Node* next; }; Node* front = nullptr; // หน้าคิว Node* rear = nullptr; // ท้ายคิว โค้ดโปรแกรม Queue ด้วย Linked List next; }

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:20/301  20-คอมพิวเตอร์/Page Goto:1 14 15 16 17 18 19 20 21 22 23 24 25 26