ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน
2
ฟังก์ชัน (function) ฟังก์ชันคือการแยกชุดคำสั่งที่มีลักษณะจุดมุ่งหมายในการทำงานอย่างใดอย่างหนึ่งออกมาเขียนเป็นโปรแกรมย่อย ประโยชน์ของฟังก์ชัน ทำให้โปรแกรมหลักมีการแบ่งงานที่ชัดเจนในแต่ละส่วน จึงทำให้โค้ดของโปรแกรมอย่างเข้าใจได้ง่าย สามารถนำส่วนโค้ดเดิมกลับมาใช้กับส่วนงานใหม่ได้ เพิ่มความยืดหยุ่นในการทำงาน
3
ฟังก์ชันหลัก ปรกติในโปรแกรมภาษาซีจะต้องมีฟังก์ชันอย่างน้อยหนึ่งฟังก์ชันคือฟังก์ชันหลักเพื่อเป็นจุดตั้งต้นในการทำงาน #include <stdio.h> main() { printf(“This is the main function.\n”); }
4
ชนิดของฟังก์ชัน ฟังก์ชันที่ผู้ใช้เขียนขึ้นเอง
เป็นฟังก์ชันที่ผู้เขียนโปรแกรมต้องการให้มีการทำงานเฉพาะกิจบางอย่างที่ไม่มีอยู่ในฟังก์ชันมาตรฐาน ซึ่งในภาษาซีมีกลไกที่ยอมให้มีการเขียนฟังก์ชันขึ้นใช้งานเองในโปรแกรม ฟังก์ชันมาตรฐาน เป็นฟังก์ชันที่มีมาพร้อมตัวแปรภาษาซึ่งอาจจะเรียกว่า library ก็ได้
5
การนิยามฟังก์ชัน การนิยามฟังก์ชัน ควรนิยามไว้ก่อนการเรียกใช้ฟังก์ชัน
<type> <func-name>(<parameter-list>) { <variable-definition>; <statement-list>; } <type> ชนิดข้อมูลที่ส่งค่ากลับ ถ้าไม่มีการส่งค่ากลับให้ใส่ void <func-name> ชื่อฟังก์ชันตั้งตามหลัก identifier <parameter-list> ค่าข้อมูลที่รับส่งระหว่างฟังก์ชันและตัวเรียกซึ่งอาจจะไม่มีก็ได้
6
ตัวอย่างฟังก์ชันแบบไม่คืนค่าและไม่มีพารามิเตอร์
ตำแหน่งที่นิยามฟังก์ชันจะต้องอยู่ก่อนการเรียกใช้ฟังก์ชัน #include <stdio.h> void greeting(){ printf(“Sawasdee\n”); } void main(){ greeting(); function definition function main คำสั่งเรียกใช้ฟังก์ชัน
7
ตัวอย่างฟังก์ชันแบบคืนค่าและไม่มีพารามิเตอร์
ฟังก์ชัน pi ไม่มีข้อมูลในวงเล็บ มีการคืนค่าเป็นชนิดข้อมูล float ภายในฟังก์ชันต้องมีคำสั่ง return #include <stdio.h> float pi(){ return 3.14; } void main(){ float r = 7; float a = 2.0*pi()*r; printf(“area is %f”,a); เรียกฟังก์ชัน
8
ตัวอย่างฟังก์ชันแบบไม่คืนค่าและมีพารามิเตอร์
ภายในวงเล็บจะมีพารามิเตอร์ เป็นการประกาศว่าต้องการนำข้อมูลชนิดและชื่อเข้ามาดำเนินการ การเรียกใช้จะต้องมีการใส่ค่าพารามิเตอร์ให้ถูกต้องทั้งชนิดและจำนวน #include <stdio.h> void line(int n){ for(i=0;i<n;i++) printf(“-”); printf(“\n”); } void main(){ int a = 10; line(5); line(a); เรียกฟังก์ชัน
9
ตัวอย่างฟังก์ชันแบบคืนค่าและมีพารามิเตอร์
ภายในวงเล็บจะมีพารามิเตอร์ เป็นการประกาศว่าต้องการนำข้อมูลชนิดและชื่อเข้ามาดำเนินการ การเรียกใช้จะต้องมีการใส่ค่าพารามิเตอร์ให้ถูกต้องทั้งชนิดและจำนวน #include <stdio.h> int factorial(int n){ for(i=s=1;i<n;i++) s += i; return s; } void main(){ int a = 10; printf(“%d\n”,factorial(5)); b = 2*factorial(a); Printf(“%d\n”,b);
10
โปรโตไทป์ ปรกติการนิยามฟังก์ชันจะต้องอยู่ก่อนถูกเรียกใช้ แต่เราสามารถกำหนดนิยามฟังก์ชันเพื่อให้ทุกฟังก์ชันในโปรแกรมรู้จักก่อนได้โดยใช้ “โปรโตไทป์” รูปแบบการเขียนโปรโตไทป์ return-type function-name(parameter-list); void greeting(); void line(int n); float pi(); int factorial(int);
11
ขอบเขตของตัวแปร ตัวแปรแบบโกลบอล
global variable เป็นตัวแปรที่สามารถถูกใช้งานได้ตลอดทั้งโปรแกรม ในทุกๆ ฟังก์ชัน ตัวแปรแบบโลคอล local variable เป็นตัวแปรที่มีขอบเขตการใช้งานได้ภายในฟังก์ชันที่ตัวแปรนี้ถูกนิยามเท่านั้น
12
ขอบเขตของตัวแปร ตัวแปร rad เป็นโกลบอล ตัวแปร a เป็นโลคอล
#include <stdio.h> int rad; void main(){ int a; rad = 7; a = 2*3.14*rad; printf(“a = %d\n”,a); } ตัวแปร rad เป็นโกลบอล ตัวแปร a เป็นโลคอล
13
ขอบเขตของตัวแปร #include <stdio.h> float db = 2.0; float calc(float x){ float r = x*db; return r; } void main(){ int a; db = 7.0; a = calc(1.2); printf(“a = %d\n”,a); ตัวแปร db เป็นตัวแปรที่สามารถถูกเรียกใช้ได้จากทุกฟังก์ชัน ตัวแปร r ถูกเรียกใช้ได้ในฟังก์ชัน calc เท่านั้น ตัวแปร a ถูกเรียกใช้ได้ในฟังก์ชัน main เท่านั้น
14
ฟังก์ชันมาตรฐาน เป็นฟังก์ชันสำเร็จรูปที่ผู้ผลิตตัวแปรภาษาซีได้สร้างไว้ให้ผู้เขียนโปรแกรมสามารถใช้งานได้เลย ซึ่งผู้ใช้ต้องทราบว่าตัวฟังก์ชันได้ถูกสร้างมาเป็นกลุ่ม ต้องรู้ว่าอยู่ที่ไฟล์ .h ใด แล้วทำการ #include มาใช้งานได้
15
ตัวอย่างไฟล์ header math.h เป็นกลุ่มฟังก์ชันใช้ในการคำนวณทางคณิตศาสตร์
string.h เป็นกลุ่มฟังก์ชันใช้ในการทำงานกับข้อความ ctype.h เป็นกลุ่มฟังก์ชันใช้ในการทำงานกับตัวอักษร conio.h เป็นกลุ่มฟังก์ชันใช้ในการทำงานกับหน้าจอ
16
งานที่ให้ทำ จงเขียนฟังก์ชันหาค่า y จากการคำนวณสมการต่อไปนี้
โดยให้เป็ฟังก์ชันที่มีการคืนค่าและรับพารามิเตอร์ด้วย
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.