สถาบันทางการเงิน · 2016. 7. 14. · ประเภทของ ธนาคาร ประเภทของธนาคารทั่วไป
ฟังก์ชั่น Function -...
Transcript of ฟังก์ชั่น Function -...
![Page 1: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/1.jpg)
อ.พิศษิฐ์ นาคใจ
ฟังก์ชั่นFunction
![Page 2: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/2.jpg)
Function
• ฟังก์ชัน คือ ชดุของการท างาน ที่ถูกเขียนขึ้นให้โปรแกรมเมอร์สามารถเรียกใช้ได้โดยง่าย เป็นการเขียนค าสั่งรวมกันไว้เป็นกลุ่มของค าสั่งเพื่อท างานให้ส าเร็จ
ฟังก์ชัน คือ ชดุของการท างาน
ฟังก์ชัน สามารถถูกเรียกใช้งานได้
![Page 3: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/3.jpg)
Function
• ปัญหาที่เกิดจากการพัฒนาโปรแกรมที่ซับซ้อนโปรแกรมเมอร์ไม่สามารถทราบขั้นตอนการท างานของคอมพิวเตอร์ทั้งหมดได้ เช่น
ขั้นตอนการน าข้อความไปปรากฏบนหน้าจอ
โปรแกรมมีการท างานที่ซับซ้อน และการท างานซับซ้อน มีการค านวณทางคณิตศาสตร์ เช่น การหาค่า SIN การหาผลลัพธ์ทางวิทยาศาสตร์ การวิเคราะหข์้อมูลขนาดใหญ่เป็นต้น
![Page 4: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/4.jpg)
• วิธีการแก้ไขท าการให้โปรแกรมเมอร์ที่มีความรู้เกี่ยวกับขั้นตอนการท างานเหล่านั้น
เขียนชุดค าสั่งของกระบวนการต่างๆ ขึ้นมา แล้วแจกจ่ายให้โปรแกรมเมอร์อื่นๆ ได้ใช้งาน
โปรแกรมเมอรท์ี่ต้องการใช้งาน กระบวนการเหล่านั้น สามารถเรียกใช้ฟังก์ชั่นโดยทราบเพียงวธิีการใช้งาน และ ผลลัพธท์ี่เกิดขึ้นหลังจากเรียกใช้งานฟังก์ชันเท่านั้น
เช่น โปรแกรมเมอรท์ี่ไม่ทราบวา่ท าอย่างไรตวัอักษรจึงจะปรากฏบนหน้าจอ สามารถใช้ค าสัง่ printf ได้เลย โดยโปรแกรมเมอร์จะทราบเพียงแค่ การเรียกprintf จะท าให้มตีัวอักษรปรากฏบนหน้าจอได้เท่านั้น
![Page 5: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/5.jpg)
• ข้อดีของฟังก์ชันท าให้โปรแกรมเมอร์สามารถพัฒนาโปรแกรมได้โดยง่าย โดยโปรแกรมเมอร์ไม่
จ าเป็นต้องทราบว่าการท างานของฟังก์ชันท างานอย่างไรทราบเพียงผลลัพธ์ของการท างานเท่านั้น
โปรแกรมเมอรส์ามารถเขียนโปรแกรมให้มีการท างานที่ซับซ้อนได้ โดยไม่จ าเป็นต้องเขียนโปรแกรมส่วนที่ซับซ้อนนั้นหลายๆ ครั้ง
โปรแกรมเมอรส์ามารถออกแบบฟังก์ชันได้ตามความต้องการของโปรแกรมเมอร์
![Page 6: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/6.jpg)
ประเภทของ ฟงัก์ชั่น
ฟังก์ชันแบ่งออกเป็น 2 ประเภท
1. ฟังก์ชันไลบรารมีาตรฐาน (Standard Library function)
2. ฟังก์ชันที่สรา้งขึ้นเอง (User Defined function)
![Page 7: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/7.jpg)
ฟังก์ชันไลบรารีมาตรฐาน
ฟังก์ชันไลบรารมีาตรฐาน (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 เสมอ ดังตัวอยา่าง
![Page 8: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/8.jpg)
ทดลองเขยีน Function sin()
![Page 9: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/9.jpg)
ฟังก์ชันไลบรารีมาตรฐาน
การเรียกใช้ Standard Library Function มีขั้นตอนดังนี้
1. ทราบว่าโปรแกรมที่เขียนต้องการการท างานอะไร
2. การท างานดังกล่าวคือฟังก์ชันช่ืออะไร
3. ทราบ directive ที่เป็นสารบัญของค าสั่ง
4. Include directive นั้นๆ
5. เรียกใช้ฟังกช์ันในโปรแกรม
![Page 10: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/10.jpg)
ฟังก์ชันไลบรารีมาตรฐาน
ฟังก์ชันการค านวณทางคณติศาสตร์
– ไฟล์ header => math.h
ฟังก์ชันส าหรบัอักขระและข้อความ
– ไฟล์ header => string.h
ctype.h
![Page 11: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/11.jpg)
#include<math.h>
sin(var)cos(var);tan(var);sqrt(var);pow(var1,var2);log(var);log10(var);exp(var);fabs(var);
![Page 12: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/12.jpg)
ตัวอย่างโปรแกรม
#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;}
![Page 13: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/13.jpg)
include<string.h>
strcpy(str1, str2);strcat(dest1, src2);strcmp(dest1, src2);strcmpi(str1, str2);strlen(str);
#include<ctype.h>
tolower(ch);toupper(ch);
![Page 14: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/14.jpg)
ฟังก์ชั่นที่ผู้ใช้งานสร้างขึ้นเอง
เนื่องจาก Standard Library Function ทั้งหมด เป็นฟันก์ชันมาตรฐานที่มีเฉพาะการท างานพื้นฐานต่างๆ เท่านั้น
หากต้องการฟังก์ชันที่มีการท างานเฉพาะอย่าง โปรแกรมเมอร์ต้องเขียนฟังก์ชันขึ้นมาเอง
![Page 15: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/15.jpg)
• ข้อก าหนดพื้นฐานของ User-defined Function
ต้องมีการประกาศ function prototype ที่ต้นโปรแกรมเสมอ จึงจะเรียกใช้งาน function นั้นๆ ได้ (เป็นการบอก Compiler ว่าเป็นค าสั่งไมใ่ช่ Error)
ต้องมีการเขียนฟังก์ชันตามโครงสร้างที่ได้ประกาศไว้ในfunction prototype เท่านั้น
![Page 16: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/16.jpg)
โครสร้างการเขียน 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);
}
![Page 17: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/17.jpg)
รูปแบบโครสร้างของฟังกชัน
การประกาศใช้งานฟังชันเป็นดังนี้
type คือ ชนิดข้อมูลที่ Function นั้นๆ ส่งกลับ หากไมม่ีการส่งกลับก าหนดค่านี้เป็น Void
function_name คือ ชื่อของFunction
type-n คือ ชนิดของข้อมูลที่จะส่งใหฟ้ังก์ชัน
type function_name(type-1, type-2,….,type-n)
![Page 18: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/18.jpg)
รูปแบบของ Function ที่สร้างขึ้นเอง
• รูปแบบของ Function ที่สร้างขึ้นเองมีการส่งและรับค่า หลากหลายรูปแบบดังนี้
• 1. ฟังก์ชันที่ไมม่ีการรับส่งค่า
• 2. ฟังก์ชันทีม่กีารรับค่าแต่ไม่ส่งค่ากลับ
• 3. ฟังก์ชันทีม่ีการรับค่า และมีการส่งค่ากลับ
• 4. ฟังก์ชันที่ไม่มีการรับค่าแต่มีการส่งค่ากลับ
![Page 19: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/19.jpg)
ฟังก์ชันที่ไม่มีการรับส่งคา่
• เป็นฟังก์ชันที่ ไม่ม ีการรับค่าและส่งค่าออกจาก 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;}
![Page 20: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/20.jpg)
ตัวอย่างโปรแกรม
![Page 21: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/21.jpg)
ฟังก์ชันที่มีการรับคา่แต่ไม่ส่งค่ากลับ
• เป็นฟังก์ชันที่มีการรับค่าเข้ามาในฟังก์ชัน แต่ไมม่ีการส่งค่ากลับออกไปจากฟังก์ชัน
#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;}
![Page 22: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/22.jpg)
ตัวอย่างโปรแกรม
![Page 23: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/23.jpg)
• เป็นฟังก์ชันที่มีการรับค่าเข้ามาในฟังก์ชัน และมีการส่งค่ากลับออกไปจากฟังก์ชัน
#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);}
![Page 24: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/24.jpg)
ตัวอย่างโปรแกรม
![Page 25: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/25.jpg)
• เป็นฟังก์ชันที่ไมม่ีการรับค่าเข้ามาในฟังก์ชัน แต่ไมม่ีการส่งค่ากลับออกไปจากฟังก์ชัน
#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);}
![Page 26: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/26.jpg)
ตัวอย่างโปรแกรม
![Page 27: ฟังก์ชั่น Function - URUmathcom.uru.ac.th/~beebrain/Slide/4121103A/Function.pdf · 2011-09-25 · ประเภทของ ฟังก์ชั่น ฟังก์ชันแบ่งออกเป็น](https://reader033.fdocument.pub/reader033/viewer/2022041820/5e5daa041551af2c8f41627d/html5/thumbnails/27.jpg)
สรุป
Function คือชุดของค าสั่ง สร้างเพื่อลดความซับซ้อนในการเขียนโปรแกรม
Function แบ่งเป็น Function มาตรฐาน และ Function ที่สร้างเอง
Function สร้างสร้างเองมี 4 แบบ
1. ฟังก์ชันที่ไมม่ีการรับส่งค่า
2. ฟังก์ชันทีม่ีการรับค่าแต่ไม่ส่งค่ากลับ
3. ฟังก์ชันทีม่ีการรับค่า และมีการส่งค่ากลับ
4. ฟังก์ชันที่ไม่มีการรับค่าแต่มีการส่งค่ากลับ