ฟังก์ชั่น function -...

Post on 28-Feb-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

อ.พิศษิฐ์ นาคใจ

ฟังก์ชั่นFunction

Function

• ฟังก์ชัน คือ ชดุของการท างาน ที่ถูกเขียนขึ้นให้โปรแกรมเมอร์สามารถเรียกใช้ได้โดยง่าย เป็นการเขียนค าสั่งรวมกันไว้เป็นกลุ่มของค าสั่งเพื่อท างานให้ส าเร็จ

ฟังก์ชัน คือ ชดุของการท างาน

ฟังก์ชัน สามารถถูกเรียกใช้งานได้

Function

• ปัญหาที่เกิดจากการพัฒนาโปรแกรมที่ซับซ้อนโปรแกรมเมอร์ไม่สามารถทราบขั้นตอนการท างานของคอมพิวเตอร์ทั้งหมดได้ เช่น

ขั้นตอนการน าข้อความไปปรากฏบนหน้าจอ

โปรแกรมมีการท างานที่ซับซ้อน และการท างานซับซ้อน มีการค านวณทางคณิตศาสตร์ เช่น การหาค่า SIN การหาผลลัพธ์ทางวิทยาศาสตร์ การวิเคราะหข์้อมูลขนาดใหญ่เป็นต้น

• วิธีการแก้ไขท าการให้โปรแกรมเมอร์ที่มีความรู้เกี่ยวกับขั้นตอนการท างานเหล่านั้น

เขียนชุดค าสั่งของกระบวนการต่างๆ ขึ้นมา แล้วแจกจ่ายให้โปรแกรมเมอร์อื่นๆ ได้ใช้งาน

โปรแกรมเมอรท์ี่ต้องการใช้งาน กระบวนการเหล่านั้น สามารถเรียกใช้ฟังก์ชั่นโดยทราบเพียงวธิีการใช้งาน และ ผลลัพธท์ี่เกิดขึ้นหลังจากเรียกใช้งานฟังก์ชันเท่านั้น

เช่น โปรแกรมเมอรท์ี่ไม่ทราบวา่ท าอย่างไรตวัอักษรจึงจะปรากฏบนหน้าจอ สามารถใช้ค าสัง่ printf ได้เลย โดยโปรแกรมเมอร์จะทราบเพียงแค่ การเรียกprintf จะท าให้มตีัวอักษรปรากฏบนหน้าจอได้เท่านั้น

• ข้อดีของฟังก์ชันท าให้โปรแกรมเมอร์สามารถพัฒนาโปรแกรมได้โดยง่าย โดยโปรแกรมเมอร์ไม่

จ าเป็นต้องทราบว่าการท างานของฟังก์ชันท างานอย่างไรทราบเพียงผลลัพธ์ของการท างานเท่านั้น

โปรแกรมเมอรส์ามารถเขียนโปรแกรมให้มีการท างานที่ซับซ้อนได้ โดยไม่จ าเป็นต้องเขียนโปรแกรมส่วนที่ซับซ้อนนั้นหลายๆ ครั้ง

โปรแกรมเมอรส์ามารถออกแบบฟังก์ชันได้ตามความต้องการของโปรแกรมเมอร์

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

ฟังก์ชันแบ่งออกเป็น 2 ประเภท

1. ฟังก์ชันไลบรารมีาตรฐาน (Standard Library function)

2. ฟังก์ชันที่สรา้งขึ้นเอง (User Defined function)

ฟังก์ชันไลบรารีมาตรฐาน

ฟังก์ชันไลบรารมีาตรฐาน (Standard Library Function) เป็นฟังก์ชันที่มี

อยู่แลว้เก็บไว้ใน Library ในการใช้งานต้อง include directives ก่อน

directive คือสารบัญของกลุ่มฟังก์ชัน เช่น stdio.h , conio.h , string.h,

math.h เป็นต้น

การ include directives จะเป็นเหมือนการประกาศให้กับ compilerทราบว่าจะใช้ค าสั่ง ในกลุ่มของ directive นั้นๆ เช่น การใชค้ าสั่ง sin()

ซ่ึงอยู่ใน math.h จะตอ้องมีบรรทัด include math.h เสมอ ดังตัวอยา่าง

ทดลองเขยีน Function sin()

ฟังก์ชันไลบรารีมาตรฐาน

การเรียกใช้ Standard Library Function มีขั้นตอนดังนี้

1. ทราบว่าโปรแกรมที่เขียนต้องการการท างานอะไร

2. การท างานดังกล่าวคือฟังก์ชันช่ืออะไร

3. ทราบ directive ที่เป็นสารบัญของค าสั่ง

4. Include directive นั้นๆ

5. เรียกใช้ฟังกช์ันในโปรแกรม

ฟังก์ชันไลบรารีมาตรฐาน

ฟังก์ชันการค านวณทางคณติศาสตร์

– ไฟล์ header => math.h

ฟังก์ชันส าหรบัอักขระและข้อความ

– ไฟล์ header => string.h

ctype.h

#include<math.h>

sin(var)cos(var);tan(var);sqrt(var);pow(var1,var2);log(var);log10(var);exp(var);fabs(var);

ตัวอย่างโปรแกรม

#include<stdio.h>#include<math.h> // int main(){float a = 3.14; float b = -123.456;float c = 2.7;int d = -2000;

