เสรี ชิโนดม seree@buu.ac.th ฟังก์ชัน เสรี ชิโนดม seree@buu.ac.th.

Slides:



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

ครั้งที่ 9 Function(ต่อ).
โครงสร้างภาษาซี เบื้องต้น
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ข้อมูลชนิดอาร์เรย์ Array (บทที่ 5)
ครั้งที่ 8 Function.
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Functional programming part II
Data Type part.III.
Data Structures and Algorithms
Data Structures and Algorithms
Lecture 13: ฟังก์ชันเรียกตัวเอง
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Function.
Week 6 ประกาศค่าตัวแปร.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
ฟังก์ชัน (Function).
ตัวแปรชุด.
Seree Chinodom Recordset Object Seree Chinodom Computer Science, BUU.
C Programming Lecture no. 6: Function.
Functions & Sub Program ฟังก์ชันและโปรแกรมย่อย
PROCEDURE <<โปรแกรมย่อย>>
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (4) (Class & Object)
บทที่ 4 Method (2).
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ 14 การเขียนโปรแกรมย่อย
บทที่ 5 ฟังก์ชันของ PHP การประกาศฟังก์ชัน { Statement; }
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ฟังก์ชันรับข้อมูล ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
คำสั่งควบคุมการทำงานของ ActionScripts
การสร้างและใช้งานฟังก์ชั่น
Chapter 16 / Unit 77 : VB : Subprogram & Function Senior Cybernaut ศูนย์การศึกษาต่อเนื่องแห่ง จุฬาลงกรณ์มหาวิทยาลัย SL102017/04C /ISSUE2.
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Week 2 Variables.
เสรี ชิโนดม Array in PHP เสรี ชิโนดม
Computer Programming for Engineers
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
การใช้ PHP ติดต่อกับ Text File
เสรี ชิโนดม PHP กับ Form เสรี ชิโนดม
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
CHAPTER 4 Control Statements
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม PHP
หลักการเขียนโปรแกรม ( )
กองซ้อน ยอดกองซ้อน (stack).
PHP: [6] ฟังก์ชั่นเกี่ยวกับสตริง
PHP: [8] การสร้างฟังก์ชั่นขึ้นใช้เอง (User-defined functions)
บทที่ 9 พอยเตอร์. สื่อชุดนี้เป็นลิขสิทธิ์ของสำนักพิมพ์วังอักษรใช้เพื่อ การศึกษาเท่านั้น พอยเตอร์ (Pointer) พอยเตอร์คือต้นฉบับของชนิดข้อมูล เป็นชนิด ข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง.
การเขียนโปรแกรมคอมพิวเตอร์ 1
หลักการเขียนโปรแกรม ( )
Recursive Method.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การสร้างฟอร์ม(Form) ด้วยภาษา HTML
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
บทที่ 5 Function. Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Week 5 While and Do-While loop (Control Structure 2)
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
ใบสำเนางานนำเสนอ:

เสรี ชิโนดม seree@buu.ac.th ฟังก์ชัน เสรี ชิโนดม seree@buu.ac.th

นิยาม ฟังก์ชันคือส่วนของโปรแกรมที่ทำงานเสร็จสิ้นภายในตัวเอง มีลักษณะเหมือนกับโปรแกรมย่อยสับรูทีน (subroutine) ภาษา PHP มีฟังก์ชันที่เตรียมให้ใช้งาน 2 ชนิด คือ Library Function คือ ฟังก์ชันที่ภาษา PHP สร้างไว้เรียบร้อยแล้ว สามารถเรียกใช้ได้ทันที ฟังก์ชันที่ผู้ใช้โปรแกรมเขียนขึ้นเอง (User-defined functions) PHP Programming

ฟังก์ชันที่ผู้ใช้โปรแกรมเขียนขึ้นเอง (User-defined functions) การสร้างฟังก์ชันขึ้นใช้เอง มีรูปแบบดังนี้ function function_name ([parameterList]) { รายการชุดข้อความคำสั่ง   ... [return ค่าที่ต้องการส่งกลับ] } PHP Programming

