ฟังก์ชัน (Function).

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Computer Language.
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
ครั้งที่ 8 Function.
Department of Computer Business
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
Control structure part II
Functional programming part II
Data Structures and Algorithms
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Function.
องค์ประกอบของโปรแกรม
คำสั่งเพื่อการกำหนดเงื่อนไข
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
Functions & Sub Program ฟังก์ชันและโปรแกรมย่อย
ข้อมูลพื้นฐานและตัวดำเนินการ
บทที่ ไลบรารีฟังก์ชัน
หน่วยที่ 1 พื้นฐานภาษา C
หน่วยที่ 14 การเขียนโปรแกรมย่อย
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
Lecture 7 ฟังก์ชัน To do: Hand back assignments
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
การเขียนโปรแกรมภาษาซี
Chapter 4 คำสั่งควบคุมทิศทาง
ตัวแปรกับชนิดของข้อมูล
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
C language W.lilakiatsakun.
Week 2 Variables.
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
การประมวลผลสายอักขระ
Computer Programming for Engineers
1 Special Operators Special Operators ตัวดำเนินการพิเศษ Increment and decrement operators Conditional Operator.
Call by reference.
Recursion การเรียกซ้ำ
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
Output of C.
การเขียนโปรแกรมคอมพิวเตอร์ 1
บทที่ 2 แนวคิดในการเขียนโปรแกรม. ขั้นตอนการ พัฒนาโปรแกรม ในการพัฒนาโปรแกรมมีขั้นตอนหลัก 5 ขั้นตอน ซึ่งไม่ว่าจะทำการพัฒนาโปรแกรม ครั้งใดจะต้องปฏิบัติตามขั้นตอนเหล่านี้
โครงสร้าง ภาษาซี.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
การเขียนโปรแกรม (ภาษาซี)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
บทที่ 5 โปรแกรมย่อย.
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
Computer Programming I โดย อ.วิมลศรี เกตุโสภณ สาขาวิชาระบบสารสนเทศ
Chapter 7 ฟังก์ชัน Function.
Chapter 5: Function.
ใบสำเนางานนำเสนอ:

ฟังก์ชัน (Function)

จุดประสงค์ เพื่อเข้าใจวิธีการแบ่งโปรแกรมออกเป็นส่วนย่อย โดยใช้หลักการของฟังก์ชัน เข้าใจกระบวนการในการส่งข้อมูลระหว่างฟังก์ชัน เข้าใจวิธีการในการเขียน ใช้ฟังก์ชัน

บทนำ โปรแกรมคอมพิวเตอร์ส่วนใหญ่ที่ใช้งานจริง มักจะเป็นโปรแกรมขนาดใหญ่ เกินกว่าที่จะเขียนรวมๆ กันในฟังก์ชันหลัก (main) เทคนิคที่เรียกว่า Divide and Conquer แบ่งปัญหาออกเป็นส่วนเล็กๆ หรือโมดูล (Module) เมื่อสร้างและทดสอบโปรแกรมย่อยๆนั้นแล้ว ก็ประกอบขึ้นมาเป็นโปรแกรมใหญ่ที่สมบูรณ์ในขั้นตอนสุดท้าย

Program Module ในภาษา C FUNCTIONS IN C C STANDARD LIBRARY PROGRAMMER DEFINED FUNCTION

Function Algorithm Complex Function 1. สั่งให้ทำงาน 2. ทำงาน BOSS (calling func) WORKER (called func) 3. รายงานผล Complex Function main worker1 worker3 worker2 worker4 worker5

การนิยามฟังก์ชัน #include <stdio.h> main() { int x; /* 1st sample program: calling standard library function */ #include <stdio.h> main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, x * x); printf(“\n”); return 0; }

/* 2nd sample program: A programmer-defined square function */ #include <stdio.h> int square(int);/* function prototype*/ main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, square(x)); printf(“\n”); return 0; } /* Function definition */ int square(int y) return y*y;

การนิยามฟังก์ชัน return-value-type function-name (parameter-list) { declarations statements }

return-type-value คือ ชนิดของข้อมูลที่ต้องการจะส่งค่ากลับ เช่น int หรือ float หากไม่มีการส่งค่ากลับให้ใช้ void function-name คือ ชื่อของฟังก์ชันที่จะถูกสร้างขึ้น parameter-list คือรายการตัวแปรพารามิเตอร์ ทั้งหมดที่ต้องการส่งผ่านไปยังฟังก์ชันเมื่อมีการเรียกใช้ ตามลำดับ declarations คือ ส่วนของการประกาศตัวแปรภายในฟังก์ชัน statements คือ ส่วนของคำสั่งที่กระทำในฟังก์ชันนั้น

