คำสั่งที่ใช้ในการเรียกใช้ข้อมูล

สื่อวีดิทัศน์การสอน เรื่อง :: ฟังก์ชัน ::   

———————————————————————————————————————————

ฟังก์ชัน (Function)

คำสั่งที่ใช้ในการเรียกใช้ข้อมูล

         ฟังก์ชัน (Function) เป็นการเขียนคำสั่งหลาย ๆ คำสั่งมารวมกันไว้ภายในเครื่องหมาย { } เพื่อให้
คำสั่งเหล่านั้นทำงานตามวัตถุประสงค์ หรือเป้าหมายของการทำงาน และมีการตั้งชื่อกลุ่มคำสั่งใหม่ เรียกว่า
ชื่อฟังก์ชัน (Function Name) ประโยชน์ของการเขียนฟังก์ชันนั้น เพื่อทำให้ไม่ต้องเขียนชุดคำสั่งเดิม ๆ หลายครั้ง และช่วยให้การเขียนคำสั่งที่มีความซับซ้อนมีประสิทธิภาพมากขึ้น และมักจะนำการเขียนฟังก์ชันไปใช้กับการหาคำตอบของคำนวณเพื่อหาค่า หรือลักษณะของงานที่มีการเรียกใช้งานบ่อย ๆ เช่น การเขียนโปรแกรมเพื่อหาค่าภาษีมูลค่าเพิ่ม การคำนวณหาพื้นที่สี่เหลี่ยมเป็นต้น

(แหล่งข้อมูล...  คู่มือเรียนรู้ภาษาซีด้วยตนเอง / ผศ.รุ่งทิวา เสาร์สิงห์)

———————————————————————————————————————————

ประเภทของฟังก์ชัน

คำสั่งที่ใช้ในการเรียกใช้ข้อมูล

         ฟังก์ชันที่ใช้ในภาษาซีนั้น สามารถแบ่งออกเป็น 2 ประเภทใหญ่ คือ
         1. ฟังก์ชันมาตรฐาน (Standard Function)
                  เป็นฟังก์ชันที่มีมาพร้อมกับตัวแปลภาษา C ที่สามารถเรียกใช้งานได้ โดยไม่ต้องเขียนขึ้นเอง
         เช่น ฟังก์ชันคำนวณทางคณิตศาสตร์ ฟังก์ชันในการแสดงผลข้อมูล ฟังก์ชันจัดการเกี่ยวกับข้อความ
         เป็นต้น โดยฟังก์ชันเหล่านี้ สามารถเรียกได้อีกอย่างว่าไลบรารีฟังก์ชัน (Library Function)
         2. ฟังก์ชันที่ผู้ใช้สร้างขึ้นเอง (User-Define Function)
                  เป็นฟังก์ชันที่ผู้ใช้งานสร้างขึ้นมาเอง ซึ่งส่วนใหญ่เขียนขึ้นมาเพื่อแก้ไขปัญหา การคำนวณ
         ตามสูตรต่าง ๆ และตอบสนองกับความต้องการในการใช้งานซึ่งในภาษา C ไม่มีมาให้ ซึ่งฟังก์ชัน
         ประเภทนี้จะมีโครงสร้างดังนี้

          ประเภทนี้จะมีโครงสร้างดังนี้


Type Function_Name (arg1,arg2,…,argN)
Type arg1;
Type arg2;
Type argN;
{
     Var_Type Var_Name1;
     Var_Type Var_Name2;
     Statement1;
     Statement2;
     StatementN;
     return(Value);
}

          อธิบาย

Type

