7.13.2554

เนื้อหาจากการประชุมครั้งที่ 3

เรื่อง ฟังก์ชัน (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 num
1, 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


=====================================================================






10 ความคิดเห็น:

  1. ไม่ระบุชื่อ30 กรกฎาคม 2554 เวลา 14:18

    โปรมแกรมบวกเลขที่รับเข้ามา 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 )

    ตอบลบ
  2. ไม่ระบุชื่อ31 กรกฎาคม 2554 เวลา 21:44

    โปรมแกรมคำนวนพื้นที่สามเหลี่ยมโดยใช้ฟังก์ชัน
    #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)

    ตอบลบ
  3. ไม่ระบุชื่อ1 สิงหาคม 2554 เวลา 19:51

    โปรแกรมคิดค่าพื้นที่วงกลม
    #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)

    ตอบลบ
  4. #include

    void PrintName (void);

    int main(void)
    {
    PrintName();
    getch();
    }

    void PrintName(void)
    {
    printf("Programming Language");
    }

    ผลที่ได้คือ

    Programming Language

    (เบญจพล ศรีสันติธรรม 54-010116-2059-3)

    ตอบลบ
  5. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  6. การใช้ 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

    ตอบลบ
  7. ประวีร์ แสงทอง4 สิงหาคม 2554 เวลา 20:21

    โปรแกรมหา เส้นรอบวง พื้นที่วงกลม ปริมาตร วงกลม
    #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;
    }

    ตอบลบ
  8. ไม่ระบุชื่อ4 สิงหาคม 2554 เวลา 20:24

    ผลลัพธ์ area = 314.00,pre.=62.80,Vol.=1570.00

    ตอบลบ
  9. ไม่ระบุชื่อ8 กันยายน 2554 เวลา 16:08

    #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

    ตอบลบ
  10. #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)

    ตอบลบ