ตัวอย่าง ตัวอย่างเช่น หากต้องการเขียนฟังก์ชันชื่อ foo ไม่มีการส่งผ่านค่ากลับ รับพารามิเตอร์ เป็น จำนวนเต็ม 2 ตัว โดยฟังก์ชันจะคำนวณหาผลบวกของจำนวนทั้งสอง แล้วแสดงผลออกมาทางจอภาพ void foo(int x, int y) { int ans; ans = x + y; printf(“%d”, ans); }

หรือถ้าต้องการเขียนฟังก์ชันชื่อ subtract ที่ส่งค่ากลับเป็นจำนวนเต็ม ซึ่งเป็นผลลบของพารามิเตอร์ ที่เป็นจำนวนเต็มตัวแรกลบด้วยจำนวนเต็มตัวที่สอง จะนิยามฟังก์ชันได้ว่า int subtract (int x, int y) { int ans; ans = x - y; return ans; }

Function แบบต่าง ๆ รูปแบบตัวอย่างที่ 1: ฟังก์ชันที่ไม่รับผ่านค่า และไม่ส่งผ่านค่ากลับ void main() { my_print(); } void my_print() printf(“Hello world”);

รูปแบบตัวอย่างที่ 2: ฟังก์ชันที่มีการรับผ่านค่า แต่ไม่ส่งผ่านค่ากลับ /* 2.1 */ void main() { my_print(2); } void my_print(int x) printf(“%d”, x); main my_print 1. ทำงานด้วย 2 ! 2. พิมพ์ 3. เสร็จแล้วครับ

void my_print(char ch, int x) while (x > 0) printf(“%c”, ch); x--; /* 2.2 */ void main() { my_print(‘a’, 5); } void my_print(char ch, int x) while (x > 0) printf(“%c”, ch); x--; my_print 1. ทำงานด้วย ‘a’ และ 5 ! 2. พิมพ์ 3. เสร็จแล้วครับ main

รูปแบบตัวอย่างที่ 3: ฟังก์ชันที่มีการรับผ่านค่า และส่งผ่านค่ากลับ void main() { char ch; ch = my_print(5); printf(“%c\n”, ch); }

printf(“Enter your character: ”); scanf(“%c”, &lch); while (x > 0) char my_print(int x) { char lch; printf(“Enter your character: ”); scanf(“%c”, &lch); while (x > 0) printf(“%c”, lch); x--; } printf(“\n”); return lch; main my_print 1. ทำงานด้วย 5 ! 2. รับค่าแล้วพิมพ์ 3. เสร็จแล้วครับ ผลคือ ch

รูปแบบตัวอย่างที่ 4: ฟังก์ชันที่ไม่รับผ่านค่า แต่มีการส่งผ่านค่ากลับ void main() { printf(“%d”,my_func()); } int my_func() int a; scanf(“%d”,&a); return a*5;

ต้นแบบของฟังก์ชัน (Function Prototype) ต้นแบบของฟังก์ชัน จะเป็นตัวระบุให้ตัวแปลภาษารู้ถึง ชนิดของข้อมูลที่จะส่งผ่านค่ากลับ จำนวนของพารามิเตอร์ ที่ฟังก์ชันคาดหวังว่าจะได้รับ ชนิดของพารามิเตอร์แต่ละตัว และลำดับของพารามิเตอร์เหล่านั้น

PROTOTYPE CALLING #include <stdio.h> int maximum(int, int, int); /* 3rd Sample program */ /* Finding the maximum of three integers */ #include <stdio.h> int maximum(int, int, int); main() { int a, b, c; printf(“Enter three integers: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c); return 0; } PROTOTYPE CALLING

