Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. C++ set สำหรับชนิดข้อมูลที่ผู้ใช้กำหนดเอง

    Set เป็นโครงสร้างข้อมูลเก็บค่าตัวเลข คุณสมบัติ: สมาชิกไม่ซ้ำกัน (distinct) และจัดเรียงจากน้อยไปมาก สามารถกำหนดชนิดข้อมูลเองได้ใน C++ ตัวอย่าง: Input: 124689781230 → Output: 1230467889 (เฉพาะค่าที่ไม่ซ้ำ เรียงลำดับ) ตรรกะ Set รับค่าแบบสุ่มและซ้ำได้ แต่จะเก็บเฉพาะค่าที่ไม่ซ้ำและเรียงจากน้อยไปมาก ตัวอ

  2. อัลกอริทึม Angular Sweep ใน C++

    อัลกอริทึมหาจำนวนจุดสูงสุดที่อยู่ภายในวงกลมรัศมีกำหนด สำหรับวงกลมรัศมี r และชุดจุด 2D ให้หาจุดสูงสุดที่อยู่ภายในวงกลม (ไม่รวมจุดบนขอบ) วิธีที่มีประสิทธิภาพที่สุดคือ Angular Sweep Algorithm อัลกอริทึม มี nC2 จุด หาระยะห่างระหว่างทุกคู่จุด เลือกจุดสุ่มหนึ่งจุด หาจุดสูงสุดที่อยู่ในวงกลมเมื่อหมุนรอบจุ

  3. ข้อเท็จจริงน่าสนใจเกี่ยวกับ C++ bitset

    C++ มีคอนเทนเนอร์ใน STL ชื่อ bitset ใช้ทำงานกับข้อมูลระดับบิต (bit level) คือแต่ละบิตของตัวแปร (การแปลงเป็นเลขฐานสอง) 1. bitset เหมือนสตริง bitset เป็นคอนเทนเนอร์ของบิต (มีแค่ 0 และ 1) สร้าง bitset ได้จากชุดบิตที่กำหนดโดยดัชนีเริ่มต้นและจำนวนสมาชิก ตัวอย่าง: ต้องการ 4 บิตเริ่มจากดัชนี 2 ของสตริงบิต

  4. อัลกอริทึม Bellman-Ford ใน C++

    อัลกอริทึม Bellman-Ford เป็นอัลกอริทึมแบบ Dynamic Programming ใช้หาเส้นทางสั้นที่สุดจากจุดเริ่มต้น (source vertex) ไปยังทุกจุดในกราฟที่มีน้ำหนัก (weighted graph) โดยใช้วิธีวนซ้ำ (iterative) พยายามหาเส้นทางสั้นที่สุดอย่างต่อเนื่อง เสนอโดย Alfonso Shimbel ปี 1955 ปรับปรุงโดย Richard Bellman และ Leste

  5. มุมระหว่างสองระนาบใน 3D ด้วย C++

    เพื่อหามุมระหว่างสองระนาบใน 3 มิติ ต้องเข้าใจระนาบและมุม: ระนาบ (Plane) — พื้นผิว 2 มิติที่ขยายไปจนถึงอนันต์ มุม (Angle) — ช่วงระหว่างสองเส้นหรือพื้นผิวที่ตัดกันที่จุดหนึ่ง วัดเป็นองศา มุมระหว่างสองระนาบ 3D คือมุมระหว่างเวกเตอร์ปกติ (normal vectors) ของทั้งสองระนาบ กำหนดระนาบสองระนาบ: p1: ax + by

  6. โปรแกรม C++ หาพื้นที่วงกลมล้อมรอบสามเหลี่ยมจากด้านที่กำหนด

    เพื่อคำนวณพื้นที่วงกลมล้อมรอบสามเหลี่ยม (circumcircle) ต้องเข้าใจแนวคิดพื้นฐาน: สามเหลี่ยม (Triangle) — รูปปิด 3 ด้าน วงกลม (Circle) — รูปปิดที่มีด้านอนันต์หรือไม่มีด้าน วงกลมที่ล้อมรอบรูปทรงอื่นอยู่ภายในเรียกว่า วงกลมล้อมรอบ (circumcircle) สัมผัสสามเหลี่ยมที่ทุกมุม ถ้าด้านของสามเหลี่ยมคือ a, b,

  7. โปรแกรม C++ หาพื้นที่สามเหลี่ยมใหญ่ที่สุดที่ลงในหกเหลี่ยม

    เพื่อหาพื้นที่สามเหลี่ยมที่ใหญ่ที่สุดที่ลงในหกเหลี่ยม ต้องเข้าใจรูปทรงทั้งสองและวิธีการลงกัน สามเหลี่ยม (Triangle) — รูปปิด 3 ด้าน อาจเท่าหรือไม่เท่ากัน หกเหลี่ยม (Hexagon) — รูปปิด 6 ด้าน อาจเท่าหรือไม่เท่ากัน สามเหลี่ยมที่ลงในหกเหลี่ยมมีมุมทั้ง 3 จุดสัมผัสกับมุมของหกเหลี่ยม ดังนั้นด้านของสามเหล

  8. โปรแกรมปิดเครื่องคอมพิวเตอร์ด้วย C/C++

    โปรแกรมปิดเครื่องทำงานบน Windows, Linux หรือ macOS เพื่อปิดเครื่องและปิดแอปพลิเคชันที่เปิดอยู่ทั้งหมด ความหมายของ Shut down หรือ Power off Shut down หรือ Power off คอมพิวเตอร์ หมายถึงการตัดกระแสไฟฟ้าจากส่วนประกอบหลักอย่างเป็นระบบ และปิดการทำงานทั้งหมดของคอมพิวเตอร์ เช่น แอปพลิเคชันและกระบวนการประมว

  9. โจทย์ C++ Sum Array Puzzle

    อาร์เรย์ (Array) คือโครงสร้างข้อมูลที่เก็บสมาชิกหลายตัวที่มีชนิดข้อมูลเดียวกัน สามารถเก็บชุดค่าได้ครั้งเดียว แต่ต้องกำหนดความยาวล่วงหน้า ในโจทย์ Sum Array Puzzle เราได้รับอาร์เรย์ A1 ขนาด n สร้างอาร์เรย์ S1 ที่เก็บผลรวมของสมาชิกทั้งหมดใน A1 ยกเว้น สมาชิกที่อยู่ตำแหน่งเดียวกัน ตัวอย่างเช่น ถ้าคำนวณ

  10. ฟังก์ชัน abs(), labs(), llabs() ใน C/C++

    ฟังก์ชันจำนวนเต็ม (Integer Functions) ในไลบรารี C คือฟังก์ชันที่คืนค่าจำนวนเต็มที่แน่นอน C รองรับเฉพาะค่าจำนวนเต็ม ฟังก์ชันนี้คืนค่าจำนวนเต็มที่ใกล้ที่สุดซึ่งน้อยกว่าหรือเท่ากับอาร์กิวเมนต์ ประเภทของฟังก์ชันจำนวนเต็ม: int = abs (int n); long = labs (long n); long long = llabs (long long n); โดยที่

  11. โปรแกรม C++ หาผลรวมความต่างสัมบูรณ์ต่ำสุดของสมาชิกอาร์เรย์

    โปรแกรมนี้หาผลรวมความต่างสัมบูรณ์ต่ำสุดของอาร์เรย์ที่มีสมาชิกไม่ซ้ำกัน เริ่มจากทบทวนแนวคิดที่จำเป็น: อาร์เรย์ (Array) — ตู้เก็บข้อมูลชนิดเดียวกัน ความยาวต้องกำหนดไว้ล่วงหน้า ความต่างสัมบูรณ์ (Absolute Difference) — ค่าสัมบูรณ์ของความต่างระหว่างสองจำนวน (ค่าบวกเสมอ) สูตรความต่างสัมบูรณ์ต่ำสุดของแต

  12. โปรแกรม C++ หาสมาชิกอาร์เรย์ที่มีความถี่เป็นจำนวนเฉพาะ

    อาร์เรย์ (Array) คือโครงสร้างข้อมูลที่เก็บสมาชิกชนิดเดียวกัน ความถี่ที่เป็นจำนวนเฉพาะ (Prime Frequencies) หมายถึงจำนวนครั้งที่สมาชิกปรากฏในอาร์เรย์เป็นจำนวนเฉพาะ โจทย์คือการหาสมาชิกในอาร์เรย์ที่มีความถี่เป็นจำนวนเฉพาะ เราได้รับสตริงของอาร์เรย์ ต้องนับความถี่ของแต่ละตัวอักษร ตรวจสอบว่าความถี่เป็นจำน

  13. โปรแกรม C++ หาดัชนีอาร์เรย์ที่มีจำนวนเลขคู่หรือเลขคี่เท่ากันทั้งสองข้าง

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

  14. โปรแกรม C++ บวกสมาชิกอาร์เรย์จนทุกตัว ≥ k (Min Heap)

    บทนำ กำหนดอาร์เรย์ arr[] และค่า K ต้องการหาจำนวนขั้นตอนน้อยที่สุด ที่บวกสมาชิกสองตัวรวมกัน (แทนที่สองตัวด้วยผลรวม) จนกว่าทุกสมาชิกจะ ≥ K ตัวอย่าง arr = {1, 10, 12, 9, 2, 3}, K = 6 บวก 1+2=3 → arr = {3, 10, 12, 9, 3} บวก 3+3=6 → arr = {6, 10, 12, 9} → ทุกตัว ≥ 6 เสร็จใน 2 ขั้นตอน แนวคิด: ใช้ Min

  15. Adam Number (จองอะดัม) ใน C++

    บทนำ Adam Number: จำนวนที่กำลังสองของมัน เป็นตัวเลขกลับ (reverse) ของกำลังสองของตัวเลขกลับ ตัวอย่าง 12: 12² = 144, reverse(12) = 21, 21² = 441, reverse(441) = 144 → 144 = 144 ✓ เป็น Adam Number อัลกอริทึม คำนวณ n² หา reverse ของ n คำนวณ reverse(n)² หา reverse ของ reverse(n)² เปรียบเทียบกับ n²

  16. Boolean Matrix (เมทริกซ์บูลีน) ใน C++

    บทนำ Boolean Matrix คือเมทริกซ์ที่มีค่าแค่ 0 และ 1 โจทย์: ถ้า m[i][j] = 1 ให้เซตแถว i ทั้งแถวและคอลัมน์ j ทั้งคอลัมน์ เป็น 1 ตัวอย่าง Input: {{1,0},{0,0}} → Output: {{1,1},{1,0}} เพราะ m[0][0]=1 → row 0 และ col 0 กลายเป็น 1 ทั้งหมด อัลกอริทึม (Space Optimized) ใช้แถวแรกและคอลัมน์แรกเป็น flag arr

  17. Virtual Copy Constructor ใน C++

    บทนำ Copy Constructor: Constructor พิเศษสร้างออบเจกต์เป็นสำเนาของออบเจกต์อื่น Virtual Function: ฟังก์ชันใน Base class ที่ถูก Override ใน Derived class Virtual Copy Constructor: ไม่มีจริงใน C++ แต่ใช้ pattern เรียกว่า Virtual Constructor Idiom หรือ Clone Pattern เพื่อสร้างสำเนาออบเจกต์ได้ใน Runtime

  18. ตัวดำเนินการ alignof ใน C++

    บทนำ alignof เป็นตัวดำเนินการ (operator) ที่คืนค่า alignment (การจัดวางหน่วยความจำ) ที่จำเป็นสำหรับชนิดข้อมูลที่กำหนด ค่าที่คืนเป็นหน่วยไบต์ (bytes) Syntax var align = alignof(type) ตัวอย่าง: Alignment ของชนิดข้อมูลพื้นฐาน #include <iostream> using namespace std; int main() { cout << A

  19. Aliquot Sequence (ลำดับอาลิโควท) ใน C++

    บทนำ Aliquot Sequence: เริ่มจากตัวเลข n ตัวถัดไป = ผลรวมตัวหารที่แท้จริง (proper divisors) ของตัวก่อนหน้า (ไม่รวมตัวมันเอง) ตัวอย่าง n=8: ตัวหารของ 8 คือ 1,2,4 → sum=7 → ตัวหารของ 7 คือ 1 → sum=1 → ตัวหารของ 1 คือ ไม่มี → sum=0 → Sequence: 8, 7, 1, 0 จำนวนพิเศษ Perfect Number: Aliquot sequence ย

  20. Alternate Fibonacci Numbers (ฟีโบนัชชีสลับ) ใน C++

    บทนำ Fibonacci Sequence: เริ่ม 0,1 (หรือ 1,1) พจน์ถัดไป = ผลรวมสองพจน์ก่อนหน้า 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Alternate Fibonacci: แสดงเฉพาะพจน์สลับกัน เช่น 0, 1, 3, 8, ... (พจน์ที่ 1, 3, 5, 7, ...) สูตร Tₙ = Tₙ₋₁ + Tₙ₋₂ อัลกอริทึม n1=0, n2=1 ลูป i=2 ถึง 2n (เพราะข้ามทีละพจน์) n3

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:77/301  20-คอมพิวเตอร์/Page Goto:1 71 72 73 74 75 76 77 78 79 80 81 82 83