สื่อวีดิทัศน์การสอน เรื่อง :: ฟังก์ชันที่มีการรับค่าเข้ามา ::
———————————————————————————————————————————
2. ฟังก์ชันที่มีการรับค่าเข้ามา
ฟังก์ชันชนิดนี้เป็นฟังก์ชันที่จะต้องรับค่าตัวแปรเข้ามาทำงานในฟังก์ชัน ซึ่งค่าที่ส่งเข้ามานั้นจะต้องตรงกับชนิดของตัวแปรที่ประกาศไว้ด้วย เช่น หากมีการประกาศว่ารับค่าชนิด int การส่งค่าเข้ามาประมวลผลจะต้องเป็นค่าชนิด Int ด้วยเช่นกัน หากส่งมาผิดชนิดจะไม่สามารถประมวลผลได้
ตัวอย่างโปรแกรม
คุณครูต้องการให้นักเรียนแสดงผลลัพธ์การคูณกันของแม่สูตรคูณ โดยให้นักเรียนกรอกเลข
แม่สูตรคูณลงไป แล้วทำการแสดงผลแม่สูตรคูณแม่นั้น โดยเริ่มคูณจากเลข 1 จนถึงเลข 12 เช่น
นักเรียนกรอกเลขแม่สูตรคูณแม่ 5 จะแสดงผล 5 x 1 = 5 ไปจนถึง 5 x 12 = 60 เป็นต้น
จึงให้นักเรียนเขียนโปรแกรมเพื่อแสดงผลข้อมูล ดังนี้
“ให้นักเรียนเขียนโปรแกรมโดยแสดงข้อความว่า Enter multiply number : และรับเลข
แม่สูตรคูณเข้ามาในระบบ เช่น แม่สูตรคูณแม่ 5 จากนั้นทำการเรียกฟังก์ชัน multiply(x);
เพื่อกำหนดการวนซ้ำด้วยคำสั่ง for (y=1; y<=12; y++) และแสดงผลลัพธ์ของการคูณ
บนจอภาพ
เช่น 5 x 1 = 5 ไปจนถึง 5 x 12 = 60 เป็นต้น”
วิเคราะห์ปัญหา (Analysis)
สิ่งที่โจทย์กำหนด :: กำหนดตัวแปร arg1 เก็บค่าจำนวนครั้งในการคูณ กำหนดฟังก์ชัน
multiply( ); เพื่อกำหนดการวนซ้ำด้วยคำสั่ง for(y=1; y<=12; y++) และแสดงผลการคูณ กำหนด
ฟังก์ชัน main( ) แสดงข้อความ Enter multiply number : และตัวแปร x รับเลข
แม่สูตรคูณ
โดยใช้ Format Code ชนิด Integer จากนั้นส่งค่าตัวแปร x ไปยังฟังก์ชัน multiply(x);
สิ่งที่โจทย์ต้องการ :: แสดงผลลัพธ์การคูณกันของแม่สูตรคูณ
โดยแสดงข้อความว่า Enter
multiply number : รับค่าของตัวแปร x ที่เก็บเลขแม่สูตรคูณ และแสดงผลการคูณของตัวแปร
agr1 x y = arg1*y บนจอภาพ
การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้
Pseudo Code |
Flowchart |
Algorithm Function multiply(arg1)
1. Start
2. int y , arg1
3. Print ("\n");
4. for (y=1; y<=12; y++)
4.1 Print arg1 x y = arg1*y
5. End |
|
Algorithm Function main( )
1. Start
2. int x;
3. Print Enter multiply number :
4. Input x
5. Call Function multiply(x);
6. End
|
|
เขียนโปรแกรม (Coding)
บรรทัดที่ |
โปรแกรม |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <stdio.h>
void multiply(arg1)
int arg1;
{
printf("\n");
int y;
for (y=1; y<=12; y++)
{
printf(" %d x %d = %d \n",arg1,y,arg1*y);
}
}
int main( )
{
int x;
printf("Enter multiply number : ");
scanf("%d",&x);
multiply(x);
} |
อธิบายโปรแกรม
บรรทัดที่ 1 |
กำหนดใช้งานไลบรารีชื่อ stdio.h ให้ทำงาน |
บรรทัดที่ 2 |
สร้างฟังก์ชันชนิดรับค่าเข้ามาชื่อ multiply( ) พร้อมกับการรับค่าเข้ามา 1 ค่า |
บรรทัดที่ 3 |
กำหนดตัวแปรที่ใช้ในการรับค่าชื่อ arg1 เป็นประเภท int |
บรรทัดที่ 4 |
เริ่มต้นการทำงานของฟังก์ชัน multiply( ) ด้วย { |
บรรทัดที่ 5 |
ขึ้นบรรทัดใหม่ 1 บรรทัด |
บรรทัดที่ 6 |
สร้างตัวแปร y เพื่อใช้ในการวนรอบสำหรับคำสั่ง for |
บรรทัดที่ 7 |
กำหนดคำสั่ง for เพื่อใช้ในการวนรอบด้วยตัวแปร y จำนวน 12 รอบจาก 1 ถึง รอบที่ 12 |
บรรทัดที่ 8 |
เริ่มการทำงานการวนรอบของตัวแปร y ด้วย { |
บรรทัดที่ 9 |
ทำการแสดงผลลัพธ์ของแม่สูตรคูณ โดยกำหนดให้ arg1 แทนด้วยตัวเลขของแม่สูตรคูณ
ที่รับเข้ามา ส่วน y แทนด้วยการวนรอบแต่ละรอบจาก 1 ถึง 12 และ arg1 * y คือผลลัพธ์การคูณกันของตัวแปร arg1 และ y ในแต่ละรอบ |
บรรทัดที่ 10 |
สิ้นสุดการทำงานของ for ด้วย } |
บรรทัดที่ 11 |
สิ้นสุดการทำงานของฟังก์ชัน multiply( ) ด้วย } |
บรรทัดที่ 12 |
กำหนดคำสั่งโปรแกรมหลัก int main() |
บรรทัดที่ 13 |
เริ่มชุดคำสั่งด้วย { |
บรรทัดที่ 14 |
กำหนดตัวแปร x เป็นประเภท int |
บรรทัดที่ 15 |
แสดงข้อความ Enter multiply number : |
บรรทัดที่ 16 |
ทำการรับค่าแม่สูตรคูณเข้ามา โดยเก็บไว้ในตัวแปร x |
บรรทัดที่ 17 |
เรียกใช้ฟังก์ชัน multiply( ) โดยการรับค่าตัวแปร x เข้าไป
ประมวลผล |
บรรทัดที่ 18 |
สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) |
ผลลัพธ์ของโปรแกรม
โปรแกรมจะทำการแสดงผลลัพธ์ของแม่สูตรคูณ ตามที่นักเรียนกรอกเข้ามาในระบบ ในที่นี้ทดสอบพิมพ์ 5 จะได้ผลลัพธ์จอภาพนี้
Enter multiply number : 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
5 x 11 = 55
5 x 12 = 60 |
การทดสอบการทำงานของโปรแกรมจากเว็บ https://repl.it/languages/c
คลิกเครื่องหมาย เพื่อดูผลผลลัพธ์การทำงานของโปรแกรมด้านล่าง
(ลิงค์สำรอง https://repl.it/repls/VioletThoseSign)
———————————————————————————————————————————
|