C++ Programming : เขียนโปรแกรม เลขยกกำลัง (เลขชี้กำลังเป็นจำนวนเต็มบวก)

ทิป & เทคนิค #127
เขียนโดย :
มีผู้อ่าน : 42,682 คน วันนี้ : 8 คน

สวัสดีครับ มาพบกันกับอีกบทความ ตัวอย่างโจทย์การเขียนโปรแกรมภาษา C++ ด้วย Dev-C++ สำหรับผู้เริ่มต้นเขียนโปรแกรม โจทย์ในข้อนี้ คือ การเขียนโปรแกรม หาค่าของ เลขยกกำลัง โดยที่เลขชี้กำลังเป็นจำนวนเต็มบวกครับ ยกตัวอย่างเช่น 2, 26 , 33 เป็นต้น ซึ่งจะใช้วิธีการหาผลลัพธ์ของเลขยกกำลังโดยใช้ For Loop แทนการใช้ Function pow ที่เป็น Built in functions ครับ

 

โจทย์

จงเขียนโปรแกรมในการหาผลลัพธ์ของ เลขยกกำลัง โดยใช้ภาษา C++ โดยเมื่อเริ่มโปรแกรม โปรแกรมจะรับค่าตัวเลขจำนวนเต็มจากผู้ใช้ 2 ตัว ตัวแรกคือฐาน และตัวที่สองคือเลขชี้กำลัง จากนั้นทำการแสดงผลลัพธ์ออกทางจอภาพ
 

หลักการและแนวคิด

เลขยกกำลังคืออะไร ?

เลขยกกำลังคือ ตัวเลขที่เขียนอยู่ในรูป an ซึ่งประกอบด้วย a คือ ฐาน และ n คือ เลขชี้กำลัง เช่น 23 เป็นต้น วิธีคิดหาผลลัพธ์ของเลขยกกำลัง คือ การนำ เลขฐาน มาคูณกัน เลขชี้กำลังครั้ง เช่น 23 คือ นำ 2 x 2 x 2 (นำฐาน 2 มาคูณกัน 3 ครั้ง) 
 

แล้วนำมาเป็นโปรแกรมได้อย่างไร ?

23 ก็คือ 2 x 2 x 2 (2 คูณกัน 3 ครั้ง) ซึ่งจะเห็นได้ว่าเป็นการทำซ้ำๆ แบบรู้จำนวนรอบ จึงเหมาะกับการใช้ For Loop ในการเขียนโปรแกรม ก็คือใช้ For วิ่งตั้งแต่ 1 ถึง เลขชี้กำลังรอบ นั่นเอง แล้วแต่ละรอบก็เอา เลขฐานคูณแบบสะสมเก็บผลลัพธ์ไปเรื่อยๆ
 

เลขชี้กำลังที่เป็น 1 หรือ 0 

ถ้าฐาน ยกกำลัง 1 จะได้ตัวฐานเอง เช่น 21 จะได้ 1
ถ้าฐาน ยกกำลัง 0 จะได้ 1

 

 

Source Code

#include <iostream>
using namespace std;

int main()
{
    int base,exponent,i,pow=1;
    cout << "Enter Base value : ";
    cin >> base;
    cout << "Enter Exponent value : ";
    cin >> exponent;
    
    for(i=1;i<=exponent;i++)
    {
       pow = pow * base;                   
    }
    
    cout << "Result is " << pow;

    cout << endl << endl;
    system("pause");
   
    return 0;
}

 

อธิบาย Source Code

#include <iostream>
using namespace std;

int main()
{
     //ประกาศตัวแปร
    // base เลขฐาน , exponent เลขชี้กำลัง
    // i ตัวนับรอบสำหรับใช้วน Loop
    // pow ผลลัพธ์ของเลขยกกำลัง โดยตั้งค่าเริ่มต้นเป็น 1

    int base,exponent,i,pow=1;
    cout << "Enter Base value : "; //แสดงผลให้ผู้ใช้กรอกฐาน
    cin >> base; //รับค่าฐานลงตัวแปร base
    cout << "Enter Exponent value : "; //แสดงผลให้ผู้ใช้กรอกเลขชี้กำลัง
    cin >> exponent; //รับค่าเลขชี้กำลังลงตัวแปร exponent
    
    //ทำการวนรอบโดยให้ i เป็นตัวนับรอบ
    // เริ่มต้น i = 1 วนถึง ค่าในตัวแปร exponent รอบ
    for(i=1;i<=exponent;i++) 
    {
       //แต่ละรอบ คำค่า base มาคูณกับ pow
       //แล้วเก็บใส่ pow เป็นการบวกสะสม
                  

       pow = pow * base; 
    }
    
    cout << "Result is " << pow; //แสดงผลลัพธ์

    //ใช้สำหรับหยุดหน้าจอ ให้แสดงผลลัพธ์ค้างไว้
    cout << endl << endl;
    system("pause");
   
    return 0;
}

Flowchart

 C++ Programming : เขียนโปรแกรม เลขยกกำลัง

 

ตัวอย่างการ Run โปรแกรม

ตัวอย่าง Run ครั้งที่ 1

ทดลอง ฐาน 2 เลขชี้กำลัง 3 ได้ผลลัพธ์ 8 ( 2 x 2 x 2 )

C++ Programming : เขียนโปรแกรม เลขยกกำลัง (เลขชี้กำลังเป็นจำนวนเต็มบวก)

 

ตัวอย่าง Run ครั้งที่ 2

ทดลอง ฐาน 2 เลขชี้กำลัง 1 ได้ผลลัพธ์ 2 ( 2 )

 

ตัวอย่าง Run ครั้งที่ 3

ทดลอง ฐาน 2 เลขชี้กำลัง 9 ได้ผลลัพธ์ 512 ( 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 )

 

ตัวอย่าง Run ครั้งที่ 4

ทดลอง ฐาน 2 เลขชี้กำลัง 0 ได้ผลลัพธ์ 1 

 

เป็นยังไงบ้างครับ กับตัวอย่างการเขียนโปรแกรมภาษา C++ หาค่าเลขยกกำลัง มีการใช้ For Loop ไม่ยากครับ เพราะเป็นแบบพื้นฐาน ลองอ่านและทำความเข้าใจดูครับ ถ้าจะให้ดีลองไล่ Flowchart ดูครับ แล้วจะรู้หลักการทำงานของโปรแกรมนี้ครับ

น้องๆ คนไหนมีข้อสงสัยก็สามารถเข้ามาสอบถามได้ที่ Fanpage TUTORTONG สอนเขียนโปรแกรม นะครับ มาเรียนรู้และสนุกกับการเขียนโปรแกรมไปด้วยกันที่ TUTORTONG สอนเขียนโปรแกรม ครับ ^^