DEFINITION int maximum(int x, int y, int z) { int max = x; /* Function maximum definition */ int maximum(int x, int y, int z) { int max = x; if(y > max) max = y; if(z > max) max = z; return max; } DEFINITION

PROTOTYPE DEFINITION CALLING #include<stdio.h> int square(int); /* 4th Sample Program */ #include<stdio.h> int square(int); void main( ) { int x=3; printf(“Square of %d = %d\n”, x, square(x)); } int square(int y) { return y * y; PROTOTYPE CALLING DEFINITION

PROTOTYPE DEFINITION CALLING #include<stdio.h> /* 5th Sample Program */ #include<stdio.h> int maximum(int, int, int); void main() { int a, b, c; printf(“Enter three integer: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c)); } int maximum(int x, int y, int z) int max = x; if(y > max) max = y; if(z > max) max = z; return max; PROTOTYPE CALLING DEFINITION

DEFINITION CALLING #include<stdio.h> /* 6th Sample Program */ #include<stdio.h> int maximum(int x, int y, int z) { int max = x; if(y > max) max = y; if(z > max) max = z; return max; } void main( ) int a, b, c; printf(“Enter three integer: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c)); DEFINITION CALLING

ตัวแปรภายใน และตัวแปรภายนอก ตัวแปรภายใน (Local Variable) คือ ตัวแปรที่ถูกสร้างขึ้นภายในฟังก์ชัน สามารถเรียกใช้งานได้เฉพาะภายในฟังก์ชันที่สร้างขึ้น และจะถูกทำลายลงเมื่อเสร็จสิ้นการทำงานของฟังก์ชันนั้นๆ ตัวแปรภายนอก (Global Variable) คือ ตัวแปรที่ถูกสร้างขึ้นภายนอกฟังก์ชัน สามารถเรียกใช้งานได้ในทุกฟังก์ชัน หรือทั้งโปรแกรม

Global Variable Local Variable Local Variable /* 7th Sample Program: Local vs Global Variable */ #include<stdio.h> int ans = 0; int inc_one(int); /* function prototype */ void main() { int a = 3; ans = inc_one(a); printf(“Answer is %d\n”, ans); } /* function definition: return x+1 */ int inc_one(int x) int ans; ans = x + 1; return ans; Global Variable Local Variable Local Variable

Global Variable Global Variable Global Variable /* 9th Sample Program: Global Variables */ #include<stdio.h> int x; void my_func(); void main() { x=3; printf(“Main: Before call function x=%d\n”, x); my_func(); //call my_func printf(“Main: After call function x=%d\n”, x); } void my_func() x=2; printf(“My_func: x=%d\n”, x); Global Variable Global Variable Global Variable

Global Variable Global Variable Local Variable /* 10th Sample Program: Local vs. Global Variables */ #include<stdio.h> int x; void my_func(); //prototype of my_func void main() { x=3; printf(“Main: Before call function x=%d\n”, x); my_func(); //call my_func printf(“Main: After call function x=%d\n”, x); } void my_func() x=2; printf(“My_func: x=%d\n”, x); Global Variable Global Variable Local Variable

เป็น argument ของฟังก์ชันอื่น ตัวอย่างการเรียกใช้ฟังก์ชันที่มีการส่งผ่านค่ากลับ void main() { int x, y; printf(“%d”,my_func()); x = my_func(); y = 45 * x + my_func(); } int my_func() int a; scanf(“%d”,&a); return a*5; เป็น argument ของฟังก์ชันอื่น มีตัวแปรมารับค่า Lป็นส่วนหนึ่งของนิพจน์

ตัวอย่างโปรแกรมที่ไม่ใช้ฟังก์ชัน #include <stdio.h> main() { int first, second, third; printf(“\n F(X) = 3X + 10 if X > 0\n”); printf(“\n F(X) = 10 if X = 0\n”); printf(“\n Enter 3 values\n”); scanf(“%d %d %d”, &first, &second, &third); if (first > 0) printf(“F(%d) is %d”,first,3*first+10); else printf(“F(%d) is 10”, first);

if (second > 0) printf(“F(%d) is %d”, second, 3*second + 10); else printf(“F(%d) is 10”, second); if (thrid > 0) printf(“F(%d) is %d”, third, 3*third + 10); printf(“F(%d) is 10”, third); }

ตัวอย่างโปรแกรมที่ใช้ฟังก์ชัน #include <stdio.h> void get_Fx(int x); main() { int first, second, third; printf(“\n F(X) = 3X + 10 if X > 0\n”); printf(“\n F(X) = 10 if X = 0\n”); printf(“\n Enter 3 values\n”); scanf(“%d %d %d”, &first, &second, &third);

get_Fx(first); get_Fx(second); get_Fx(third); } void get_Fx(int x) { if (x > 0) printf(“F(%d) is %d”, x, (3*x) + 10); else printf(“F(%d) is 10”, x);

Math routines Function Include File abs stdlib.h acos math.h asin math.h atan math.h atof stdlib.h atoi stdlib.h cos math.h cosh math.h

Function Include File exp math.h itoa stdlib.h log math.h log10 math.h sin math.h sinh math.h sqrt math.h tan math.h tanh math.h