ตัวอย่าง ไฟล์ func-1.php <html> <body> <font size=4 face ='arial'> <? function welcome() { print ("<H1 align = center> Welcome To Computer Science</H1>" ); } ?> <H1> This is a test</H1> welcome(); </body> </html> PHP Programming

การเรียกใช้ฟังก์ชัน การเรียกใช้ฟังก์ชันโดยไม่มีการส่งพารามิเตอร์ function_name(); การเรียกใช้ฟังก์ชันโดยมีการส่งพารามิเตอร์ function_name(para1,para2,…); PHP Programming

การเรียกใช้ฟังก์ชัน <? //func-2.php function bold( $what ){ print("<B>$what</B>"); } bold( "HELLO" ); ?> PHP Programming

การส่งค่ากลับของฟังก์ชัน ฟังก์ชันจะให้ค่ากลับคืนหรือไม่ก็ได้ ถ้าต้องการให้ค่ากลับคืนจากการทำงานของฟังก์ชัน จะใช้คำสั่ง return การเรียกใช้ฟังก์ชัน ทำได้โดยการอ้างถึงชื่อของฟังก์ชันที่ต้องการโดยที่คำสั่งที่เรียกใช้นั้นจะอยู่ก่อนหรือหลังฟังก์ชันที่ถูกเรียกก็ได้ PHP Programming

การส่งค่ากลับของฟังก์ชัน ตัวอย่าง ไฟล์ func-3.php <? //func-2.php function area( $b , $h ){ return (0.5)*$b*$h; } print("Area is ".area(3,4) ); ?> PHP Programming

<HEAD> <TITLE>Figure 4-2</TITLE> </HEAD> <HTML> <HEAD> <TITLE>Figure 4-2</TITLE> </HEAD> <BODY> <? function printBold($inputText) { print("<B>" . $inputText . "</B>"); } print("This Line is not Bold<BR>\n"); printBold("This Line is Bold"); print("<BR>\n"); ?> </BODY> </HTML> PHP Programming

การผ่านค่าพารามิเตอร์ให้กับฟังก์ชัน การผ่านค่าไปยังฟังก์ชันมี 2 วิธี 1. Call by values ตัวแปรรับค่ามาแล้วเกิดการเปลี่ยนแปลงค่าจะไม่มีการส่งกลับคืน 2. Call by reference การส่งข้อมูลในกรณีนี้ตัวแปรพารามีเตอร์ที่รับค่าจะต้องนำหน้าด้วยเครื่องหมาย “&” กรณีนี้จะทำให้ตัวแปรที่ทำหน้าที่ส่งค่าและตัวแปรที่ทำหน้าที่รับค่าอ้างอิงที่อยู่ของข้อมูลเดียวกัน เมื่อมีการเปลี่ยนแปลงค่าของตัวแปรพารามีเตอร์ในฟังก์ชันก็จะมีผลทำให้ค่าของตัวแปรอาร์กิวเมนต์ที่ส่งไปให้โปรแกรมเปลี่ยนไปด้วย PHP Programming

ตัวอย่าง ไฟล์ func-4.php <? //Call by values function one ( $parameter ) { $parameter++; } $a = 10 ; one( $a ) ; echo “ a = $a <BR>” ; ?> ผลลัพธ์ของโปรแกรมคือ a = 10 PHP Programming

ตัวอย่าง ไฟล์ func-5.php <? //Call by reference function one ( &$parameter ) { $parameter++; } $a = 10 ; one( $a ) ; echo “ a = $a <BR>” ; ?> ผลลัพธ์ของโปรแกรมคือ a = 11 PHP Programming

ตัวอย่าง ไฟล์ func-6.php การสลับค่าของตัวแปรสองตัวด้วยฟังก์ชัน swap() <? function swap(&$a, &$b) { $t = $a; $a = $b; $b = $t; } $x=10; $y=20; print ("BEFORE Interchange <BR>"); echo "x=",$x,",y=",$y,"<BR>\n"; swap($x,$y); print ("AFTER Interchange <BR>"); ?> PHP Programming

