ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ฟังก์ชัน (Function)
2
Outline รูปแบบในการกำหนดฟังก์ชัน ตัวอย่างการกำหนดฟังก์ชันในภาษาซี
รูปแบบในการเรียกใช้ฟังก์ชัน ขอบเขตของตัวแปร โปรโตไทป์ (prototype) การเวียนเกิด (Recursion)
3
รูปแบบในการกำหนดฟังก์ชัน
[type] function-name ([formal parameters]) 1. statement 1 2. statement 2 … [return function-variable] n. end type : int , float , char , user-defined formal parameters : datatype parameter-name
4
ตัวอย่างการกำหนดฟังก์ชันในภาษาซี
กรณีที่ 1 ไม่มีพารามิเตอร์ และไม่มีการส่งค่ากลับ void prn () { int i; for(i=1;i<=15;i++) printf(“*”); printf(“\n”); }
5
ตัวอย่างการกำหนดฟังก์ชันในภาษาซี
กรณีที่ 2. ไม่มีพารามิเตอร์ แต่มีการส่งค่ากลับ int sum () { int i,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) s += i; return s; }
6
ตัวอย่างการกำหนดฟังก์ชันในภาษาซี
กรณีที่ 3. มีพารามิเตอร์ และมีการส่งค่ากลับ int fac (int m) { int i,ans=1; for(i=1;i<=m;i++) ans *= i; return ans; }
7
ตัวอย่างการกำหนดฟังก์ชันในภาษาซี
กรณีที่ 4 มีพารามิเตอร์ แต่ไม่มีการส่งค่ากลับ void func (int x , float y) { printf(“answer = %f\n”, y / (x * x)); }
8
รูปแบบในการเรียกใช้ฟังก์ชัน
มีการส่งค่ากลับ ans sum() ไม่มีพารามิเตอร์ ans fac(int m) มีพารามิเตอร์ var function-name ([arguments])
9
รูปแบบในการเรียกใช้ฟังก์ชัน
ไม่มีการส่งค่ากลับ prn () ไม่มีพารามิเตอร์ func (int x , float y) มีพารามิเตอร์ function-name ( [arguments] )
10
ตัวอย่างการกำหนดและการเรียกใช้ฟังก์ชัน
float area (float a , float b) { return 1.0/2 * a * b; } void func (int x , float y) { printf(“answer = %f\n”, y / (x * x)); void main() { int a; float triangle, b; triangle = area(3.5,4.0); scanf(“%d %f”,&a,&b); func(a,b); การกำหนดฟังก์ชัน การเรียกใช้ฟังก์ชัน (มีการส่งค่ากลับ) การเรียกใช้ฟังก์ชัน (ไม่มีการส่งค่ากลับ)
11
ขอบเขตของตัวแปร Global Local Static Extern
12
ขอบเขตของตัวแปร: Global & Local
int i , n; int sumi2 () { int j=0, i, n; …. } void func (int a , int b , int c) { int i, n; float j; …. void main() { int ans, j; ….. Global variables ทุกฟังก์ชันมองเห็นและสามารถเรียกใช้ได้ Local variables ใช้งานได้ภายในฟังก์ชันเท่านั้น ฟังก์ชันอื่น ๆ มองไม่เห็น ถูกประกาศไว้ในฟังก์ชันใด ก็ถูกเรียกใช้ได้เฉพาะในฟังก์ชันนั้น
13
ขอบเขตของตัวแปร: Static
รูปแบบการประกาศตัวแปร: static data-definition; Ex. static int i; ถ้ากำหนดใช้ในฟังก์ชัน จะทำให้ค่าของตัวแปรยังคงถูกเก็บไว้หลังจากทำงานในฟังก์ชันเสร็จสิ้นและเมื่อเรียกใช้ฟังก์ชันอีกครั้ง ค่าดังกล่าวจะถูกนำมาใช้ต่อไปได้เลย
14
ขอบเขตของตัวแปร: Extern
รูปแบบ extern data-definition; extern function-prototype; เป็นการเรียกใช้ตัวแปรหรือฟังก์ชันที่กำหนดไว้นอกโปรแกรม Ex. extern int c; extern int fac (int);
15
ตัวอย่างโปรแกรมใช้ตัวแปรแบบ extern
#include<stdio.h> extern int c; extern int fac(int); void main() { b = fac(5); printf("5! = %d\n",b); } #include <stdio.h> int c; int fac(int m) { int i, f=1; for (i=1;i<=m;i++) f *= i; return f; }
16
โปรโตไทป์ (Prototype)
Prototype declaration เป็นการประกาศรูปแบบฟังก์ชันที่มีใช้ในโปรแกรมซึ่งเขียนต่อจากส่วนโปรแกรมหลัก ทั้งนี้เพื่อให้ตัวแปลภาษารู้จักก่อนมีการเรียกใช้งานฟังก์ชันนั้น
17
ตัวอย่างการเขียนโปรโตไทป์
float area (float , float); void func (int , float); void main() { int a; float triangle, b; triangle = area(3.5,4.0); scanf(“%d %f”,&a,&b); func(a,b); } float area (float a , float b) { return 1.0/2 * a * b; void func (int x , float y) { printf(“answer = %f\n”, y / (x * x)); การเขียนโปรโตไทป์ เขียนฟังก์ชันไว้หลัง main จึงต้องมีการประกาศโปรโตไทป์
18
การเวียนเกิด (Recursion)
คือการเรียกตัวเองซ้ำของฟังก์ชัน โดยต้องมีส่วนที่ทำการเรียกตัวฟังก์ชันเอง และจุดที่ทำให้จบการเรียกซ้ำตัวเอง เช่น n! (n factorial) 1! = 1 2! = 2 x 1 = 2 x 1! 3! = 3 x 2 x 1 = 3 x 2! … n! = n x (n-1) x (n-2) x … x 2 x 1 = n x (n-1)!
19
การเวียนเกิด (Recursion)
Algorithm n factorial Input: a number of n Output: n! Read n n! fac(n) Write n! fac(n) 1. if (n=1) then return 1 2. else return n * fac(n-1) ฟังก์ชัน fac() มีการเรียกใช้ฟังก์ชัน fac() (เรียกใช้ตัวมันเอง)
20
การเวียนเกิด (Recursion)
Algorithm power n Input: ค่า n Output: Xn Read n power(n) 1. if (n=0) then return 1 2. else write x * power(n-1) ฟังก์ชัน power() มีการเรียกใช้ฟังก์ชัน power() (เรียกใช้ตัวมันเอง)
21
Class Exercise เขียนขั้นตอนวิธีด้วยรหัสลำลองเพื่อคำนวณหาค่าผลรวมของ
โดยมีการเรียกใช้ฟังก์ชัน xn
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.