บทที่8 การสร้างโพรซีเดอร์และฟังก์ชัน



การสร้างโพรซีเดอร์และฟังก์ชัน
        ความหมายของโพรซีเดอร์และฟังก์ชัน

      โพรซีเดอร์และ ฟังก์ชัน (Procedure and Function) โพรซีเดอร์ หรือโปรแกรมย่อย (Procedure) หมายถึง โปรแกรมย่อยที่ สามารถเรียกใช้งานได้ การเขียนโปรแกรมในภาษาปาสคาล คอมไพเลอร์ (compiler) ได้เตรียม Procedure ที่มีการใช้บ่อย ๆ เช่น write() read() ผู้เขียนโปรแกรม สามารถนำมาใช้ได้ทันที แต่บาง Procedure จะถูกแยกไว้ในยูนิตอื่น ๆ เช่น clrscr, gotoxy(), delay() 
    ตัวแปรโกลบอล ลักษณะของตัวแปรที่เป็นแบบโกลบอล (Global) 

     1. จะอยู่เหนือส่วนการประกาศ Procedure, function ทั้งหมด 
     2. สามารถใช้ตัวแปรโกลบอลได้ทั้งในส่วน ทำงานและส่วนประกาศ Procedure, function 3. สามารถกำหนดชื่อของค่าคงที่ ตัวแปร ประเภทของข้อมูล ยูนิต เลเบล หรือโปรแกรมย่อย โดยกำหนดไว้ ระหว่าง Program กับ Begin ของโปรแกรมหลัก 
    3. ตัวแปรโกลบอล (Global) กับโลคอล (Local) 
      ในภาษา PHP การส่งค่าตัวแปรให้เป็นพารามิเตอร์ของฟังก์ชัน สามารถทำได้ 2 แบบด้วยกัน คือ Pass by value  และ Pass by reference 
            1.การทำใหเ loop มีเงื่อนไข IF keypressed then dreak; เพื่อหยุดโปรแกรม ตัวอย่างเช่น
 uses
       crt ;
var
       x : byte;
begin
       clrscr ;
       x := 20;
 
            repeat
               write( 'abc' );
               IF keypressed THEN break;
            until x=50;
 
       readln ;
end.
    ข้อมูลแบบไฟล์ 
        ฟังก์ชัน (Function) ฟังก์ชันเหมือนกับโพรซีเดอร์ที่คอมไพเลอร์ จัดเตรียมไว้ให้แล้ว ต่างกันที่ฟังก์ชันมีการคืนค่าเป็นข้อมูลชนิด ต่าง ๆ เช่น ฟังก์ชัน chr() จะคืนค่ามาเป็นข้อมูลตัวแปรชนิด char ( ตัวอักษร 1 ตัว ) ในการใช้ฟังก์ชัน chr() เมื่อป้อนค่าตัวเลขเช่น chr(65) จะมีค่ามา เป็นตัวอักษร ‘A’ หากเขียนเป็นโปรแกรม เช่น write(chr(65)); จะพบตัวอักษร A จากตัวอย่างเรียก 65 ว่า argument ซึ่งจะ ส่งผ่านค่าไปให้พารามิเตอร์ (Parameter) ที่อยู่ในส่วนประกาศ function 
      
      ประโยชน์ของโพรซีเดอร์และฟังก์ชัน