printf ("%.3f \n", sin(a));printf ("%.3f \n", cos(a));printf ("%.3f \n", tan(a));printf ("%3f \n", sqrt(a));printf ("%.3f \n", pow(a,c));printf ("%.3f \n", log(a));printf ("%.3f \n", log10(a));printf ("%.3f \n", exp(a));printf ("%.3f \n", fabs(b));printf ("%d \n", abs(d));return 0;}

include<string.h>

strcpy(str1, str2);strcat(dest1, src2);strcmp(dest1, src2);strcmpi(str1, str2);strlen(str);

#include<ctype.h>

tolower(ch);toupper(ch);

ฟังก์ชั่นที่ผู้ใช้งานสร้างขึ้นเอง

เนื่องจาก Standard Library Function ทั้งหมด เป็นฟันก์ชันมาตรฐานที่มีเฉพาะการท างานพื้นฐานต่างๆ เท่านั้น

หากต้องการฟังก์ชันที่มีการท างานเฉพาะอย่าง โปรแกรมเมอร์ต้องเขียนฟังก์ชันขึ้นมาเอง

• ข้อก าหนดพื้นฐานของ User-defined Function

ต้องมีการประกาศ function prototype ที่ต้นโปรแกรมเสมอ จึงจะเรียกใช้งาน function นั้นๆ ได้ (เป็นการบอก Compiler ว่าเป็นค าสั่งไมใ่ช่ Error)

ต้องมีการเขียนฟังก์ชันตามโครงสร้างที่ได้ประกาศไว้ในfunction prototype เท่านั้น

โครสร้างการเขียน Function

#include<stdio.h>

type function name(type);

int main()

{

statement-1;

statement-n;

return 0;

}

type function_name(type variable_name)

{

statement-1;

...

statement-n;

return(var);

}

รูปแบบโครสร้างของฟังกชัน

การประกาศใช้งานฟังชันเป็นดังนี้

type คือ ชนิดข้อมูลที่ Function นั้นๆ ส่งกลับ หากไมม่ีการส่งกลับก าหนดค่านี้เป็น Void

function_name คือ ชื่อของFunction

type-n คือ ชนิดของข้อมูลที่จะส่งใหฟ้ังก์ชัน

type function_name(type-1, type-2,….,type-n)

รูปแบบของ Function ที่สร้างขึ้นเอง

• รูปแบบของ Function ที่สร้างขึ้นเองมีการส่งและรับค่า หลากหลายรูปแบบดังนี้

• 1. ฟังก์ชันที่ไมม่ีการรับส่งค่า

• 2. ฟังก์ชันทีม่กีารรับค่าแต่ไม่ส่งค่ากลับ

• 3. ฟังก์ชันทีม่ีการรับค่า และมีการส่งค่ากลับ

• 4. ฟังก์ชันที่ไม่มีการรับค่าแต่มีการส่งค่ากลับ

ฟังก์ชันที่ไม่มีการรับส่งคา่

• เป็นฟังก์ชันที่ ไม่ม ีการรับค่าและส่งค่าออกจาก Function

#include<stdio.h>#include<conio.h>void function_name(void);int main(){...function_name(); // call Function...return 0;}

void function_name(){statement-1;statement-2;...statement-n;}

ตัวอย่างโปรแกรม

ฟังก์ชันที่มีการรับคา่แต่ไม่ส่งค่ากลับ

• เป็นฟังก์ชันที่มีการรับค่าเข้ามาในฟังก์ชัน แต่ไมม่ีการส่งค่ากลับออกไปจากฟังก์ชัน

#include<stdio.h>#include<conio.h>void func_name(type);int main(){...func_name(varX); // call Function…return 0;}

void func_name(type varY){statement-1;statement-2;...statement-n;}

ตัวอย่างโปรแกรม

• เป็นฟังก์ชันที่มีการรับค่าเข้ามาในฟังก์ชัน และมีการส่งค่ากลับออกไปจากฟังก์ชัน

#include<stdio.h>#include<conio.h>type func_name(type);int main(){...var = func_name(varX);... return 0;}

type func_name(type varY){statement-1;statement-2;...statement-n;return(varZ);}

ตัวอย่างโปรแกรม

• เป็นฟังก์ชันที่ไมม่ีการรับค่าเข้ามาในฟังก์ชัน แต่ไมม่ีการส่งค่ากลับออกไปจากฟังก์ชัน

#include<stdio.h>#include<conio.h>type func_name(void);int main(){...var = func_name();... return 0;}

type func_name(){statement-1;statement-2;...statement-n;return(varZ);}

ตัวอย่างโปรแกรม

สรุป

Function คือชุดของค าสั่ง สร้างเพื่อลดความซับซ้อนในการเขียนโปรแกรม

Function แบ่งเป็น Function มาตรฐาน และ Function ที่สร้างเอง

Function สร้างสร้างเองมี 4 แบบ

1. ฟังก์ชันที่ไมม่ีการรับส่งค่า

2. ฟังก์ชันทีม่ีการรับค่าแต่ไม่ส่งค่ากลับ

3. ฟังก์ชันทีม่ีการรับค่า และมีการส่งค่ากลับ

4. ฟังก์ชันที่ไม่มีการรับค่าแต่มีการส่งค่ากลับ

top related