มีข้อสงเกตอยู่ว่า การใช้ call-by-reference ไม่จำเป็นต้องทำตอนนิยามฟังก์ชันเท่านั้น แต่อาจจะทำตอนผ่านตัวแปรเมื่อเรียกใช้งานจริง ตัวอย่างเช่น <? function swap($a, $b) { $t = $a; $a = $b; $b = $t; } $x=10; $y=20; print ("BEFORE Interchange <BR>"); echo "x=",$x,",y=",$y,"<BR>\n"; swap(&$x,&$y); print ("AFTER Interchange <BR>"); ?> PHP Programming

การกำหนดค่าเริ่มต้นให้กับตัวแปรพารามิเตอร์ เราสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรทำให้มีประสิทธิภาพมากขึ้น ตัวอย่าง <? function font( $str_text, $str_color = 'blue', $int_size = 2 ) { echo "<font size=\"$int_size\" color=\"$str_color\">$str_text</a>"; } ?> <? font('This line is blue - size 2.'); ?> <br> <? font('This line is red - size 2.', 'red'); ?><br> <? font('This line is green - size 4', 'green', 4); ?><br> This line is blue – size 2. This line is blue – size 4. PHP Programming

ขอบเขตของตัวแปร มี 2 แบบ คือ 1. Global scope เมื่อกำหนดตัวแปรแบบนี้แล้วสามารถเรียกใช้ได้ทุกส่วนของโปรแกรมและค่าของตัวแปรนั้นยังอยู่จนกว่าโปรแกรมนั้นจะจบหรือหยุดทำงาน 1.1 โดยใช้คำสั่ง global 1.2 โดยผ่านตัวแปรอาร์เรย์ชื่อ $GLOBAL PHP Programming

function change_pos(){ $position = "b"; } change_pos(); <? //funcscope1.php $position = "m" ; function change_pos(){ $position = "b"; } change_pos(); echo ("$position"); //print "m" ?> PHP Programming

function change_pos(){ global $position ; $position = "b"; } <? //funcscope2.php $position = "m" ; function change_pos(){ global $position ; $position = "b"; } change_pos(); echo ("$position"); // print "b" ?> PHP Programming

การใช้ตัวแปรแบบ global ภายในฟังก์ชัน 2. Local Scope คือตัวแปรที่กำหนดขึ้นใช้ภายในฟังก์ชันนั้นๆเท่านั้น เมื่อออกจากส่วนของโปรแกรมนั้นไปแล้วตัวแปรนั้นจะหายไปและตัวแปรที่กำหนดในฟังก์ชันหนึ่งไม่สามารถเรียกใช้อีกจากฟังก์ชันหนึ่งได้ PHP Programming

การกำหนดตัวแปรแบบ static ภายในฟังก์ชัน ตัวแปรภายในฟังก์ชันจะสามารถเก็บค่าไว้ได้ตลอดเวลาโดยไม่สูญหายไป function MyFunc() {   static $num_func_calls = 0;   echo "my function\n";   return ++$num_func_calls; } PHP Programming

ฟังก์ชันเรียกใช้ฟังก์ชัน (Nesting Function Calls) ตัวอย่าง <?php function increment_by_two( $int_parameter ) { $int_parameter += 2; return($int_parameter); } PHP Programming มีต่อ

