ฟังก์ชั่น function.

Slides:



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

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Computer Language.
บทที่ 2 รหัสควบคุมและการคำนวณ
INTRODUCTION TO C LANGUAGE
Introduction to C Introduction to C.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
Introduction to C Programming
ครั้งที่ 8 Function.
Department of Computer Business
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Function.
องค์ประกอบของโปรแกรม
Week 6 ประกาศค่าตัวแปร.
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
โดย อาจารย์ณัฐพงศ์ พยัฆคิน
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
ฟังก์ชัน (Function).
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
บทที่ 13 Pre-processor directive & macro Kairoek choeychuen
C Programming Lecture no. 6: Function.
PROCEDURE <<โปรแกรมย่อย>>
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
ข้อมูลพื้นฐานและตัวดำเนินการ
บทที่ ไลบรารีฟังก์ชัน
ตัวอย่างโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยม
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
Lecture 7 ฟังก์ชัน To do: Hand back assignments
การเขียนโปรแกรมภาษาซี
ตัวแปรกับชนิดของข้อมูล
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
C language W.lilakiatsakun.
ประวัติความเป็นมาภาษาซี
การสร้างและใช้งานฟังก์ชั่น
ตัวแปรกับชนิดของข้อมูล
ทบทวน กันก่อน .....กระบวนการแปลโปรแกรม
Week 2 Variables.
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Computer Programming for Engineers
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
Recursion การเรียกซ้ำ
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
โครงสร้างภาษาซี #include <stdio.h> void main() {
หลักการสร้างสรรค์ชุดคำสั่ง ๓
Output of C.
Java Programming Java Structure and Datatype,Variable
โครงสร้าง ภาษาซี.
บทที่ 9 การสร้างและใช้ งานฟังก์ชั่น C Programming C-Programming.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
บทที่ 2 โครงสร้างของภาษา C.
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
บทที่ 10 การจัดการไฟล์ อาจารย์ศศลักษณ์ ทองขาว สงวนลิขสิทธิ์ © 2547 มหาวิทยาลัยราช ภัฏสงขลา C Programming C-Programming.
Computer Programming I โดย อ.วิมลศรี เกตุโสภณ สาขาวิชาระบบสารสนเทศ
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
ใบสำเนางานนำเสนอ:

ฟังก์ชั่น function

ฟังก์ชั่น เปรียบเสมือนการคำนวณทางคณิตศาสตร์ คำสั่งชุดหนึ่งที่ทำงานเหมือนโปรแกรมหนึ่ง มีชื่อเรียก ส่วนอื่นๆ ของโปรแกรม สามารถเรียกใช้คำสั่งชุดนี้ได้

ฟังก์ชั่นในภาษาซี ภาษาซีเป็นการเขียนโปรแกรมแบบฟังชั่น แบ่งการทำงานของโปรแกรมเป็นส่วนๆ ประกอบด้วยฟังก์ชั่นหลัก คือ main() ซึ่งฟังก์ชั่นแรกที่เริ่มทำงาน Main program Function1 Function2 Functionn . . .

ประเภทของฟังก์ชั่น ภาษาซีแบ่งฟังก์ชั่นเป็น 2 ประเภท ฟังก์ชั่นมาตรฐาน (Standard Libraries Function) ฟังก์ชันที่มีอยู่แล้วในภาษาซี โดยกำหนดไว้ในไลบรารี ฟังก์ชั่นที่ผู้ใช้กำหนด (User-Define Function) ฟังก์ชันที่ผู้ใช้เขียนขึ้นเองใหม่เหมือนกับสร้างฟังก์ชั่นเพิ่มเติมจากที่มีอยู่แล้ว

ฟังก์ชั่นมาตรฐาน เรียกใช้โดยการ include ไฟล์นามสกุล .h ที่เก็บฟังก์ชั่น นั้นไว้ เช่น ถ้าต้องการใช้ฟังก์ชั่น printf หรือ scanf จะต้อง include ไฟล์ชื่อ stdio.h มาก่อน ถ้าเราต้องการใช้ฟังก์ชันทางคณิตศาสตร์ เช่น sqrt หรือ pow ต้อง include ไฟล์ชื่อ math.h คำแนะนำ: ลองเปิดไฟล์ .h ใน c:\tc\include

ฟังก์ชั่นมาตรฐาน #include<stdio.h> Square root 4 = 2.000000 #include<math.h> void main() { printf(“square root 4 =”); printf(“%f\n”, sqrt(4)); printf(“5 power 3 =”); printf(“%f”, pow(5,3)); } Square root 4 = 2.000000 5 power 3 = 125.000000

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