เป็นประเภทของผลลัพธ์ของฟังก์ชันที่ได้จากการทำงานตัวอย่างเช่น ฟังก์ชันที่ใช้หาค่าภาษีมูลค่าเพิ่ม (VAT) นั้น ผลลัพธ์ที่ได้จากการคำนวณ หากเป็นเลข ทศนิยม ก็จะต้องกำหนดประเภทของฟังก์ชัน (Type) เป็น float แต่ถ้าผู้ใช้งานไม่กำหนดค่าใด ๆ ให้กับฟังก์ชัน ค่ามาตรฐานที่จะถูกกำหนดคือ เลขจำนวนเต็ม (Int)

Var_Type

เป็นประเภทของตัวแปร ซึ่งผู้ใช้งานจะต้องกำหนดประเภทของตัวแปรด้วย เพื่อให้ระบบรับรู้ว่ากำลังดำเนินการกับตัวแปรประเภทใดอยู่

Var_Name

เป็นการระบุชื่อตัวแปรที่ต้องการใช้งาน

return

เป็นคำสั่งที่ใช้ในการส่งผลลัพธ์จากการทำงานของฟังก์ชันนั้น กลับไปยังคำสั่งที่เรียกใช้งาน ซึ่งค่าของ Value คือ ค่าผลลัพธ์ที่ได้จากการทำงานในฟังก์ชันนั้น สามารถเป็นค่าคงที่ หรือตัวแปรได้และจะต้องเป็นประเภท (Type) เดียวกันกับประเภทของฟังก์ชันที่ได้ประกาศไว้ตอนต้น หากฟังก์ชันใดไม่มี
การส่งค่ากลับคืนก็ไม่จำเป็นต้องระบุคำสั่ง return นี้

         ตัวอย่างโปรแกรม
                  คุณครูต้องการให้นักเรียนแสดงข้อความทั้งหมด 4 บรรทัด โดยบรรทัดแรกให้แสดงข้อความว่า
         Hello everyone,  บรรทัดที่สองให้แสดงเครื่องหมาย * จำนวน 20 ตัว บนจอภาพ  บรรทัดที่สามให้
         แสดงการแนะนำ ชื่อ - นามสกุล ของนักเรียน  เช่น My name is Thanphisit Khunyodying
         และบรรทัดที่สี่ ให้แสดงเครื่องหมาย * จำนวน 20 ตัว บนจอภาพ  จึงให้นักเรียนเขียนโปรแกรมเพื่อ
         แสดงผลข้อมูล ดังนี้
                  “ให้นักเรียนเขียนโปรแกรมโดยใช้ฟังก์ชันที่ชื่อ star20( ) ในการแสดงข้อความเป็นตัวอักษรสอง
         บรรทัด แสดงข้อความว่า Hello everyone เมื่อแสดงข้อความหนึ่งบรรทัดแล้วจะแสดงเครื่องหมาย
         * จำนวน 20 ตัว จากนั้นจะแสดงข้อความเป็นตัวอักษรในบรรทัดต่อไป   เป็นการแนะนำ ชื่อ-นามสกุล
         ของนักเรียน จากนั้นให้แสดงเครื่องหมาย * อีก 20 ตัว”

         วิเคราะห์ปัญหา (Analysis)
                  สิ่งที่โจทย์กำหนด :: กำหนดให้ฟังก์ชัน star20( ) แสดงเครื่องหมาย * จำนวน 20 ตัวด้วยคำสั่ง
         while (x<=20) ในบรรทัดที่สองและบรรทัดที่สี่ และกำหนดให้ฟังก์ชัน main( ) แสดงข้อความว่า
         Hello everyone ในบรรทัดแรก และแสดงข้อความแนะนำ ชื่อ-นามสกุล ของนักเรียน เช่น  
         My name is Thanphisit Khunyodying   ในบรรทัดที่สี่ บนจอภาพ
                  สิ่งที่โจทย์ต้องการ :: แสดงข้อความว่า   Hello everyone, ในบรรทัดแรก บรรทัดที่สองแสดง
         เครื่องหมาย * จำนวน 20 ตัว บรรทัดที่สาม แสดงการแนะนำชื่อ-นามสกุล ของนักเรียน เช่น  My name
         is Thanphisit Khunyodying  ในบรรทัดที่สี่ และแสดงเครื่องหมาย * จำนวน 20 ตัว บนจอบภาพ

         การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้