function increment_by_three( $int_parameter ) { $int_parameter++; // make a nested function call to increment_by_two(). return( increment_by_two($int_parameter) ); } $a = increment_by_three( 34 ); echo "a = $a<br>"; ?> ผลลัพธ์ของโปรแกรมคือ a = 37 PHP Programming

การสร้างฟังก์ชันแบบเรียกตัวเอง (recursive function) ฟังก์ชันที่มีคำสั่งภายในฟังก์ชันนั้นเรียกใช้ฟังก์ชันตัวเองแบบวนลูป ตัวอย่าง การหาค่าแฟกทอเรียล n! function factorial ($n) {   if ( ($n == 0) || ($n == 1) )    return 1;   else     return $n*factorial($n-1); } PHP Programming

ตัวอย่างที่ 5-10 fibonacci.inc การหาค่า fibonacci number <? function fibonacci( $var ) { // the fibonacci series is only defined for // positive values. if ($var < 0) { return( 0 ); } // the first two elements in the series are // defined as zero and one and don't need recursion. if ($var < 2) { return( $var ); // use recursion to find the previous two elements // in the series. return( fibonacci($var-1) + fibonacci($var-2) ); ?> PHP Programming

โปรแกรมที่เรียกใช้ โปรแกรมที่เรียกใช้คือ <? // include the fibonacci function in this script require (‘fibonacci.inc’) ; // call the fibonacci function with a parameter of four. $n = Fibonacci ( 4 ) ; // display the result of the fibonacci call. Echo “$n <BR>” ; ?> PHP Programming

การผ่านค่ากลับคืนมากกว่าหนึ่งจากฟังก์ชัน โดยปรกติแล้วเราไม่สามารถผ่านค่ากลับคืนจากฟังก์ชันได้มากกว่าหนึ่ง แต่อย่างไรก็ตาม ยังมีวิธีการหนึ่งที่ช่วยแก้ปัญหาดังกล่าวได้ วิธีนี้คือ เก็บค่าต่างๆที่ต้องการจะใช้เป็นค่ากลับคืนไว้ใน array แล้วใช้ array นั้นเป็นค่ากลับคืน และผู้เรียกใช้ฟังก์ชันสามารถใช้ฟังก์ชัน list() อ่านค่าเหล่านั้นได้ ตัวอย่างเช่น function foobar() {    return array ("foo", "bar", 0xff); } list ($foo, $bar, $num) = foobar(); echo "$foo $bar $num <BR>\n"; ผลลัพธ์ของโปรแกรมคือ foo bar 255 PHP Programming

<TITLE>Figure 4-7: Dynamically Calling a Function</TITLE> <HTML> <HEAD> <TITLE>Figure 4-7: Dynamically Calling a Function</TITLE> </HEAD> <BODY> <? function write($text) { print($text); } function writeBold($text) print("<B>$text</B>"); PHP Programming

print("<BR>\n"); $myFunction = "writeBold"; $myFunction("Hello!"); print("<BR>\n"); $myFunction = "writeBold"; $myFunction("Goodbye!"); ?> </BODY> </HTML> PHP Programming

การใช้คำสั่ง include และ require คำสั่งทั้งสองมีไว้เพื่อแทรกเนื้อหาจากไฟล์อื่นที่ต้องการโดย คำสั่ง require จะอ่านเพียงครั้งเดียว คือไฟล์แรก และจะแทรกไฟล์นี้เท่านั้นไปตามจำนวนครั้งที่วนลูป ในขณะที่ include สามารถอ่านได้ไฟล์ต่างๆกันตามจำนวนครั้งที่ต้องการ PHP Programming

ตัวอย่าง <? $filename[]="file1.inc"; $filename[]="file2.inc"; for ($i = 0; $i < 2; $i++) { include $filename[$i]; } ?> ไฟล์ file1.inc Hello world 1<BR> ไฟล์ file2.inc Hello world 2<BR> PHP Programming

การอ่านตัวแปรจากภายนอกที่ได้จากการ Web browser โดยวิธี GET หรือ POST การส่งและรับข้อมูลจะหว่าง Web browser กับ Script ที่เขียนขึ้นมา ตัวอย่าง การใช้ Post <form action="login.php3" method="post"> <table>  <tr><td>login:</td> <td><input type="text" name="login"></td> </tr><br> PHP Programming มีต่อ

<tr><td>password:</td> <td><input type="text“name="password"></td> </tr><br> </table> <p><input type="submit"> </form> PHP Programming

ตัวอย่าง ไฟล์ login.php3 <HTML> <HEAD><TITLE> Result </TITLE></HEAD> <BODY> <P> Your login = <? echo "$login" ?> <BR> Your password = <? echo "$password"; ?> </BODY> </HTML> PHP Programming

การตรวจชนิดของ web browser  ตัวอย่าง  function getBrowserName() {   global $HTTP_USER_AGENT;   $browser=strtoupper($HTTP_USER_AGENT);   if (strstr($browser,"MSIE."))     return "MS Internet Explorer";   else if (strstr($browser,"MOZILLA"))     return "Netscape";   else     return "";  } PHP Programming