เรื่อง ฟังก์ชัน (Function)
คือ ชุดคำสั่งที่รวมกันเป็นโปรแกรมย่อยๆ ภายในเครื่องหมาย {} ถูกสร้างขึ้นมาเพื่อทำงานอย่างใดอย่างหนึ่ง และการตั้งชื่อของฟังก์ชันเพื่อให้สะดวกต่อการเรียกใช้งาน ตามกฎการตั้งชื่อโดยมีรูปแบบการเรียกใช้งานแตกต่างกันคือ จะมีการรับหรือไม่รับข้อมูลจากโปรแกรมที่เรียกใช้งานและจะมีการส่งและไม่ส่งค่าข้อมูลออกจากฟังก์ชัน ซึ่งรูปแบบการใช้งานต่างๆของฟังก์ชันจะขึ้นอยู่กับหน้าที่และเป้าหมายการทำงานของฟังก์ชันนั้นๆ
ฟังก์ชันที่สร้างขึ้นเอง
เป็นฟังก์ชันที่ที่ผู้อ่านเขียนโค้ดสร้างฟังก์ชันขึ้นมาใช้งานเองตามรูปแบบการสร้างฟังก์ชันขิงภาษาซี เพื่อให้ทำงานอย่างใดอย่างหนึ่ง ซึ่งสามารถแบ่งการสร้างฟังก์ชันได้ 4 รูปแบบ คือ
1. ฟังก์ชันที่ไม่มีการคืนค่ากลับ และไม่มีการรับค่าพารามิเตอร์
เป็นฟังก์ชันที่สร้างขึ้นมาโดยไม่มีการรับค่าข้อมูล(พารามิเตอร์)ใดๆ จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชันทำงานเสร็จจะไม่มีการคืนค่าข้อมูลใดๆกลับไปให้ฟังก์ชันที่เรียกใช้งานซึ่งมีรูปแบบการสร้างรหัสดังนี้
void functionName (void)
{
Statements;
}
โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง
statement เป็นชุดคำสั่งภายในฟังก์ชัน
2. ฟังก์ชันที่ไม่มีการคืนค่ากลับ แต่มีการรับค่าพารามิเตอร์
เป็นฟังก์ชันที่สร้างขึ้นโดยมีการรับค่าข้อมูล(พารามิเตอร์) จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชันทำงานเสร็จจะไม่มีการคืนค่าข้อมูลใดๆ กลับไปให้ฟังก์ชันที่เรียกใช้งานซึ่งมีรูปแบบการสร้างฟังก์ชันดังนนี้
void functionName (typeParameter_1 varName,……., typeParameter_n varName_n)
{
Statements;
}
โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง
typeParameter_n เป็นชนิดข้อมูลที่ต้องการรับจากฟังก์ชันที่เรียกใช้งาน
varName_n เป็นชื่อตัวแปรที่ใช้รับข้อมูลจากฟังก์ชันที่เรียกใช้งาน
statements เป็นชุดคำสั่งภายในฟังก์ชัน
3. ฟังก์ชันที่มีการคืนค่ากลับ แต่ไม่มีการรับค่าพารามิเตอร์
เป็นฟังก์ชันที่สร้างขึ้นมาโดยไม่มีการรับข้อมูล(พารามิเตอร์)ใดๆ จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชันทำงานเสร็จจะมีการคืนค่าข้อมูลกลับไปให้ฟังก์ชันที่เรียกใช้งานซึ่งมีรูปแบบการสร้างฟังก์ชันดังนี้
typeReturn functionName (void)
{
statements ;
return varNameReturn;
}
โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง
typeReturn เป็นชนิดข้อมูลที่ต้องการคืนค่ากลับให้ฟังก์ชันที่เรียกใช้งาน
varNameReturn เป็นชื่อตัวแปรที่คืนค่ากลับให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมีชนิด ข้อมูลเดียวกันกับ typeReturn
statements เป็นชุดคำสั่งภายในฟังก์ชัน
4. ฟังก์ชันที่มีการคืนค่ากลับ และมีการรับค่าพารามิเตอร์
เป็นฟังก์ชันที่สร้างขึ้นโดยมีการรับข้อมูล(พารามิเตอร์) จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชันทำงานเสร็จจะมีการคืนค่าข้อมูลกลับไปให้ฟังก์ชันที่เรียกใช้งานซึ่งมีรูปแบบการสร้างฟังก์ชันดังนี้
typeReturn functionName (typeParameter_1 varName_1,….., typeParameter_n varName_n)
{
statements;
return varNameReturn;
}
โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง
typeParameter _n เป็นชนิดข้อมูลที่ต้องการรับจากฟังก์ชันที่เรียกใช้งาน
varName_n เป็นชื่อตัวแปรที่ใช้รับข้อมูลจากฟังก์ชันที่เรียกใช้งาน
typeReturn เป็นชนิดข้อมูลที่ต้องการคืนค่ากลับให้ฟังก์ชันที่เรียกใช้งาน
statements เป็นชุดคำสั่งภายในฟังก์ชัน
varNameReturn เป็นชื่อตัวแปรที่คืนค่ากลับมาให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมีชนิดข้อมูลเดียวกันกับtypeReturn
ตัวอย่างโปรแกรม
หาค่าตัวเลขน้อยที่สุด
#include"stdio.h"
int checkMin(int num1, int num2);
main()
{
int A=5,B=8;
printf("Data A= %d, B= %d\n",A,B);
printf("Check min is %d\n",checkMin(A,B));
}
int checkMin(int num1, int num2)
{
int minValue;
if(num1<=num2)
{
minValue = num1;
}
else
{
minValue = num2;
}
return minValue;
}
แสดงผล
Data A=5, B=8
Check min is 5
=====================================================================
โปรมแกรมบวกเลขที่รับเข้ามา 2 ตัว
ตอบลบ#include"stdio.h"
int plus(int a,int b);
int main(void)
{
int a,b;
printf("Please enter your number1 : ");
scanf("%d",&a);
printf("Please enter your number2 : ");
scanf("%d",&b);
printf(" number1 + number2 = %d",plus(a,b));
return 0;
}
int plus(int a,int b)
{
return (a+b);
}
ผลลัพธ์
Please enter your number1 : 5
Please enter your number2 : 6
number1 + number2 = 11
( หัสรา วัจนะรัตน์ 5401011620542 )
โปรมแกรมคำนวนพื้นที่สามเหลี่ยมโดยใช้ฟังก์ชัน
ตอบลบ#include
float triagle (float base,int height);
int main()
{
float base,height;
printf("Enter base :");
scanf("%f",&base);
printf("Enter height :");
scanf ("%f",&height);
printf("Area triangle is %.2f",triagle(base,height));
}
float triagle (float base,int height)
{
float area;
area=base*height/2;
return area;
}
จะแสดงค่า
Enter base :1
Enter height :1
Area triangle is 0.50
(นายปลวัชร เปรมสิริอำไพ 54-010116-2033-0)
โปรแกรมคิดค่าพื้นที่วงกลม
ตอบลบ#include"stdio.h"
#define PI 3.14
float CircleArea (float r);
int main(void)
{
float r;
printf("Enter Radius => ");
scanf("%f",&r);
printf("Area=> %f",CircleArea(r));
return 0;
}
float CircleArea (float r)
{
float r;
return CircleArea=PI*r*r;
}
r=10
Area=314.000000
ผลลัพธ์ คือ
Enter Radius => 10
Area=> 314.000000
(น.ส. พรทิพย์ ทาบุตร 54-010116-2036-4)
#include
ตอบลบvoid PrintName (void);
int main(void)
{
PrintName();
getch();
}
void PrintName(void)
{
printf("Programming Language");
}
ผลที่ได้คือ
Programming Language
(เบญจพล ศรีสันติธรรม 54-010116-2059-3)
ความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบการใช้ functionที่สร้างขึ้น
ตอบลบการหาค่า
#include
float Func (float a ,float b);
main (void)
{
float a,b ;
printf ("Enter a =");
scanf ("%f"&a);
printf ("Enter b =");
scanf ("%f"&b);
Func ( a , b);
return 0;
}
float Func (float a ,float b)
{
float ans;
ans=(float) ( a+b)/(a*b);
printf ("ans is = %f",ans);
return ans ;
}
การทำงาน
Enter a = 1
Enter b = 1
ans is 2
นายธน สุทธิธรรม 5401011630149
โปรแกรมหา เส้นรอบวง พื้นที่วงกลม ปริมาตร วงกลม
ตอบลบ#include
#define PI = 3.14
double area(double r);
double perimeter(double r);
double volume(double r,double h);
int main(void)
{
int r = 10,h = 5;
printf("area = %2f,per. = %.2f,Vol. = %.2f",
area(r),perimeter(r),volume(r,h));
return 0;
}
double area(double r)
{
return PI*r*r;
}
double perimeter(double r)
{
return 2*PI*r;
}
double volume (double r,double h)
{
return area(r)*h;
}
ผลลัพธ์ area = 314.00,pre.=62.80,Vol.=1570.00
ตอบลบ#include
ตอบลบvoid kane(int a,int b);
int main (void)
{
int a,b;
printf("Please enter number in a b \n");
scanf("%d%d",&a,&b);
kane(a,b);
return 0;
}
void kane(int a,int b)
{
int sum=0;
sum=a+b;
printf("result = %d\n",sum);
}
ใส่ 4 and 5ลงไป
ผลลัพท์ 9
ศราวุฒิ คำเมือง 54-101016-2049-6
#include
ตอบลบvoid thename (void);
int main(void)
{
thename();
getch();
}
void thename(void)
{
printf("my name is rom");
}
หลัง run ผลลัพธ์คือ
my name is rom
(อาภากร กัณหา 54-010116-2062-3)