1. เพื่อประหยัดเวลาในการเขียนคำสั่งที่ซ้ำ ๆ กันในกรณีที่ต้องการผลลัพธ์ เดียวกัน ได้สะดวก และรวดเร็ว
2. สามารถแบ่งการทำงานให้เป็นระเบียบ ง่ายต่อการแก้ไขโปรแกรมใน ภายหลัง
3. สามารถสร้างคำสั่งขึ้นมาใหม่ เพื่อให้ ทำงานตรงกับความต้องการ
4. โปรแกรมมีขนาดกะทัดรัด และสามารถ เข้าใจขั้นตอนการทำงานของ โปรแกรมได้ง่าย 
5. สามารถนำคำสั่งที่สร้างขึ้นมาใช้งานใน โปรแกรมอื่นได้ 

        ตัวแปลโกลบอล Global และดลคอล Local
    ตัวแปรโลคอล ลักษณะของตัวแปรแบบโลคอล (local) 1. จะอยู่ภายในส่วนการประกาศ Procedure, function 2. สามารถใช้ตัวแปรได้แต่ภายในส่วนของ โปรแกรมย่อยเท่านั้น ( Procedure / function ) 
   
         การส่งผ่านพารามิเตอร์

        1. Pass by value การส่งผ่านพารามิเตอร์แบบนี้ เป็นการส่งค่าแบบทางเดียว เนื่องจากโปรแกรมย่อยที่ถูกเรียกใช้จะสร้างตัวแปรพารามิเตอร์ขึ้นมาเป็นของตัวเอง แล้วทำการคัดลอกข้อมูลพารามิเตอร์ที่ส่งมาจากจากโปรแกรมหลักที่เป็นตัวเรียก มายังตัวแปรพารามิเตอร์นี้ ดังนั้นจะถือว่าพารามิเตอร์ที่กำหนดในโปรแกรมหลัก และพารามิเตอร์ที่กำหนดโปรแกรมโปรแกรมย่อยเป็นตัวแปรคนละตัวกัน เมื่อโปรแกรมย่อยนำตัวแปรที่เป็นพารามิเตอร์มาใช้งานแล้วมีการเปลี่ยนแปลงค่าเกิดขึ้น ก็จะไม่กระทบต่อตัวแปรที่ส่งมาจากโปรแกรมที่เป็นตัวเรียก (ชื่อตัวแปรที่ส่งกับพารามิเตอร์ที่รับอาจใช้ชื่อเดียวกันได้) ลักษณะของตัวแปรพารามิเตอร์แบบนี้อาจเรียกว่าเป็น Value Parameter หรือ Input Parameter ก็ได้

        2. Pass by Reference การส่งผ่านพารามิเตอร์แบบนี้ เป็นเสมือนการส่งผ่านค่าแบบสองทางไปกลับ เนื่องจากโปรแกรมย่อยที่ถูกเรียกใช้จะไม่สร้างตัวแปรพารามิเตอร์ขึ้นมาใหม่ แต่จะสร้างตัวชี้ซึ่งจะชี้ไปยังตำแหน่งที่เก็บข้อมูลพารามิเตอร์ของโปแกรมหลักที่เป็นตัวเรียก ซึ่งการใช้งานตัวแปรพารามิเตอร์ในโปรแกรมย่อยก็จะอ้างอิงถึงข้อมูลถูกชี้โดยตัวชี้นี้ ดังนั้นจึงถือว่าตัวพารามิเตอร์ที่อยู่ในโปรแกรมหลักที่เรียกใช้และตัวพารามิเตอร์ที่อยู่ในโปรแกรมย่อยเป็นตัวแปรตัวเดียวกัน(ชื่อตัวแปรที่ส่งกับชื่อพารามิเตอร์ที่รับอาจใช้คนละชื่อกัน) เมื่อมีการเปลี่ยนแปลงของค่าตัวแปรพารามิเตอร์ในโปรแกรมย่อย ก็จะกระทบไปถึงค่าตัวแปรพารามิเตอร์ของโปรแกรมหลักด้วย การกำหนดการส่งผ่านพารามิเตอร์แบบอ้างอิงนี้ นี้ให้เขียนนำหน้าพารามิเตอร์ที่ต้องการด้วยคำคำสงวน & ลักษณะของตัวแปรพารามิเตอร์แบบนี้อาจเรียกว่าเป็น Reference Parameter หรือ Output Parameter

     การหยุดโปรแกรมและโยชน์ของค่าคงที่   
   เทคนิคในการทให้การวนซ้ำหยุดของโปรแกรม เพื่อป้องกันโปรแกรมหยุดไม่ได้ ซึ้งสามารถทำได้ 2 วิธี คืิอ



          การทำงานในโปรแกรมภาษาปาสคาล สามารถจัดเก็บข้อมูลเหล่านั้นลงในไฟล์ได้ ซึ่งจะทำให้สามารถเรียกข้อมูลเหล่านั้น  นำมาใช้งานในครั้งต่อไปได้  ลักษณะของไฟล์ของปาสคาลเป็นไฟล์ลักษณะโครงสร้างซึ่งจะมีลักษณะเหมือนเรคอร์ด (Racord)


  




ไม่มีความคิดเห็น:

แสดงความคิดเห็น