Function.

Slides:



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

ครั้งที่ 9 Function(ต่อ).
โครงสร้างภาษาซี เบื้องต้น
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
Introduction to C Programming
ครั้งที่ 8 Function.
การรับค่าและแสดงผล.
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
Functional programming part II
Lecture 13: ฟังก์ชันเรียกตัวเอง
Structure Programming
JavaScript.
Week 6 ประกาศค่าตัวแปร.
การพัฒนาการใช้งานในระบบเว็บ
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
ฟังก์ชัน (Function).
ตัวแปรชุด.
Use Case Diagram.
C Programming Lecture no. 6: Function.
Functions & Sub Program ฟังก์ชันและโปรแกรมย่อย
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
PROCEDURE <<โปรแกรมย่อย>>
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
Electronic Commerce เว็บฟอร์ม (Web Form).
บทที่ 4 Method (2).
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ 14 การเขียนโปรแกรมย่อย
บทที่ 5 ฟังก์ชันของ PHP การประกาศฟังก์ชัน { Statement; }
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 7 ฟังก์ชัน To do: Hand back assignments
PHP:Hypertext Preprocessor
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
1. 2  ในการใช้งานเว็บไซต์ โดยปกติเราจะไม่สามารถ ใช้งานตัวแปรที่มีลักษณะ Global ที่สามารถ นำไปใช้ได้กับเว็บเพจหน้าอื่นๆ ปกติในการใช้ งานค่าต่างๆ ของเว็บเพจ.
คำสั่งควบคุมการทำงานของ ActionScripts
การสร้างและใช้งานฟังก์ชั่น
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
วิชาคอมพิวเตอร์กราฟิก
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Computer Programming for Engineers
การเขียนโปรแกรม PHP เชื่อมต่อกับ MySQL
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
PHP for Web Programming
ฟังก์ชัน.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
CHAPTER 4 Control Statements
E-Sarabun.
หลักการเขียนโปรแกรม ( )
กองซ้อน ยอดกองซ้อน (stack).
PHP: [8] การสร้างฟังก์ชั่นขึ้นใช้เอง (User-defined functions)
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การเขียนโปรแกรมคอมพิวเตอร์ 1
หลักการเขียนโปรแกรม ( )
Recursive Method.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การสร้างฟอร์ม(Form) ด้วยภาษา HTML
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
บทที่ 5 Function. Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
โครงสร้างข้อมูลแบบ สแตก (stack)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
ใบสำเนางานนำเสนอ:

Function

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

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

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

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

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

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

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

<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>

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

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

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

ตัวอย่าง ไฟล์ 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>"); ?>

มีข้อสงเกตอยู่ว่า การใช้ 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>"); ?>

การกำหนดค่าเริ่มต้นให้กับตัวแปรพารามิเตอร์ เราสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรทำให้มีประสิทธิภาพมากขึ้น ตัวอย่าง <? 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.

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

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

การใช้ตัวแปรแบบ global ภายในฟังก์ชัน <? //funcscope2.php $position = "m" ; function change_pos(){ global $position ; $position = "b"; } change_pos(); echo ("$position"); // print "b" ?>

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

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

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

function increment_by_three( $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

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

ตัวอย่างที่ 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) ); ?>

โปรแกรมที่เรียกใช้ โปรแกรมที่เรียกใช้คือ <? // 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>” ; ?>

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

<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>");

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

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

ตัวอย่าง <? $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>

การอ่านตัวแปรจากภายนอกที่ได้จากการ 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> มีต่อ

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

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

การตรวจชนิดของ 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 "";  }

<? 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 ""; } echo getBrowserName(); ?>

แบบฝึกหัด 1.จงเขียนโปรแกรมภาษา PHP เพื่อหา 12! (12 factorial) 12! = 1*2*3*…………..*11*12 1).โดยใชคําสั่ง For หรือ While 2). โดยใชคําสั่ง Do….While 3). โดยการใช้ฟังก์ชั่นแบบเรียกใช้ตัวเอง (recursive)

2. จงเขียนโปรแกรมภาษา PHP กําหนดฟงกชันแบบไมสงคา เพื่อแสดงขอความที่เปน รหัส ชื่อสกุลนักศึกษา โปรแกรมวิชาเอกและฟงกชัน 3. F(X,Y) = X*Y + 125.5*Y – 4.5/X5 - 72.25 เพื่อหาคา Z = F(X,Y) เมื่อ X = 1 ถึง 5 เพิ่มทีละ 0.25 และ Y = 14.82 กําหนด รูปแบบการแสดงผลดังนี้ เชน Compute F(X,Y) = X*Y + 125.5*Y – 4.5/X5 - 72.25 F(1,14.82) = …….(คาที่คํานวณได) F(1.25,14.82) = …...(คาที่คํานวณได) …….. F(5,14.82) = …...(คาที่คํานวณได) Program by 481463.... Dang Madee Computer Science