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

ทิป & เทคนิค #129
เขียนโดย :
มีผู้อ่าน : 90,816 คน วันนี้ : 7 คน

สวัสดีครับ น้องๆ ที่กำลังเริ่มต้นเขียนภาษา C ตัวอย่างโจทย์ภาษา C ข้อนี้ จะเป็นการใช้ภาษา C ในการหา ค่าของเลขยกกำลัง โดยเราจะหาค่าด้วยการใช้ For Loop แทนการใช้ Function pow ของ math.h ครับ

 

โจทย์

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

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

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

เลขยกกำลังคือ ตัวเลขที่เขียนอยู่ในรูป aซึ่งประกอบด้วย 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<stdio.h>
int main()
{
    int base,exponent,i,pow=1;
    printf("Enter Base value : ");
    scanf("%d",&base);
    printf("Enter Exponent value : ");
    scanf("%d",&exponent);
    
    for(i=1;i<=exponent;i++)
    {
       pow = pow * base;                   
    }
    
    printf("Result is %d",pow);
   
    printf("");
    system("pause");

}

 

อธิบาย Source Code

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

    int base,exponent,i,pow=1;
    printf("Enter Base value : "); //แสดงผลให้ผู้ใช้กรอกฐาน
    scanf("%d",&base); //รับค่าฐานลงตัวแปร base
    printf("Enter Exponent value : ");  //แสดงผลให้ผู้ใช้กรอกเลขชี้กำลัง
    scanf("%d",&exponent);  //รับค่าเลขชี้กำลังลงตัวแปร exponent
    
    //ทำการวนรอบโดยให้ i เป็นตัวนับรอบ
    // เริ่มต้น i = 1 วนถึง ค่าในตัวแปร exponent รอบ

    for(i=1;i<=exponent;i++)
    {
        //แต่ละรอบ คำค่า base มาคูณกับ pow
        //แล้วเก็บใส่ pow เป็นการบวกสะสม
            

        pow = pow * base;                   
    }
    
    printf("Result is %d",pow); //แสดงผลลัพธ์
   
    //ใช้สำหรับหยุดหน้าจอ ให้แสดงผลลัพธ์ค้างไว้
    printf("");
    system("pause");

}

 

Flowchart

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

 

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

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

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

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


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

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

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


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

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

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


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

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

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

 

เป็นยังไงบ้างครับ น้องๆ เข้าใจหลักการไหมครับ อาจจะมีเรื่องคณิตศาสตร์เข้ามาร่วมด้วย ให้ลองพยายามทำความเข้าใจนะครับ ไม่ยากเกินความสามารถน้องๆ อย่างแน่นอน

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