ฟังก์ชั่นที่ผู้ใช้กำหนด #include<stdio.h> void showmenu() { printf(“==== MENU ====\n\n”); printf(“a) Say Hello\n”); printf(“b) Say Good Bye\n”); printf(“Select a or b : \n”); } void main() printf(“Begin\n”); showmenu(); printf(“END\n”); Begin ==== MENU ==== a) Say Hello b) Say Good Bye Select a or b : END

รูปแบบของฟังก์ชั่นกำหนดเอง ประกอบด้วย 2 ส่วน ส่วนหัว (Function header) type function_name (type arg1,type arg2,…) ส่วนตัว (Function body) { variable declaration; statements; [ return ] }

รูปแบบของฟังก์ชั่นกำหนดเอง Return = ส่งค่ากลับ Parameters = รับค่าเข้า type function_name (type arg1,type arg2,…) { [ variable declaration; ] statements; [ return value; ] } ส่งค่ากลับ

ประเภทของฟังก์ชั่นกำหนดเอง แบบที่ 1 ไม่มีการรับค่าเข้า ไม่มีการส่งค่ากลับ แบบที่ 2 ไม่มีการรับค่าเข้า มีการส่งค่ากลับ แบบที่ 3 มีการรับค่าเข้า ไม่มีการส่งค่ากลับ แบบที่ 4 มีการรับค่าเข้า มีการส่งค่ากลับ

แบบที่ 1: ไม่มีการรับค่าเข้า ไม่มีการส่งค่ากลับ void function_name (void) { statements; }

แบบที่ 2: ไม่มีการรับค่าเข้า มีการส่งค่ากลับ type function_name (void) { statements; return value; }

แบบที่ 3: มีการรับค่าเข้า ไม่มีการส่งค่ากลับ void function_name (type arg1, type arg2,… ) { statements; }

แบบที่ 4: มีการรับค่าเข้า มีการส่งค่ากลับ type function_name (type arg1, type arg2,… ) { statements; return value; }

การประกาศฟังก์ชั่น (function prototype) ฟังก์ชั่นที่กำหนดเอง ต้องมีการ ประกาศฟังก์ชั่นให้รู้จักก่อน จึง สามารถเรียกใช้งานได้ ทำได้โดย การ copy บรรทัดหัวฟังก์ชัน ขึ้นมาเขียนเอาไว้เหนือ main (อย่าลืมใส่เครื่องหมาย ; ด้วย) * ถ้าสร้างฟังก์ชั่นก่อน main ไม่จำเป็นต้องประกาศ

การประกาศฟังก์ชั่น (function prototype) สำหรับฟังก์ชั่นที่มีการรับค่าเข้า ไม่จำเป็นต้องระบุชื่อargument ก็ได้ เช่น int test_function(int y); หรือ int test_function(int); void test_function(int y); หรือ void test_function(int);

ขอบเขตตัวแปร ตัวแปรในภาษาซีแบ่งเป็น 2 ชนิดตามขอบเขตการมองเห็น Global variable นำไปใช้ได้ในทุกๆ ฟังก์ชันของโปรแกรมนั้น โดยต้องประกาศตัวแปรไว้เหนือฟังก์ชัน main() Local variable ใช้ได้เฉพาะในฟังก์ชันที่ประกาศตัวแปรนี้เท่านั้น โดยการประกาศจะอยู่ภายในของแต่ละฟังก์ชัน

Global variable

Local variable

#include <stdio.h> int function_add (int x, int y) { printf("x = %d , y = %d \n",x,y); return x+y; } main () int value1 =1, value2 = 2; printf("result : x + y = %d\n“, function_add(value1,value2) );

#include <stdio.h> void oddeven (void); void negpos(void); int num; void main (void) { printf("enter number :"); scanf("%d",&num); oddeven(); negpos(); getchar(); } void oddeven (void) { if (num % 2 ) printf("Number is odd\n"); else printf("Number is even\n"); } void negpos( void) if (num < 0) printf("number is negative\n"); printf("number is positiven\");

#include <stdio.h> #define PI 3.14159 float area (float); void main (void) { float radius; printf("Enter radius of sphere:"); scanf("%f",&radius); printf("area of sphere is %.2f",area(radius)); } float area (float rad) return 4*PI*rad*rad;

#include <stdio.h> float power3(float); void main (void) { int i; for (i=1; i <=10; i++) printf(“%d\t%.0f\n", i, power3(i) ); } float power3(float x) return x* x *x; 1 8 27 64 125 216 343 512 729 1000

