Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ฟังก์ชัน arg() สำหรับจำนวนเชิงซ้อนใน C++

    จำนวนเชิงซ้อนและ Argument จำนวนเชิงซ้อน z = x + iy โดย x = real part, y = imaginary part Argument (arg) คือมุมระหว่างแกน real บวกกับเวกเตอร์ของจำนวนเชิงซ้อน วัดเป็นเรเดียน ช่วง (-π, π] สูตร: arg(z) = atan2(y, x) ฟังก์ชัน std::arg() อยู่ใน header `` template<class T> T arg(const complex<T&g

  2. ฟังก์ชัน array::at() ใน C++ STL

    std::array::at() เข้าถึงสมาชิกของ std::array พร้อมตรวจสอบขอบเขต (bounds checking) ปลอดภัยกว่า operator[] Syntax reference at(size_type pos); const_reference at(size_type pos) const; พารามิเตอร์และคืนค่า pos: ดัชนีที่ต้องการเข้าถึง (0-based) คืนค่า: reference ไปยังสมาชิกที่ตำแหน่ง pos ข้อยกเว้น: โ

  3. ฟังก์ชัน array::data() ใน C++ STL

    std::array::data() คืนค่า Pointer ชี้ไปยังสมาชิกแรกของ std::array ใช้สำหรับเข้าถึงหน่วยความจำแบบดิบ (raw memory) หรือส่งต่อให้ C-style API Syntax pointer data() noexcept; const_pointer data() const noexcept; คุณสมบัติ ไม่มีพารามิเตอร์ คืนค่า pointer ไปยัง element แรก (index 0) ถ้าอาร์เรย์ว่าง คืน

  4. การนำคิว (Queue) ไปใช้งานด้วยอาร์เรย์ใน C++

    Queue และ Array Implementation Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First In First Out) การนำไปใช้กับอาร์เรย์ต้องจัดการสองขอบ: Front (top): จุดนำออก (Dequeue) Rear (end): จุดใส่เข้า (Enqueue) การทำงาน เริ่มต้น: front = 0, rear = 0 (คิวว่าง) Enqueue: ใส่ที่ rear, เพิ่ม rear++ Dequeue: ดึงจาก front,

  5. หาผลรวมอาร์เรย์ด้วย C++ STL

    วิธีการหาผลรวมอาร์เรย์ 1. วิธีคลาสสิก (Loop ธรรมดา) #include <iostream> using namespace std; int main() { int arr[] = {2, 5, 7, 8, 2, 6, 9}; int n = 7, sum = 0; for (int i = 0; i < n; i++) sum += arr[i]; cout << Array sum: << sum; // 39 r

  6. การจัดการชนิดอาร์เรย์ (Array Type Manipulation) ใน C++

    Type Traits สำหรับอาร์เรย์ C++ มี `` ที่ให้ฟังก์ชันตรวจสอบและจัดการชนิดอาร์เรย์ได้ใน compile-time 1. std::is_array - ตรวจสอบว่าเป็นอาร์เรย์หรือไม่ #include <type_traits> #include <iostream> #include <array> #include <string> using namespace std; int main() { cout <&l

  7. กำหนดค่าตัวแปรจากสองค่าที่เป็นไปได้โดยไม่ใช้เงื่อนไขใน C++

    ปัญหา มีตัวแปร a ที่มีค่าเป็น x หรือ y ต้องการเปลี่ยนค่า a ให้เป็นอีกค่าหนึ่ง (ถ้า a==x ให้กลายเป็น y, ถ้า a==y ให้กลายเป็น x) ห้ามใช้เงื่อนไข if/else หรือ ternary operator วิธีที่ 1: ใช้คณิตศาสตร์ (บวก-ลบ) สูตร: a = x + y - a ถ้า a = x: a = x + y - x = y ✓ ถ้า a = y: a = x + y - y = x ✓ #include

  8. อาร์เรย์แบบอาสโซ시에ทีฟ (Associative Arrays) ใน C++

    Associative Array คืออะไร? ใน C++ เรียกว่า std::map หรือ std::unordered_map เป็นโครงสร้างข้อมูล Key-Value Pair ที่ Key สามารถเป็นชนิดข้อมูลใดก็ได้ (string, int, float, custom class) ต่างจากอาร์เรย์ทั่วไปที่เข้าถึงด้วย index แบบ integer ตัวอย่าง: Map ระหว่างชื่อรถจักรยานยนต์และความเร็วสูงสุด Key (B

  9. ค่าเฉลี่ยของสตรีมตัวเลขใน C++

    ปัญหา ให้สตรีมตัวเลข ต้องการแสดงค่าเฉลี่ยสะสมหลังจากเพิ่มตัวเลขแต่ละตัว ตัวอย่าง: 24, 76, 29, 63, 88 หลัง 1 ตัว: 24 หลัง 2 ตัว: (24+76)/2 = 50 หลัง 3 ตัว: (24+76+29)/3 = 43 หลัง 4 ตัว: (24+76+29+63)/4 = 48 หลัง 5 ตัว: (24+76+29+63+88)/5 = 56 อัลกอริทึม ใช้สูตรอัปเดตแบบทบต้น (Incremental Average):

  10. ค่าเฉลี่ยของ K ตัวเลขมากที่สุดในสตรีมข้อมูล C++

    ปัญหา ให้อาร์เรย์เริ่มต้น และสตรีมข้อมูลที่เข้ามาเรื่อยๆ ต้องการคำนวณค่าเฉลี่ยของ K ตัวเลขที่มากที่สุดในแต่ละขั้นตอน ตัวอย่าง: n=4, k=3, arr=[4,9,1,5], stream=[2,6,3,7] เริ่มต้น: 3 ตัวมากที่สุดคือ 9,5,4 → ค่าเฉลี่ย = 6 เพิ่ม 2: ไม่เข้า top 3 → ค่าเฉลี่ย = 6 เพิ่ม 6: แทนที่ 4 → top 3 คือ 9,6,5 → ค่า

  11. ทำให้สตริงสมดุลโดยลบวงเล็บเกินใน C++

    ปัญหา ให้สตริงที่มีวงเล็บเปิด ( และวงเล็บปิด ) ปนอยู่ในตัวอักษร ต้องการลบวงเล็บที่เกินออก เพื่อให้สตริงสมดุล (balanced parentheses) ตัวอย่าง: )Tutor)ials(p(oin)t(...) → Tutorials(p(oin)t(...)) อัลกอริทึม สร้างตัวแปร count = 0 นับวงเล็บเปิดที่ยังไม่ถูกปิด วนอ่านตัวอักษรทีละตัวจากซ้ายไปขวา: ถ

  12. จำนวนเฉพาะสมดุล (Balanced Prime) ใน C++

    จำนวนเฉพาะสมดุล คืออะไร? จำนวนเฉพาะที่มีความต่างกับจำนวนเฉพาะก่อนหน้าและถัดไปเท่ากัน คือค่าเฉลี่ยของจำนวนเฉพาะสองข้าง สูตร: Pₙ = (Pₙ₋₁ + Pₙ₊₁) / 2 จำนวนเฉพาะ: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, ... จำนวนเฉพาะสมดุลตัวแรกๆ: 5, 53, 157, 173, ... 5 = (3+7)/2 ✓ 53 = (47+59)/2 ✓

  13. การแสดงผลตัวเลขในรูปแบบไบนารีใน C++

    ตัวเลขไบนารี (Binary Number) ตัวเลขที่ประกอบด้วยเลข 0 และ 1 เท่านั้น เช่น 1101 วิธีที่ 1: ใช้ Recursion (เวียนเกิด) หลักการ: หารตัวเลขด้วย 2 ซ้ำๆ เก็บเศษ แล้วพิมพ์จากล่างขึ้นบน #include <iostream> using namespace std; void toBinary(unsigned n) { if (n > 1) toBinary(n / 2);

  14. ผลรวมกำลังสองของสัมประสิทธิ์ไบนอมิอัลใน C++</x2Title> <xTitle>ผลรวมกำลังสองของสัมประสิทธิ์ไบนอมิอัลใน C++

    สัมประสิทธิ์ไบนอมิอัล (Binomial Coefficients) สัมประสิทธิ์ในขยายพหุนาม (a+b)ⁿ คือ ⁿCᵣ = n! / (r!(n-r)!) สามารถจัดเรียงเป็นสามเหลี่ยมปาสคาลได้ ปัญหา หาผลรวมของกำลังสองของสัมประสิทธิ์ไบนอมิอัลทั้งหมด: Σ(r=0 to n) (ⁿCᵣ)² = (ⁿC₀)² + (ⁿC₁)² + ... + (ⁿCₙ)² สูตรทางคณิตศาสตร์ มีข้อเท็จจริงที่สำคัญ: Σ(r=0

  15. ผลรวมกำลังสองของจำนวนฟีโบนัชชีใน C++

    จำนวนฟีโบนัชชี (Fibonacci Numbers) ลำดับที่เริ่มจาก 0, 1 และตัวถัดไป = ผลรวมของสองตัวก่อนหน้า F0 = 0, F1 = 1 Fn = Fn-1 + Fn-2 (n ≥ 2) ลำดับ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... ปัญหา หาผลรวมของกำลังสองของจำนวนฟีโบนัชชี n ตัวแรก สูตร: Σ(i=0 to n) Fi² ตัวอย่าง n = 4: 0² + 1² + 1² + 2² + 3² = 0 + 1 +

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

    Binary Search คืออะไร? Binary Search (การค้นหาแบบทวิภาค) เป็นอัลกอริทึมค้นหาที่มีประสิทธิภาพ ใช้กับข้อมูลที่ จัดเรียงแล้ว ทำงานโดยแบ่งช่วงค้นหาลงครึ่งเรื่อยๆ จนพบค่าที่ต้องการหรือช่วงค้นหาว่างเปล่า หลักการทำงาน กำหนดช่วงค้นหา: Low = 0, High = n-1 คำนวณตำแหน่งกลาง: mid = (Low + High) / 2 เปรียบเทีย

  17. เพิ่มค่าของโหนดที่มากกว่าใน BST ให้กับทุกโหนดใน C++

    ปัญหา ให้ Binary Search Tree (BST) ต้องการแปลงให้แต่ละโหนดมีค่าใหม่ = ค่าเดิม + ผลรวมของโหนดที่มีค่ามากกว่ามันทั้งหมด นี่คือการแปลง BST เป็น Greater Sum Tree วิธีแก้ปัญหา: Reverse Inorder Traversal ใช้การท่องในออร์เดอร์แบบกลับ (Right → Root → Left) เพื่อเยี่ยมชมโหนดจากค่ามากไปน้อย: ท่องด้านขวาก่อน

  18. ผลรวมของผลรวม n จำนวนธรรมชาติแรกใน C++

    ปัญหา หาผลรวมของผลรวมของ n จำนวนธรรมชาติแรก สูตร: S = 1 + (1+2) + (1+2+3) + ... + (1+2+...+n) ตัวอย่าง n = 4: ผลรวม 1 ตัวแรก = 1 ผลรวม 2 ตัวแรก = 1+2 = 3 ผลรวม 3 ตัวแรก = 1+2+3 = 6 ผลรวม 4 ตัวแรก = 1+2+3+4 = 10 ผลรวมของผลรวม = 1+3+6+10 = 20 สูตรทางคณิตศาสตร์ ผลรวมของ i ตัวแรก = i(i+1)/2 ผลรวมของผ

  19. เติมค่าที่หายไปในเมจิกสแควร์ 3x3 ใน C++

    ปัญหา ให้เมทริกซ์ 3x3 ที่มีค่าเส้นทแยงมุมเป็น 0 (ว่าง) ต้องการเติมค่าเส้นทแยงมุมให้ผลรวมของแต่ละแถว แต่ละคอลัมน์ และเส้นทแยงมุมทั้งสองเท่ากัน ตัวอย่าง เมทริกซ์ต้นฉบับ: 036 505 470 หลังเติมค่า: 636 555 474 สูตรคำนวณ ให้ค่าเส้นทแยงมุมคือ x, y, z (ตามลำบับมุมซ้ายบน, กลาง, ขวาล่าง): x = (M[1][2]

  20. หาตำแหน่งเซลล์สุดท้ายในเมทริกซ์จากคำสั่งเคลื่อนที่ C++

    ปัญหา ให้สตริงคำสั่งที่ประกอบด้วย U (ขึ้น), D (ลง), L (ซ้าย), R (ขวา) และตำแหน่งเริ่มต้น (x, y) หาตำแหน่งสุดท้ายหลังทำตามคำสั่งทั้งหมด ตัวอย่าง: คำสั่ง DDLRULL, เริ่มที่ (3, 4) → ตำแหน่งสุดท้าย (1, 5) วิธีแก้ปัญหา นับจำนวนการเคลื่อนที่แต่ละทิศทาง แล้วคำนวณ: x = x + count_right - count_left y = y +

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:86/301  20-คอมพิวเตอร์/Page Goto:1 80 81 82 83 84 85 86 87 88 89 90 91 92