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

    Constructor Delegation คืออะไร? เมื่อ constructor เรียก constructor อื่นของคลาสเดียวกัน เรียกว่า constructor delegation ฟีเจอร์นี้มีตั้งแต่ C++11 ลองดูโปรแกรมต่อไปนี้และวิเคราะห์ว่ามีปัญหาอะไร ตัวอย่าง (ก่อนใช้ Delegation) #include <iostream> using namespace std; class MyClass { int a, b,

  2. ฟังก์ชัน fmax() และ fmin() ใน C++

    ในส่วนนี้จะดู fmax() และ fmin() ใน C++ ฟังก์ชันทั้งสองอยู่ใน header file cmath ฟังก์ชันนี้รับค่าสองค่าประเภท float, double หรือ long double และคืนค่าสูงสุดหรือต่ำสุดโดยใช้ fmax() และ fmin() ตามลำดับ ถ้าประเภทอาร์กิวเมนต์ต่างกัน เช่นเปรียบเทียบ float กับ double จะมีการ typecast โดยอัตโนมัติ แล้วคืน

  3. ฟังก์ชัน fdim() ใน C++

    นี่คือฟังก์ชัน fdim() ใน C++ ใช้คืนค่าความต่างบวกระหว่างสองอาร์กิวเมนต์ ถ้าอาร์กิวเมนต์สองคือ a และ b และ a > b จะคืนค่า a - b มิฉะนั้นคืนค่า 0 ตัวอย่าง #include <cmath> #include <iostream> using namespace std; main() { cout << fdim of (5.0, 2.0) is << fdim(5.0, 2.0)

  4. ฟังก์ชัน lrint() และ llrint() ใน C++

    ในส่วนนี้จะพูดถึง lrint() และ llrint() ใน C++ เริ่มจาก lrint() ก่อน ฟังก์ชัน lrint() ใช้ปัดเศษค่าทศนิยมในอาร์กิวเมนต์ให้เป็นค่าเต็มโดยใช้โหมดการปัดปัจจุบัน โหมดปัจจุบันกำหนดโดย fesetround() lrint() รับค่า double, float หรือ integer และคืนค่า long int โดยปัดส่วนทศนิยมเป็นจำนวนเต็ม ตัวอย่าง #includ

  5. ใช้ค่าคืนของ cin เพื่อรับอินพุตจำนวนไม่กำหนดใน C++

    บางครั้งโปรแกรมต้องการจำนวนอินพุตที่เปลี่ยนแปลงได้ โปรแกรมนี้แสดงวิธีใช้ cin รับอินพุตจำนวนไม่กำหนด input ซึ่งจะคืนค่า false เมื่อค่าไม่ใช่ตัวเลข ตัวอย่าง #include <iostream> using namespace std; main() { int input; int n = 0; cout << Enter numbers. (To stop enter any character

  6. มีความจำเป็นในการใช้ข้อมูลประเภท "long" ใน C และ C++ หรือไม่?

    ใน C หรือ C++ มีข้อมูลประเภท integer 4 แบบ ได้แก่ short, int, long และ long long แต่ละแบบใช้หน่วยความจำต่างกัน ขนาดแตกต่างกันในสถาปัตยะและระบบปฏิบัติการต่างๆ บางครั้ง int ใช้ 4 ไบต์ บางครั้ง 2 ไบต์ คอมไพเลอร์ก็ส่งผลเหมือนกัน จึงใช้ cross compiler Cross compiler คือคอมไพเลอร์ที่คอมไพล์สำหรับแพลตฟอร์

  7. วิธีคอมไพล์โปรแกรม 32-bit บน gcc 64-bit ใน C และ C++

    ในปัจจุบันคอมไพเลอร์มักเป็นเวอร์ชัน 64-bit แบบเริ่มต้น บางครั้งเราต้องคอมไพล์และรันโค้ดบนระบบ 32-bit ต้องใช้ฟีเจอร์นี้ ก่อนอื่น ตรวจสอบเวอร์ชันเป้าหมายปัจจุบันของ gcc compiler โดยพิมพ์คำสั่ง: gcc –v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrappe

  8. โปรแกรม C++ แยกตัวประกอบเฉพาะของจำนวนที่กำหนด

    นี่คือโปรแกรม C++ เพื่อหาการแยกตัวประกอบเฉพาะ (unique factorization) ของจำนวนเต็มที่กำหนด โดยที่ผลรวมของการแบ่งส่วนนั้นได้จำนวนเต็ม โปรแกรมนี้จะสร้างวิธีการแทนจำนวนเต็มบวก n เป็นผลรวมของจำนวนเต็มบวกทั้งหมดที่เป็นไปได้ อัลกอริทึม Begin function displayAllUniqueParts(int m): 1) กำดัชดัชนีขององค์ประ

  9. โปรแกรม C++ สร้างกราฟสุ่มด้วยการสร้างขอบสุ่ม

    ในโปรแกรมนี้จะสร้างกราฟสุ่มสำหรับโหนดและขอบสุ่ม ความซับซ้อนด้านเวลาคือ O(v * e) โดย v คือจำนวนโหนด และ e คือจำนวนขอบ อัลกอริทึม Begin พัฒนาฟังก์ชัน GenRandomGraphs() ที่มี e เป็นจำนวนขอบ และ v เป็นจำนวนโหนด กำหนดค่าสุ่มให้จำนวนโหนดและขอบของกราฟ โดยใช้ rand() พิมพ์การเชื่อมต่อของแต่ละโหนด

  10. ตรวจสอบว่ากราฟเป็น Bipartite หรือไม่ด้วย DFS ใน C++

    กราฟ Bipartite คือกราฟที่สามารถระบายสีได้ด้วยสีสองสีเท่านั้น คือ จุดยในเซตเดียวกันจะมีสีเหมือนกัน นี่คือโปรแกรม C++ ตรวจสอบว่ากราฟเป็น Bipartite หรือไม่โดยใช้ DFS อัลกอริทึม Begin อาเรย์ color[] ใช้เก็บ 0 หรือ 1 สำหรับทุกโหนด แทนสีตรงข้าม เรียกฟังก์ชัน DFS จากโหนดใดก็ได้ ถ้าโหนด w ยังไม่เคยเย

  11. โปรแกรม C++ หาปิดรูปแบบข้าม (Transitive Closure) ของกราฟ

    หากกราฟแบบมีทิศทางถูกกำหนด ให้ตรวจสอบว่าจุดย (vertex j) เข้าถึงได้จากจุด i สำหรับคู่จุดทั้งหมด (i, j) ในกราฟที่กำหนด เข้าถึงได้ หมายถึงมีเส้นทางจากจุด i ไป j เมทริกซ์ความเข้าถึงได้นี้เรียกว่า Transitive Closure ของกราฟ อัลกอริทึม Warshall มักใช้เพื่อหา Transitive Closure นี่คือโปรแกรม C++ ที่ใช้งานอ

  12. วิธีแปลง String เป็น Char Array ใน C++

    นี่คือโปรแกรม C++ สำหรับแปลง string เป็น char array สามารถทำได้หลายวิธี วิธีที่ 1 อัลกอริทึม Begin กำหนดค่า string ให้ตัวแปร char array m กำหนดตัวแปร string str For i = 0 ถึง sizeof(m) คัดลอกตัวอักษรทีละตัวจาก m ไป str พิมพ์ตัวอักษรทีละตัวจาก str End ตัวอย่าง #include <iostream>

  13. โปรแกรม C++ ตรวจสอบว่า Binary Tree เป็น AVL Tree หรือไม่

    AVL Tree เป็น Binary Search Tree ที่ปรับสมดุลด้วยตัวเอง โดยที่ความต่างของความสูงระหว่าง subtree ซ้ายและขวาไม่เกิน 1 สำหรับทุกโหนด นี่คือโปรแกรม C++ เพื่อตรวจสอบว่า Binary Tree ที่กำหนดเป็น AVL Tree หรือไม่ อัลกอริทึม Begin function AVL() คืนค่า true ถ้าต้นไม้เป็น AVL มิฉะนั้น false if (root

  14. ทำไม C++ ไม่มี Constructor แบบ Virtual?

    กลไกเสมือน (virtual mechanism) ทำงานได้เฉพาะเมื่อเรามีพอยน์เตอร์คลาสฐานชี้ไปที่วัตถุคลาสลูก ใน C++ Constructor ไม่สามารถเป็น virtual ได้ เพราะเมื่อ constructor ของคลาสถูก.execute ไม่มี virtual table ในหน่วยความจำ หมายถึงยังไม่มี virtual pointer ถูกกำหนด ดังนั้น constructor ควรเป็น non-virtual เสมอ

  15. ฟังก์ชันเสมือน (Virtual Functions) ถูกใช้งานอย่างไรใน C++?

    ฟังก์ชันเสมือน (Virtual functions) ใน C++ ใช้สร้างรายการของพอยน์เตอร์คลาสฐาน และเรียกเมธอดของคลาสลูกที่แตกต่างกันได้โดยไม่ต้องรู้ว่าวัตถุคลาสลูกเป็นประเภทใด ฟังก์ชันเสมือนจะถูกแก้ไขในขณะรันไทม์ (runtime) ตัวอย่าง #include <iostream> using namespace std; class B { public: virtual void s() {

  16. โปรแกรม C++ ใช้งานตารางที่อยู่ตรง (Direct Addressing Tables)

    นี่คือโปรแกรม C++ สำหรับใช้งานตารางที่อยู่ตรง (Direct Addressing Tables) ใช้เมื่อแต่ละองค์ประกอบมีคีย์มาจากเซตอวกาศ S = {0, 1, ..., n-1} โดยที่ n ไม่ใหญ่เกินไป และแต่ละคีย์ไม่ซ้ำกัน ช่วยให้การแทรก ค้นหา และลบทำงานได้เร็ว ฟังก์ชันและ Pseudocode Begin insert(): รับตัวแปรตาราง word และ key T

  17. โปรแกรม C++ ใช้งานโครงสร้างข้อมูล Disjoint Set

    Disjoint set คือกลุ่มของเซตที่ไม่มีรายการใดอยู่ในเซตมากกว่าหนึ่งเซต รองรับการดำเนินการ union และ find บนเซตย่อย Find(): ใช้หาว่าองค์ประกอบใดอยู่ในเซตย่อยไหน และคืนค่าตัวแทนของเซตนั้น Union(): รวมเซตย่อยสองเซตเป็นเซตเดียว และตัวแทนของเซตหนึ่งจะกลายเป็นตัวแทนของอีกเซต ฟังก์ชันและ Pseudocode Begin

  18. โปรแกรม C++ ใช้งานอัลกอริทึม Coppersmith-Freivald

    อัลกอริทึม Freivalds ใช้ตรวจสอบว่าการคูณเมทริกซ์ถูกต้องหรือไม่ โดยมีโอกาสผิดพลาดน้อยกว่า 2^-k ในเวลา O(kn^2) อัลกอริทึม Begin รับ matrix1(n*n), matrix2(n*n), matrix3(n*n) // ตามอัลกอริทึม ต้องตรวจสอบ: matrix1 × matrix2 = matrix3 1) เลือกเวกเตอร์ a[n][1] แบบสุ่มและสม่ำเสมอ ซึ่งองค์ประกอบจะเป็น

  19. โปรแกรม C++ ใช้งานการกำจัดแบบ Gauss-Jordan

    นี่คือโปรแกรม C++ สำหรับใช้งานการกำจัดแบบ Gauss-Jordan ใช้วิเคราะห์ระบบสมการเชิงเส้นพร้อมกัน โดยเน้นการลดระบบสมการให้เป็นรูปแบบเมทริกซ์แนวทแยงมุมโดยการดำเนินการแถว เพื่อให้ได้คำตอบโดยตรง อัลกอริทึม Begin n = ขนาดของเมทริกซ์นำเข้า เพื่อหาองค์ประกอบของเมทริกซ์แนวทแยงมุม: วนลูป nested for j =

  20. โปรแกรม C++ ใช้งานเมธอด Gauss-Seidel

    เมธอด Gauss-Seidel ใช้แก้ระบบสมการเชิงเส้นแบบวนซ้ำ (iterative method) นี่คือโปรแกรม C++ สำหรับใช้งานเมธอด Gauss-Seidel อัลกอริทึม Begin รับมิติของเมทริกซ์ p และองค์ประกอบต่างๆ รับค่าเริ่มต้นของ x และจำนวนการวนซ้ำ q While q > 0 วนลูป for i = 0 ถึง p-1 เริ่มต้น n[i] = (b[i] / a[i][

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:51/301  20-คอมพิวเตอร์/Page Goto:1 45 46 47 48 49 50 51 52 53 54 55 56 57