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

    Cocktail Sort เป็นการเปลี่ยนแปลงของ Bubble Sort ที่เป็นอัลกอริทึมการเรียงลำดับที่เสถียร (stable sorting algorithm) และเป็นการเรียงแบบเปรียบเทียบ (comparison sort) ซึ่งรู้จักในชื่ออื่นๆ เช่น Bidirectional Bubble Sort, Cocktail Shaker Sort, Shaker Sort (ซึ่งอาจหมายถึงรูปแบบหนึ่งของ Selection Sort), R

  2. โปรแกรม C++ หาตัวหารร่วม (Common Divisors) ของสองจำนวน

    ตัวหารร่วมของสองจำนวนคือจำนวนที่หารทั้งสองจำนวนลงตัว ตัวอย่าง: ตัวหารของ 12 คือ 1, 2, 3, 4, 6, 12 ตัวหารของ 18 คือ 1, 2, 3, 6, 9, 18 ดังนั้น ตัวหารร่วมของ 12 และ 18 คือ 1, 2, 3, 6 ตัวที่มากที่สุดเรียกว่า GCD (Greatest Common Divisor) ของ 12 และ 18 สัญลักษณ์คือ (a, b) ดังนั้น (12, 18) = 6 GCD สำคัญหล

  3. โปรแกรม C++ สำหรับ Comb Sort (คอมบ์ซอร์ท)

    Comb Sort คล้ายกับ Bubble Sort และ Cocktail Sort Comb Sort ไม่เริ่มดูองค์ประกอบที่อยู่ติดกัน แต่ดูองค์ประกอบที่ห่างกันจำนวนดัชนีหนึ่ง เรียกว่า gap (ช่องว่าง) Gap ถูกกำหนดเป็น [n/c] โดย n คือจำนวนองค์ประกอบ และ c คือ shrink factor หลังจากแต่ละรอบ ตัวเลขนี้จะหารด้วย c อีกครั้งและปัดเศษลง จนกว่าอัลกอริ

  4. โปรแกรม C++ หา GCD (ตัวหารร่วมมาก) ของมากกว่าสองจำนวน (หรืออาร์เรย์)

    ตัวหารร่วมของสองจำนวนคือจำนวนที่หารทั้งสองจำนวนลงตัว ตัวอย่าง ตัวหารของ 12 คือ 1, 2, 3, 4, 6, 12 ตัวหารของ 18 คือ 1, 2, 3, 6, 9, 18 ดังนั้นตัวหารร่วมของ 12 และ 18 คือ 1, 2, 3, 6 ตัวที่มากที่สุดเรียกว่า GCD ของ 12 และ 18 สัญลักษณ์ทางคณิตศาสตร์คือ (a, b) ดังนั้น (12, 18) = 6 GCD สำคัญหลายเหตุผล เช่น ค

  5. โปรแกรม C++ สำหรับ Gnome Sort (โนมซอร์ท)

    Gnome Sort เป็นอัลกอริทึมการเรียงที่คล้ายกับ Insertion Sort ยกเว้นว่าการย้ายองค์ประกอบไปตำแหน่งที่ถูกต้องทำได้โดยการสลับ (swaps) ซ้ำๆ คล้ายกับ Bubble Sort Input: 5 3 4 2 1 Output: 1 2 3 4 5 คำอธิบาย อัลกอริทึมการเรียงที่ย้ายองค์ประกอบไปตำแหน่งที่ถูกต้องโดยการสลับซ้ำๆ เหมือน Bubble Sort ต้องการแค่ลูป

  6. โปรแกรม C++ หาเลข K หลักที่ใหญ่ที่สุดซึ่งหารด้วย X ลงตัว

    กำหนดจำนวนเต็มสองจำนวน X และ K K คือจำนวนหลักของจำนวนเต็ม ตรรกะคือหาเลข K หลักที่ใหญ่ที่สุดซึ่งหารด้วย X ลงตัว Input: X = 30, K = 3 Output: 980 คำอธิบาย 980 คือเลข 3 หลักที่ใหญ่ที่สุดซึ่งหารด้วย 30 ลงตัว โดยการเอา K เป็นกำลังของ 10 แล้วลบด้วย 1 จะได้เลข K หลักที่ใหญ่ที่สุด หลังจากนั้นพยายามหาเลขที่ใ

  7. โปรแกรม C++ สำหรับ Range Sum Queries โดยไม่มี Updates

    เราต้องคำนวณผลรวมขององค์ประกอบจากดัชนี i ถึงดัชนี j คำสั่ง (queries) ที่ประกอบด้วยค่า i และ j จะถูก執行หลายครั้ง Input: arr[] = {5, 6, 3, 4, 1}, i = 1, j = 3 Output: 13 คำอธิบาย 6 + 3 + 4 = 13 sum[] = {5, 6+5, 3+6+5, 4+3+6+5, 1+4+3+6+5} sum[] = {5, 11, 14, 18, 19} sum[j] - sum[i-1] = sum[3] - sum[0] =

  8. โปรแกรม C++ สำหรับ Recursive Bubble Sort (บับเบิ้ลซอร์ทแบบเรียกซ้ำ)

    ใน Bubble Sort จะเปรียบเทียบคู่ที่อยู่ติดกันและสลับกันถ้าอยู่ในลำดับผิด ในประเภท Bubble Sort นี้ เราใช้ฟังก์ชัน recursive ที่เรียกตัวเอง Input: 5 3 4 2 1 Output: 1 2 3 4 5 คำอธิบาย ใช้ recursive function (ฟังก์ชันเรียกตัวเอง) เปรียบเทียบคู่ที่อยู่ติดกันและสลับถ้าลำดับผิด จนกว่าอาร์เรย์จะเรียงลำดับคร

  9. C++: เทคนิคย่อโค้ดสำหรับการแข่งขันเขียนโปรแกรม (Competitive Programming)

    ในส่วนนี้เราจะดูตัวอย่างกลยุทธ์การย่อโค้ดสำหรับการแข่งขันเขียนโปรแกรม สมมติเราต้องเขียนโค้ดจำนวนมาก ในโค้ดนั้น เราสามารถปฏิบัติตามกลยุทธ์บางอย่างเพื่อทำให้สั้นลง เราสามารถเปลี่ยนชื่อชนิดข้อมูล (type-name) ให้สั้นลงได้ โปรดตรวจสอบโค้ดเพื่อเข้าใจแนวคิด ตัวอย่างโค้ด #include <iostream> using name

  10. เทคนิคแฝง (Hidden Tricks) ของ C++ ที่เกี่ยวกับ STL

    ที่นี่เราจะดูเทคนิคแฝงบางอย่างของ C++ ที่เกี่ยวกับ STL กำหนดค่า pairs ด้วย braces {} เราสามารถใช้กับ tuples ได้เช่นกัน pair<int, int> my_pair = make_pair(10, 20); pair<int, int> my_pair2 = { 10, 20 }; // ใช้ braces pair<int, <char, int> > my_pair3 = { 10, { A, 20 } }; // comp

  11. ข้อดีของ Vector เทียบกับ Array ใน C++

    ที่นี่เราจะดูข้อดีและข้อเสียของ vector เทียบกับ array ใน C++ Vector เป็น template class เป็นคอนสตรัคต์เฉพาะ C++ Arrays เป็น built-in language construct มีอยู่ในหลายภาษา Vectors ถูก implement เป็น dynamic arrays พร้อม list interface arrays สามารถ implement แบบ static หรือ dynamic ด้วย primitive data

  12. หา Triplets ทั้งหมดที่ไม่ซ้ำกันซึ่งผลรวมเท่ากับค่าที่กำหนดใน C++

    ที่นี่เราจะดูปัญหาที่น่าสนใจ เรามีอาร์เรย์ที่มีองค์ประกอบบางส่วน มีค่าผลรวม (sum value) ให้ งานของเราคือหา triplets จากอาร์เรย์ ที่ผลรวมเท่ากับค่าที่กำหนด สมมติอาร์เรย์คือ {4, 8, 63, 21, 24, 3, 6, 1, 0} และค่าผลรวม S = 18 ดังนั้น triplets จะเป็น {4, 6, 8} หากมี triplet มากกว่าหนึ่ง จะแสดงทั้งหมด อัล

  13. พื้นที่วงกลมล้อมรอบ (Circumcircle) ของสามเหลี่ยมที่กำหนดด้านทั้งสามใน C++

    ที่นี่เราจะดูวิธีหาพื้นที่ของวงกลมล้อมรอบ (circumcircle) ของสามเหลี่ยมที่กำหนดด้านทั้งสาม ด้าน AB คือ a, BC คือ b และ CA คือ c รัศมีคือ r รัศมี r เท่ากับ: ตัวอย่างโค้ด #include <iostream> #include <cmath> using namespace std; float area(float a, float b, float c) { if (a < 0 || b

  14. พื้นที่สี่เหลี่ยมจัตุรัสใหญ่ที่สุดที่เขียนภายในรูปไข่ (Ellipse) ใน C++

    ที่นี่เราจะดูพื้นที่ของสี่เหลี่ยมจัตุรัสที่ใหญ่ที่สุดซึ่งเขียนภายในรูปไข่ (ellipse) สี่เหลี่ยมในรูปไข่จะมีลักษณะดังนี้: พื้นที่ของรูปไข่คือ: ตอนนี้ ถ้า x และ y เท่ากัน แล้ว: ดังนั้นพื้นที่คือ: ตัวอย่างโค้ด #include <iostream> #include <cmath> using namespace std; float area(float a,

  15. พื้นที่สามเหลี่ยมใหญ่ที่สุดที่เขียนภายในหกเหลี่ยมปกติใน C++

    ที่นี่เราจะดูพื้นที่ของสามเหลี่ยมที่ใหญ่ที่สุดซึ่งเขียนภายในหกเหลี่ยมปกติ (regular hexagon) แต่ละด้านของหกเหลี่ยมคือ a และแต่ละด้านของสามเหลี่ยมคือ b จากแผนภาพนี้เราเห็นว่าถ้าเราสร้างสามเหลี่ยมหนึ่งด้วยด้านหนึ่งของหกเหลี่ยม สองสามเหลี่ยมเหล่านี้แบ่งแต่ละด้านออกเป็นสองส่วน เราเห็นสามเหลี่ยมมุมฉากสอง

  16. Array Algorithms ใน C++ STL (มาตรฐานไลบรารีเทมเพลต)

    ตั้งแต่ C++11 มีฟังก์ชันต่างๆ ถูกเพิ่มเข้าไปใน STL ฟังก์ชันเหล่านี้อยู่ในไฟล์ header algorithm มาดูฟังก์ชันบางตัวกัน ฟังก์ชัน all_of() ใช้ตรวจสอบเงื่อนไขหนึ่ง ว่าเป็นจริงสำหรับทุกองค์ประกอบของคอนเทนเนอร์ มาดูโค้ดเพื่อเข้าใจ ตัวอย่าง #include <iostream> #include <algorithm> using namesp

  17. หาดัชนีอาร์เรย์ที่จำนวนเลขคู่/คี่เท่ากันทั้งสองข้างใน C++

    ที่นี่เราจะดูปัญหาหนึ่ง สมมติมีอาร์เรย์หนึ่ง มี n องค์ประกอบ เราต้องหาดัชนีหนึ่ง ที่ความถี่ของเลขคู่ทางซ้าย และความถี่ของเลขคู่ทางขวาเท่ากัน หรือความถี่ของเลขคี่ทางซ้ายเท่ากับความถี่ของเลขคี่ทางขวา หากไม่มีผลลัพธ์ ให้ส่งคืน -1 สมมติอาร์เรย์เป็น {4, 3, 2, 1, 2, 4} ผลลัพธ์คือ 2 องค์ประกอบที่ดัชนี 2 คื

  18. กำหนดน้ำหนักเส้นทาง (Edge Weights) ให้เส้นทางที่ยาวที่สุดน้อยที่สุดใน C++

    ที่นี่เราจะดูปัญหาหนึ่ง: กำหนดเส้นทาง (edge) ของต้นไม้หนึ่งเส้นและผลรวม S งานคือกำหนดน้ำหนักให้เส้นทางอื่นๆ ทั้งหมด ทำให้เส้นทางที่ยาวที่สุดในแง่ของน้ำหนัก (weights) เป็นน้อยที่สุด ผลรวมของน้ำหนักที่กำหนดต้องเท่ากับ S แนวทางง่ายๆ คุณสมบัติของต้นไม้คือเส้นทางหนึ่งสามารถมีโหนดใบ (leaf nodes) ได้สูงสุด

  19. Binary Search Tree Insert ด้วย Parent Pointer ใน C++

    เราสามารถแทรกโหนดใหม่เข้า BST แบบ Recursive ได้ ในกรณีนั้นเราจะส่งคืนที่อยู่ของรากของแต่ละ subtree ที่นี่เราจะดูแนวทางอื่น ที่ต้อง maintain parent pointer Parent pointer จะช่วยในการหา ancestor ของโหนด ฯลฯ แนวคิดคือเก็บที่อยู่ของ left และ right subtrees เราตั้งค่า parent pointers ของ pointers ที่ส่งค

  20. delete this ใน C++: การใช้งานและอันตราย

    delete เป็นตัวดำเนินการที่ใช้ปล่อยพื้นที่จัดเก็บของตัวแปร this pointer เป็นตัวชี้ที่เข้าถึงได้เฉพาะภายใน non-static member function และชี้ไปยังที่อยู่ของออบเจ็กต์ที่เรียก member function นั้น this pointer เก็บที่อยู่ของออบเจ็กต์ปัจจุบัน อย่างง่ายคือ this pointer ชี้ไปยังออบเจ็กต์ปัจจุบันของคลาส ทุกค

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:69/301  20-คอมพิวเตอร์/Page Goto:1 63 64 65 66 67 68 69 70 71 72 73 74 75