สร้างฟังก์ชั่นทำไม? Input and prepare data Display data in graph #include<stdio.h> main() { int i; int scores[ARRAYMAX]; float percents[ARRAYMAX]; int g_driver, g_mode; int i, left, top, wide, bottom, deep; for (i = 0; i < ARRAYMAX; i++) printf("\nEnter score between 0 and %d: ", MAX); scanf("%d", &scores[i]); } percents[i] = ((float) scores[i]) / MAX; printf("\n\n\n\tSCORE\tPERCENT"); printf("\n%d. \t%d\t%3.0f", i + 1, scores[i], (percents[i] * 100)); getch(); detectgraph(&g_driver, &g_mode); initgraph(&g_driver, &g_mode, "..\\bgi"); wide = (int)((getmaxx()) / ((ARRAYMAX * 2 ) + 1)); bottom = getmaxy() - 20; deep = (int) (wide / 4); left = wide; top = (bottom) - ((int)(p[i] * 300)); bar3d(left, top, (left + wide), bottom, deep, 1); left += (wide * 2); Input and prepare data Display data in graph Draw graph

สร้างฟังก์ชั่นทำไม? แบ่งโค้ดออกเป็น 3 ฟังก์ชั่น ฟังก์ชั่น input_data() ฟังก์ชั่น display_data() ฟังก์ชั่น draw_graph() Main program Input data Display data Draw graph

สร้างฟังก์ชั่นทำไม? Main function Input and prepare data #include<stdio.h> void input_data(float); void display_data(float); void make_graph(float); main() { Int I, scores[ARRAYMAX]; float percents[ARRAYMAX]; input_data(percents); display_data(percents); make_graph(percents); } void input_data(float p[]) …. void display_data(float p[]) void make_graph(float p[]) Main function Input and prepare data Display data in graph Draw graph

สร้างฟังก์ชั่นทำไม? Main function Input and prepare data #include<stdio.h> void input_data(float); void display_data(float); void make_graph(float); main() { Int I, scores[ARRAYMAX]; float percents[ARRAYMAX]; input_data(percents); display_data(percents); make_graph(percents); } void input_data(float p[]) …. void display_data(float p[]) void make_graph(float p[]) Main function Input and prepare data Display data in graph Draw graph

โจทย์ 1 โจทย์ 2 เขียนโปรแกรมในการคำนวณหาพื้นที่ สามเหลี่ยม สี่เหลี่ยมและวงกลม โดยให้สร้างเป็นฟังก์ชั่นดังนี้ showmenu(); tri_area(float, float); rec_area(float, float); cir_area(float); เขียนฟังก์ชั่นและเรียกใช้ดังนี้ Min หาค่าต่ำสุด โดยรับค่าเข้า 3 ค่าเป็นจำนวนเต็ม และคืนค่าต่ำสุด Max หาค่าสุดสุด โดยรับค่าเข้า 3 ค่าเป็นจำนวนเต็ม และคืนค่าต่ำสุด ตัวอย่างการเรียกใช้ a = min(34,23,42); b = max(3,2,4);

โจทย์ 1 โจทย์ 2 เขียนฟังก์ชั่นในการพิมพ์กราฟแนวนอน โดยสร้างฟังก์ชั่นดังนี้ ฟังก์ชั่นชื่อ star ไม่มีการส่งค่ากลับ มีการรับค่าเข้าเป็นเลขจำนวนเต็ม ทำการพิมพ์เครื่องหมาย * เท่ากับจำนวนเลขที่รับค่าเข้ามา แล้วขึ้นบรรทัดใหม่ กำหนดตัวแปรชนิด array ในการ เก็บอุณหภูมิ 5 วัน รับค่าอุณหภูมิเข้าจากผู้ใช้ พิมพ์อุณหภูมิทั้ง 5 วัน และพิมพ์เครื่องหมาย * เท่ากับค่าอุณหภูมิแต่ละวัน (โดยเรียกใช้ฟังก์ชั่น star) Enter temp day 1: 9 Enter temp day 2: 11 Enter temp day 3: 8 Enter temp day 4: 5 Enter temp day 5: 15 Day 1: 9 ********* Day 2: 11 *********** Day 3: 8 ******** Day 4: 5 ***** Day 5: 15 *************** main() { star(9); star(2); } ********* ** โจทย์ 1 โจทย์ 2

References คู่มือการเขียนโปรแกรมภาษาซี โดย รศ. ธีรวัฒน์ ประกอบผล คู่มือการเขียนโปรแกรมภาษาซี โดย รศ. ธีรวัฒน์ ประกอบผล  เอกสารประกอบการสอนวิชา โครงสร้างข้อมูลและอัลกอริทึม โดย อ.วิญญู นิรนาทล้ำพงศ์ http://www.kmitl.ac.th/~kpteeraw/c_pro.htm