10. การเขียนฟังก์ชัน x^y ขึ้นใช้เอง เมื่อ x และ y เป็นจานวนเต็มบวก และ x ไม่เท่ากับ 0
ชื่อของฟังก์ชัน: power - คานวณและคืนค่า x^y เป็นจานวนเต็ม ตามค่าของ x และ y ที่ผู้เรียกส่งมาให้
ข้อมูลเข้า:
x เป็นตัวแปรรับค่าฐาน และเป็นจานวนเต็มชนิด int และ x > 0
y เป็นตัวแปรรับค่ากาลัง และเป็นจานวนเต็มชนิด int และ y >= 0
หรือกล่าวอีกนัยหนึ่งคือ power มี formal parameter 2 ตัวซึ่งเป็นจานวนเต็มชนิด int
หมายเหตุ ที่ต้องกาหนดคุณสมบัติของ x และ y เช่นนี้ เพื่อป้องกันไม่ให้มีการส่งค่า x = 0 และ
y = 0 เข้ามาในฟังก์ชัน เนื่องจากไม่มีการนิยาม 0^0 ไว้
ข้อกาหนดเช่นนี้ ผู้เรียกใช้งานเป็นผู้รับผิดชอบ ที่จะดูแลส่งค่าให้เป็นไปตามคุณสมบัติที่กาหนดไว้
ข้อมูลออก:
คืนค่าเป็นจานวนเต็มชนิด int หรือมี return value เป็นจานวนเต็มชนิด int
ความสัมพันธ์ในการจับคู่ระหว่างสมาชิกของงเซตเป็นดังนี้
power: int x int ---> int
นามากาหนดส่วนหัวของฟังก์ชันได้ดังนี้
int power (int x, int y);
11. การคานวณค่าของฟังก์ชัน (body)
การหาค่าของ x^y ตามคุณสมบัติข้างต้น ทาได้โดยการนา x มาคูณกัน y ครั้ง
ทาได้โดยการใช้โครงสร้างทาซ้า เพื่อหาค่าผลคูณสะสม อย่าลืมว่าเอกลักษณ์ของการคูณ = 1
ฟังก์ชันภาษา C ที่เสร็จเรียบร้อยแล้วเป็นดังนี้
int power ( int x, int y )
{
inti;
intp = 1; // ตัวแปรเก็บผลคูณ (product) สะสม
// ค่าเริ่มต้น = เอกลักษณ์ของการคูณ
for ( i = 0; i < y; ++i ) // x คูณกัน y ครั้ง, ครั้งที่ 0 - (y-1)
p *= x; // p = p * x;
return p; // คืนค่า x^y ให้แก่ผู้เรียก
}