สวัสดีครับ มาพบกันกับอีกบทความ ตัวอย่างโจทย์การเขียนโปรแกรมภาษา C++ ด้วย Dev-C++ สำหรับผู้เริ่มต้นเขียนโปรแกรม โจทย์ในข้อนี้ คือ การเขียนโปรแกรม หาค่าของ เลขยกกำลัง โดยที่เลขชี้กำลังเป็นจำนวนเต็มบวกครับ ยกตัวอย่างเช่น 22 , 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
ตัวอย่างการ 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
เป็นยังไงบ้างครับ กับตัวอย่างการเขียนโปรแกรมภาษา C++ หาค่าเลขยกกำลัง มีการใช้ For Loop ไม่ยากครับ เพราะเป็นแบบพื้นฐาน ลองอ่านและทำความเข้าใจดูครับ ถ้าจะให้ดีลองไล่ Flowchart ดูครับ แล้วจะรู้หลักการทำงานของโปรแกรมนี้ครับ
น้องๆ คนไหนมีข้อสงสัยก็สามารถเข้ามาสอบถามได้ที่ Fanpage TUTORTONG สอนเขียนโปรแกรม นะครับ มาเรียนรู้และสนุกกับการเขียนโปรแกรมไปด้วยกันที่ TUTORTONG สอนเขียนโปรแกรม ครับ ^^