วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)

Slides:



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

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

วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th ฟังก์ชัน วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th

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

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

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

การส่งค่ากลับของฟังก์ชัน ตัวอย่าง การคำนวนหาพื้นที่วงกลม <? function area_of_circle( $flt_radius ) { return(3.1415 * ($flt_radius * $flt_radius)); } $flt_area_of_circle = area_of_circle(5); echo "The area is $flt_area_of_circle.<br>"; ?> The area is 78.5375.

<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 การส่งข้อมูลในกรณีนี้ตัวแปรพารามีเตอร์ที่รับค่าจะต้องนำหน้าด้วยเครื่องหมาย “&” กรณีนี้จะทำให้ตัวแปรที่ทำหน้าที่ส่งค่าและตัวแปรที่ทำหน้าที่รับค่าอ้างอิงที่อยู่ของข้อมูลเดียวกัน เมื่อมีการเปลี่ยนแปลงค่าของตัวแปรพารามีเตอร์ในฟังก์ชันก็จะมีผลทำให้ค่าของตัวแปรอาร์กิวเมนต์ที่ส่งไปให้โปรแกรมเปลี่ยนไปด้วย

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

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

<HEAD> <TITLE>Figure 4-4</TITLE> </HEAD> <BODY> <? function stripCommas(&$inputString) { $inputString = ereg_replace(",", "", $inputString); } $myNumber = "10,000"; stripCommas($myNumber); print($myNumber); ?> </BODY> </HTML>

ตัวอย่าง <? function minmax (&$a, &$b) { if ($a > $b) {   <? function minmax (&$a, &$b)  {   if ($a > $b) {     $t=$a; $a=$b; $b=$t;   } } $x=10; $y=3; echo "x=",$x,",y=",$y,"<BR>\n"; minmax($x,$y); ?>

การสลับค่าของตัวแปรสองตัวด้วยฟังก์ชัน swap() <? function swap(&$a, &$b) {   $t = $a;   $a = $b;   $b = $t; } $x=10; $y=3; echo "x=",$x,",y=",$y,"\n"; swap($x,$y); ?>

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

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

<HTML> <HEAD> <TITLE>Arguments with Default Values</TITLE> </HEAD> <BODY> <? function printColored($Text, $Color="black") { print("<FONT COLOR=\"$Color\">$Text</FONT>"); } printColored("This is black text"); print("<BR>\n"); printColored("This is blue text", "blue"); ?> </BODY> </HTML>

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

  <? $a = 10; $b = 20; function getMin ( ) {  global $a, $b;  if ($a < $b)   return $a;  else   return $b; } function getMin2 () {   if ($GLOBALS["a"] < $GLOBAL["b"])   return $GLOBALS["a"];   else   return $GLOBALS["b"]; echo getMin()."<BR>\n"; echo getMin2()."<BR>\n"; ?>

ฟังก์ชัน getMin() อีกรูปแบบหนึ่ง โดยไม่ใช้ตัวแปรแบบ global ภายในฟังก์ชัน และใช้วิธีผ่านค่าแทน   <? $a = 10; $b = 20; function getMin ($a, $b) {   if ($a < $b)       return $a;   else       return $b; } echo getMin($a, $b)."<BR>\n"; ?>

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

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

การใช้ฟังก์ชันเพื่อสร้างตัวเลขแบบสุ่ม การใช้ฟังก์ชันเพื่อสร้างตัวเลขแบบสุ่ม หรือ random number generator จะคล้ายกับของภาษาซี ตัวอย่าง srand( date("s") ); for ($i=0; $i < 10; $i++) {   $x = rand() % 10;   echo $x,"  "; }

ฟังก์ชันเรียกใช้ฟังก์ชัน (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); }

<HTML> <HEAD> <TITLE>Figure 4-6</TITLE> </HEAD> <BODY> <? function checkInteger($Number) { if($Number > 1) /* integer minus one is still an integer */ return(checkInteger($Number-1)); } elseif($Number < 0)

{ /* numbers are symmetrical, so */ /* check positive version */ return(checkInteger((-1)*$Number-1)); } else if(($Number > 0) AND ($Number < 1)) return("no"); /* zero and one are */ /* integers by definition */ return("yes");

print("Is 0 an integer? " . checkInteger(0) . "<BR>\n"); print("Is 7 an integer? " . checkInteger(7) . "<BR>\n"); print("And 3.5? " . checkInteger(3.5) . "<BR>\n"); print("What about -5? " . checkInteger(-5) . "<BR>\n"); print("And -9.2? " . checkInteger(-9.2) . "<BR>\n"); ?> </BODY> </HTML>

ตัวอย่างที่ 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.php <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 "";  }