Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Priority Queue ใน C++ STL

    ภาพรวม Priority Queue Priority Queue เป็น Container Adaptor ที่จัดเรียงองค์ประกอบโดยอัตโนมัติให้องค์ประกอบที่มี ความสำคัญสูงสุด (Highest Priority) อยู่ด้านบนสุด ใน C++ ค่าเริ่มต้นคือ Max Heap (ค่ามากที่สุดอยู่บนสุด) ลักษณะสำคัญ ไม่ใช่ FIFO แต่อยู่ที่ Priority-based รองรับการเข้าถึงเฉพาะ Top Elemen

  2. Circular Queue การแทรกและลบข้อมูลใน C++

    ภาพรวม Circular Queue Circular Queue (คิววงกลม) เป็นโครงสร้างข้อมูลแบบ Queue ที่เชื่อมปลายท้ายกับหัวเข้าด้วยกัน แก้ปัญหาของ Linear Queue ที่ใช้ Array แล้วมีพื้นที่ว่างแต่แทรกไม่ได้ เพราะ Front/Rear อยู่ปลาย Array หลักการทำงาน Front - จุดนำข้อมูลออก (Dequeue) Rear - จุดใส่ข้อมูลเข้า (Enqueue) เมื่อ

  3. multimap::find() ใน C++ STL

    ภาพรวม multimap std::multimap เป็น Associative Container ที่เก็บข้อมูลเป็นคู่ Key-Value คล้ายกับ map แต่ อนุญาตให้มี Key ซ้ำกันได้หลายค่า ข้อมูลจะถูกจัดเรียงตาม Key อัตโนมัติ ฟังก์ชัน multimap::find() find(key) ค้นหาและคืนค่า Iterator ชี้ไปยัง องค์ประกอบแรก ที่มี Key ตรงกับที่ระบุ Syntax iterator

  4. ฟังก์ชันที่ไม่สามารถ Overload ได้ใน C++

    ภาพรวม Function Overloading Function Overloading (การโอเวอร์โหลดฟังก์ชัน) คือคุณสมบัติของ C++ ที่อนุญาตให้ประกาศฟังก์ชันหลายฟังก์ชันที่มี ชื่อเดียวกัน แต่มี Parameter List (ลายเซ็น) ต่างกัน กติกาที่ทำให้ Overload ได้ ชื่อฟังก์ชันเหมือนกัน Parameter List ต่างกัน (จำนวน ตัวหรือ ชนิดข้อมูล) Return ty

  5. โปรแกรมคำนวณความน่าจะเป็นคู่สุ่มเป็นคู่น้ำหนักสูงสุดใน C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณความน่าจะเป็นที่คู่ (Pair) ที่สุ่มมาจากสองอาร์เรย์จะเป็น Maximum Weighted Pair โดยคู่น้ำหนักสูงสุดหมายถึงคู่ที่มี: องค์ประกอบตัวแรก = ค่าสูงสุดของอาร์เรย์ 1 องค์ประกอบตัวที่สอง = ค่าสูงสุดของอาร์เรย์ 2 นิยามคู่น้ำหนักสูงสุด กำหนดอาร์เรย์ A (ขนาด m) และอาร์เรย์ B (ขนาด n

  6. โปรแกรมคำนวณความน่าจะเป็นของคีย์ K ในอาร์เรย์ C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณความน่าจะเป็นที่จะพบคีย์ (Key) K ในอาร์เรย์ โดยนิยามว่า: P(K) = (จำนวนครั้งที่ K ปรากฏในอาร์เรย์) / (จำนวนองค์ประกอบทั้งหมดในอาร์เรย์) ขั้นตอนการคำนวณ นับจำนวนองค์ประกอบทั้งหมดในอาร์เรย์ (n) นับจำนวนครั้งที่ K ปรากฏ (count) คำนวณความน่าจะเป็น = count / n ถ้า count = 0 คว

  7. โปรแกรมคำนวณความน่าจะเป็นผู้เล่น A ชนะการแข่งขันใน C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณความน่าจะเป็นที่ผู้เล่น A จะชนะการแข่งขัน โดยที่: ความน่าจะเป็น A ทำประตูได้: a/b ความน่าจะเป็น B ทำประตูได้: c/d ผู้ที่ทำประตูได้ก่อนจะชนะ A เล่นก่อนเสมอ การวิเคราะห์ทางความน่าจะเป็น นี่คือปัญหาลำดับเรขาคณิต (Geometric Series) เหตุการณ์ที่ A ชนะ: รอบที่ 1: A ทำได้ →

  8. โปรแกรมหาผลคูณโหนดระดับ k ในต้นไม้ที่แสดงเป็นสตริง C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลคูณของโหนดที่อยู่ในระดับ (level) k ของ Binary Tree ที่ถูกเข้ารหัสเป็นสตริง รูปแบบสตริงใช้วงเล็บแสดงโครงสร้างต้นไม้ รูปแบบสตริงแทนต้นไม้ รูปแบบ: (root(left_subtree)(right_subtree)) () แทนโหนดว่าง (NULL) ตัวเลขแทนค่าข้อมูลของโหนด (สมมติเป็นหลักเดียว 0-9) ระดับเริ่มจาก 0

  9. โปรแกรมหาผลคูณโหนดใบ (Leaf Nodes) ใน Binary Tree ด้วย C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลคูณของ โหนดใบ (Leaf Nodes) ใน Binary Tree โหนดใบคือโหนดที่ไม่มีลูก (left และ right เป็น NULL ทั้งคู่) นิยามโหนดใบ (Leaf Node) right == nullptr หลักการทำงาน ท่องต้นไม้ทุกโหนด (DFS) เมื่อเจอโหนดใบ ให้นำค่าข้อมูลไปคูณสะสม ฟังก์ชันคำนวณผลคูณโหนดใบ right, product); } โปรแ

  10. โปรแกรมหาผลคูณทุกโหนดใน Binary Tree ด้วย C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลคูณของค่าข้อมูล (data) ของทุกโหนดใน Binary Tree โดยใช้การท่องต้นไม้แบบ Recursive (DFS) โครงสร้าง Binary Tree Node struct Node { int data; Node* left; Node* right; }; หลักการทำงาน ผลคูณของต้นไม้ = (ค่าราก) × (ผลคูณซับทรีซ้าย) × (ผลคูณซับทรีขวา) Base case: ถ้

  11. โปรแกรมหาผลคูณโหนดที่เป็นจำนวนเฉพาะใน Singly Linked List ด้วย C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลคูณของข้อมูลในโหนด (nodes) ของ Singly Linked List ที่มี ค่าข้อมูลเป็นจำนวนเฉพาะ (Prime Number) ไม่ใช่ตำแหน่ง (index) ที่เป็นจำนวนเฉพาะ หมายเหตุสำคัญ: โค้ดต้นฉบับมีความสับสนระหว่าง Prime Index (ตำแหน่งที่เป็นจำนวนเฉพาะ) และ Prime Data (ค่าข้อมูลที่เป็นจำนวนเฉพาะ) โค้ดตัว

  12. โปรแกรมบวกสตริงเลขฐานสอง (Binary Strings) ใน C++

    ภาพรวมปัญหา โปรแกรมนี้ใช้บวกสตริงเลขฐานสอง (Binary Strings) สองตัว และคืนค่าผลลัพธ์เป็นสตริงฐานสอง เช่นกัน โดยไม่แปลงเป็นตัวเลขฐานสิบ กติกาการบวกเลขฐานสอง ABCarry InSumCarry Out 00000 01010 10010 11001 00110 01101 10101 11111 ขั้นตอนการทำงาน เริ่มจากบิตขวามือสุด (Least Significant Bit) ของทั้งส

  13. โปรแกรมหาค่าเฉลี่ยอาร์เรย์แบบ Iterative และ Recursive ใน C++

    ภาพรวม โปรแกรมสาธิตการหาค่าเฉลี่ยของอาร์เรย์จำนวนเต็มสองวิธี: Iterative (วนลูป) และ Recursive (เรียกซ้ำ) สูตรค่าเฉลี่ย Average = (Sum of all elements) / (Number of elements) วิธีที่ 1: Iterative Approach (แบบวนลูป) ใช้ลูป for/while สะสมผลรวม แล้วหารด้วยจำนวนองค์ประกอบ อัลกอริทึม กำหนด sum = 0 วน

  14. โปรแกรมตรวจสอบอาร์เรย์ Bitonic (บิทอนิก) ใน C++

    Bitonic Array คืออะไร? Bitonic Array คืออาร์เรย์ที่มีลำดับค่า เพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) ก่อน แล้วตามด้วยลำดับค่า ลดลงอย่างเคร่งครัด (strictly decreasing) รูปแบบ: a[0] < a[1] < ... a[n-1] ตัวอย่าง อาร์เรย์ผลลัพธ์คำอธิบาย {1, 3, 5, 4, 2, 0}Bitonic1<30 (ลด) {-3, 9, 11, 20, 17, 5

  15. โปรแกรมตรวจสอบเลข Proth Number ใน C++

    Proth Number คืออะไร? Proth Number คือจำนวนเต็มบวกที่สามารถเขียนในรูปแบบ: N = k × 2ⁿ + 1 โดยที่: k เป็นจำนวนเต็มบวกคี่ (odd positive integer) n เป็นจำนวนเต็มบวก (positive integer) k < 2ⁿ (เงื่อนไขเพิ่มเติมในนิยามบางรูปแบบ) Proth Numbers แรกๆ 3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113

  16. โปรแกรมตรวจสอบเลข Buzz Number ใน C++

    Buzz Number คืออะไร? Buzz Number คือจำนวนเต็มบวกที่ตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อจากสองข้อต่อไปนี้: ลงท้ายด้วยเลข 7 เช่น 7, 17, 27, 657, 1007 หารด้วย 7 ลงตัว เช่น 7, 14, 21, 49, 63, 70 หมายเหตุ: เลข 7 ตรงตามเงื่อนไขทั้งสองข้อ ขั้นตอนการตรวจสอบ รับค่าจำนวนเต็มบวก n ตรวจสอบเงื่อนไข: n % 10 == 7

  17. โปรแกรมตรวจสอบจุดสามจุดอยู่บนเส้นตรงเดียวกัน (Collinear) ใน C++

    ภาพรวมปัญหา โปรแกรมนี้ใช้ตรวจสอบว่าจุดสามจุดที่กำหนดอยู่บนเส้นตรงเดียวกัน (Collinear) หรือไม่ โดยใช้หลักเรขาคณิตเรื่องพื้นที่สามเหลี่ยม หลักการทางคณิตศาสตร์ จุดสามจุด (x1,y1), (x2,y2), (x3,y3) จะอยู่บนเส้นตรงเดียวกันก็ต่อเมื่อพื้นที่ของสามเหลี่ยมที่เกิดจากจุดสามจุดนี้เท่ากับศูนย์ สูตรพื้นที่สามเหล

  18. โปรแกรมตรวจสอบอาร์เรย์เป็นพาลินโดรมหรือไม่โดยใช้ STL ใน C++

    ภาพรวมปัญหา โปรแกรมนี้ใช้ตรวจสอบว่าอาร์เรย์ของจำนวนเต็มเป็นพาลินโดรม (Palindrome) หรือไม่ โดยใช้ฟังก์ชันจาก STL (Standard Template Library) ใน C++ พาลินโดรมคือลำดับที่อ่านจากหน้าหรือหลังได้เหมือนกัน เช่น {1, 2, 3, 2, 1} แนวคิด STL ที่ใช้ memcpy - คัดลอกข้อมูลจากอาร์เรย์หนึ่งไปยังอีกอาร์เรย์หนึ่ง r

  19. โปรแกรมตรวจสอบการล้นของถังน้ำเมื่อหยอดลูกบอลทรงกลม n ลูกลงไปใน C++

    ภาพรวมปัญหา โปรแกรมนี้ใช้ตรวจสอบว่าถังน้ำทรงกระบอกจะล้นหรือไม่เมื่อหยอดลูกบอลทรงกลมแข็ง n ลูกลงไปในน้ำ โดยมีข้อมูลที่กำหนด ได้แก่ รัศมีและความสูงของถัง จำนวนลูกบอล รัศมีของลูกบอล และปริมาตรน้ำเริ่มต้นในถัง สูตรคำนวณปริมาตร ทรงกระบอก (ถังน้ำ) 3.14 * r * r * h โดย r คือรัศมีของถัง และ h คือความสูงของ

  20. โปรแกรมคำนวณค่าเฉลี่ยถ่วงน้ำหนักของจำนวนธรรมชาติใน C++

    กำหนดให้มีอาร์เรย์จำนวนธรรมชาติ และอีกอาร์เรย์หนึ่งเก็บน้ำหนัก (weight) ของแต่ละจำนวน ภารกิจคือคำนวณค่าเฉลี่ยถ่วงน้ำหนัก (weighted mean) สูตร $$\overline{x} = \frac{\sum_{i=1}^n (x_i \times w_i)}{\sum_{i=1}^n w_i}$$ โดย x คือจำนวนธรรมชาติ และ w คือน้ำหนักที่สัมพันธ์ ตัวอย่างที่ 1 Input: X[] = {11

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:205/301  20-คอมพิวเตอร์/Page Goto:1 199 200 201 202 203 204 205 206 207 208 209 210 211