สวัสดีครับ น้องๆ ที่กำลังเริ่มต้นเขียนภาษา C ตัวอย่างโจทย์ภาษา C ข้อนี้ จะเป็นการใช้ภาษา C ในการหา ค่าของเลขยกกำลัง โดยเราจะหาค่าด้วยการใช้ For Loop แทนการใช้ Function pow ของ math.h ครับ
โจทย์
จงเขียนโปรแกรมในการหาผลลัพธ์ของ เลขยกกำลัง โดยใช้ภาษา 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<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
ตัวอย่างการ Run โปรแกรม
ตัวอย่าง Run ครั้งที่ 1
ทดลอง ฐาน 2 เลขชี้กำลัง 3 ได้ผลลัพธ์ 8 ( 2 x 2 x 2 )
ตัวอย่าง 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
เป็นยังไงบ้างครับ น้องๆ เข้าใจหลักการไหมครับ อาจจะมีเรื่องคณิตศาสตร์เข้ามาร่วมด้วย ให้ลองพยายามทำความเข้าใจนะครับ ไม่ยากเกินความสามารถน้องๆ อย่างแน่นอน
ถ้าใครมีข้อสงสัยสามารถเข้ามาสอบถามที่ Fanpage TUTORTONG สอนเขียนโปรแกรม ได้นะครับ มาสนุกกับการเขียนโปรแกรมกับพวกเราที่ TUTORTONG สอนเขียนโปรแกรมนะครับ ^^