Pseudo Code

Flowchart

Algorithm Function star20( )
  1. Start
  2. int x=0
  3. while (x<=20)
    3.1 Print *
    3.2 x++
  4. Print ("\n");
  5. End
คำสั่งที่ใช้ในการเรียกใช้ข้อมูล
Algorithm Function main( )
  1. Start
  2. Print Hello everyone,
  3. Call Function star20( )
  4. Print My name is Thanphisit Khunyodying
  5. Call Function star20( )

  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 star20( )
{
     int x=0;
     while (x<=20)
     {
          printf("*");
          x++;
     }
     printf("\n");
}
int main( )
{
     printf("Hello everyone, \n");
     star20( );
     printf("My name is Thanphisit Khunyodying \n");
     star20( );
}

         อธิบายโปรแกรม

บรรทัดที่ 1

เรียกใช้ไลบรารีฟังก์ชัน stdio.h

บรรทัดที่ 2

สร้างฟังก์ชัน star20( ) ขึ้นเอง

บรรทัดที่ 3

เริ่มต้นการทำงานของฟังก์ชัน star20( ) ด้วย {

บรรทัดที่ 4

กำหนดค่าตัวแปร x เท่ากับ 0

บรรทัดที่ 5

กำหนดการวนรอบเมื่อ x น้อยกว่าหรือเท่ากับ 20 ถ้าเงื่อนไขเป็นจริง
ให้ทำงานที่บรรทัดที่ 6 ถึง 9

บรรทัดที่ 6

เริ่มต้นการทำงานของคำสั่ง while ด้วย {

บรรทัดที่ 7

แสดงเครื่องหมาย * หนึ่งตัว

บรรทัดที่ 8

เพิ่มค่าตัวแปร x ขึ้นอีก 1

บรรทัดที่ 9

สิ้นสุดการทำงานของคำสั่ง while ด้วย }

บรรทัดที่ 10

ขึ้นบรรทัดใหม่ 1 บรรทัด

บรรทัดที่ 11

สิ้นสุดการทำงานของฟังก์ชัน star20( ) ด้วยเครื่องหมาย }

บรรทัดที่ 12

เข้าสู่การทำงานของโปรแกรมหลักด้วย int main( )

บรรทัดที่ 13

เริ่มต้นการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย {

บรรทัดที่ 14

แสดงข้อความ Hello everyone, บนจอภาพ พร้อมขึ้นบรรทัดใหม่

บรรทัดที่ 15

เรียกใช้ฟังก์ชัน star20( )

บรรทัดที่ 16

แสดงข้อความ My name is Thanphisit Khunyodying พร้อมขึ้นบรรทัดใหม่

บรรทัดที่ 17

เรียกใช้ฟังก์ชัน star20( )

บรรทัดที่ 18

สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย }

         ผลลัพธ์บนจอภาพ

Hello everyone,
********************
My name is Thanphisit Khunyodying
********************

                  จากการแสดงผลลัพธ์นี้ จะทำให้เห็นประโยชน์ของการเขียน ฟังก์ชันอย่างง่ายไว้ใช้งานเพราะ
         หากไม่มีฟังก์ชัน จะต้องเขียนโปรแกรมเพิ่มเพื่อสร้างเครื่องหมาย * อีก 20 ตัว การที่เขียนเป็นฟังก์ชัน
         ก็จะทำให้ สามารถเรียกกลุ่มคำสั่งหรือฟังก์ชันนั้นมาใช้ใหม่ได้

(แหล่งข้อมูล...  คู่มือการเขียนโปรแกรมภาษา C ฉบับผู้เริ่มต้น / ประภาพร ช่างไม้)

———————————————————————————————————————————