หน่วยที่ 3 การเขียนโปรแกรมภาษาปาสคาล

      การเขียนโปรแกรมบางครั้งต้องมีการประมวลผลคำสั่งบางคำสั่งซ้ำๆ กันหลายครั้ง  ถ้าเราเขียนโปรแกรมโครงสร้างควบคุมแบบเรียงลำดับ คือ พิมพ์คำสั่งนั้นหลายๆ บรรทัด คงไม่เหมาะสม  จำเป็นต้องใช้คำสั่งควบคุมการทำงานแบบวนซ้ำเพื่อให้โปรแกรมทำงานอย่างมี ประสิทธิภาพ  คำสั่งควบคุมการทำงานของโปรแกรมแบบวนซ้ำมีหลายแบบด้วยกัน  ได้แก่ คำสั่ง for, คำสั่ง while และ do  while ตัวอย่างโปรแกรมใกล้ตัวนักเรียน เช่น การเขียนโปรแกรมตัดเกรดนักเรียนจำนวน 30 คน

 การใช้คำสั่ง for

    ฟังก์ชัน for() เป็นฟังก์ชันวนลูปหรือวนรอบใช้ในการเขียนโปรแกรมที่มีลักษณะการทำงานวนรอบซ้ำๆ กันและมีจำนวนรอบที่คงที่.

 รูปแบบ

               for( กำหนดค่าเริ่มต้น; ตรวจสอบเงื่อนไข; การเพิ่มค่าหรือลดค่า;)

                     ชุดฟังก์ชัน

 การเขียนโปรแกรมวนซ้ำด้ยวคำสั่ง (for...downto)  

           คำสั่งควบคุมการทำงาน แบบ for 

คำสั่ง For เป็นคำสั่งควบคุมการทำงานและกำหนดการทำงานวนรอบคล้าย ๆ กับคำสั่ง while จะมีรูปแบบแตกต่างกับคำสั่งควบคุมการทำงานอืน ๆ

คำสั่ง for เป็นเป็นคำสั่งสั่งควบคุมการทำงานและกำหนดการทำงานวนรอบ โดยตั้งค่าก่อน แล้วจึงทำการพิจารณาเงื่อนไข ถ้าเงื่อนไขเป็นจริง ก็จะทำคำสั่งและวนรอบต่อไป

รูปแบบการเขียน คำสั่ง for

for (ค่าเริ่มต้น;เงื่อนไข;การเพิ่มหรือลดค่า)

ตัวอย่างการโปรแกรม



 การเขียนโปรแกรมวนด้วยคำสั่ง (whie...do)

คำสั่ง While เป็นคำสั่งสำหรับใช้ควบคุมการทำงานแบบมีเงือนไข อีกแบบหนึ่ง ซึ่งแตกต่างออกไปจากการใช้งานคำสั่ง if และ elseif ก่อนหน้านี้ ซึ่งคำสั่ง While เป็นคำสั่งที่จำเป็นในการนำไปใช้เขียนโปรแกรม ลองเข้ามาดูค่ะ ว่ามีรูปแบบการเขียนและวิธีเขียนอย่างไร

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

รูปแบบการเขียน คำสั่ง While

While (...เงื่อนไข...) {คำสั่งที่ต้องการให้ทำงาน เมื่อเงื่อนไขเป็นจริง

ตัวอย่างการโปรแกรม



 การเขียนโปรแกรมวนซ้ำด้วยคำสั่ง( repat....until)

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

            รูปแบบที่  2

 1.  ทำงานตามคำสั่งที่อยู่ภายในการวนซ้ำของคำสั่ง Repeat-Until

2.  เปรียบเทียบค่านิพจน์ตรรกะ

3.  ถ้านิพจน์ตรรกะมีค่าเป็นเท็จ  ย้อนกลับไปขั้นตอนที่ 1 มิฉะนั้นจะหยุดจากการวนซ้ำและไปกระทำตามคำสั่งที่อยู่ถัดจากคำสั่ง Repeat-Until

รูปผังงาน (Flow Chart) คำสั่ง  Repeat-Until


 การใช้ตัวแปลชุด (array)

ประเภทของข้อมูล

            ตัวแปรในภาษา C# สามารถจำแนกออกได้เป็น 2 ประเภท คือ value type และ reference type ตัวแปรประเภท value type โดยทั่วไปก็อย่างเช่น char, int หรือ float รวมถึง enum แล้วก็ struct ด้วยนะครับ ส่วนตัวแปรประเภท referenc type ก็อย่างเช่น class, interface, delegate รวมถึง array

            ความแตกต่างคือตัวแปรประเภท value จะมีการเก็บค่าของตัวแปรไว้ที่ตัวมันเลยครับ ส่วน reference มันจะเก็บค่าที่อยู่ของ object ที่มันอ้างถึง ด้วยเหตุนี้เองตัวแปรประเภท reference หลายตัว สามารถอ้างถึง object อันเดียวกันได้ ถ้าเกิดการแก้ไขหรือเปลี่ยนแปลงที่ reference ตัวใต ก็จะส่งผลถึง reference ตัวอื่นที่อ้างถึง object เดียวกัน ถ้าเป็นประเภท value การแก้ไขค่าของข้อมูลจะมีผลต่อตัวแปรตัวนั้นๆ เพียงตัวเดียวเท่านั้น

โปรแกรมย่อย (procedurd)

ประเภทของโปรแกรมย่อย (Procedure) เป็นส่วนหนึ่งของโปรแกรม มีหน้าที่เฉพาะตัวโดยแยกการทำงานออกจาก โปรแกรมอย่างอิสระ

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

สามารแบ่งโปรแกรมย่อยได้ 2 ประเภท คือ

     Sub มาจากคำเต็มว่า ซับรูทีน (Subroutine) เป็นโปรแกรมย่อยเมื่อทำงานแล้ว จะไม่มีการส่งผลการทำงานกลับไปยังโปรแกรม ที่เรียกซับรูทีนนี้ใช้งาน

     Function เป็นโปรแกรมย่อยเมื่อทำงานเสร็จแล้ว จะต้องมีการส่งผลการทำงานกลับไปยังโปรแกรมที่เรียกฟังก์ชันนี้ใช้งาน

การใช้ฟังก์ชัน (function)

ฟังก์ชั่น (Function) ทำงานเปรียบเสมือนโรงงานที่ทำหน้าที่รับวัตถุดิบ (input หรือ argument) จากนั้นเอาไปประมวลผลจนออกมาเป็น Output ที่แสดงออกมาใน Cell นั่นเอง โดยแต่ละ Function ก็จะผลิตผลลัพธ์ออกมาไม่เหมือนกัน ขึ้นอยู่กับว่า Function นั้นเอาไว้ทำอะไร

ประเภทของ Function มีหลายอย่าง แต่ละตัวก็ต้องการจำนวน input ไม่เท่ากัน หากต้องการรู้ว่า Function แต่ละอันต้องการ Input อะไรบ้าง จำนวนเท่าไหร่ ให้เลือกฟังก์ชั่น ที่ต้องการแล้ว มันจะขึ้นตัวช่วยในการใช้ Function นั้นๆ ขึ้นมา (หน้าต่าง Function Argument)

โดยที่ Input ตัวไหนเป็นตัวที่จำเป็นต้องใส่ จะขึ้นเป็นตัวหนา

ถ้าตัวไหนเป็น Optional จะขึ้นเป็นตัวปกติ

เช่น ผมเลือก Text => LEFT จะขึ้นดังนี้ ( Num_chars เป็น Optional โดย Excel จะใส่ค่า Default ให้)

การใช้ตัวแปรเก็บข้อความ (string)

ตัวแปรถูกใช้เพื่อเก็บข้อมูลในหน่วยความจำเพื่อนำข้อมูลเหล่านั้นไว้ใช้ภายหลังในโปรแกรม ในภาษา C# นั้นมีตัวแปรประเภทต่างๆ ที่มีชนิดข้อมูลที่แตกต่างกันไป เช่น boolean integer floating point string และพอยน์เตอร์ โดยการประกาศตัวแปรนั้นมีรูปแบบดังนี้

type identifier;

โดยที่ type เป็นชนิดของข้อมูลพื้นฐานที่มีในภาษา C# แต่อย่างไรก็ตามมันยังสามารถเป็นชนิดข้อมูลแบบอื่นๆ ได้ เช่น ออบเจ็ค ซึ่งเราจะกล่าวภายหลังในบทเรียนนี้ ส่วน identifier เป็นชื่อของตัวแปรที่เราต้องการสร้างขึ้น และนี่เป็นตัวอย่างในการประกาศตัวแปรในภาษา C#

ในการตั้งชื่อตัวแปรนั้น ชื่อของตัวแปรไม่สามารถตรงกับคำสงวนที่มีในภาษา C# ได้ และจะเป็นแบบ case-sensitive นั่นหมายความว่า ตัวแปร name และ NAME เป็นตัวแปรคนละตัวแปรกัน ในการตั้งชื่อตัวแปรในภาษา C# จะมีกฏดังนี้

ชื่อของตัวแปรสามารถประกอบไปด้วย ตัวอักษรภาษาอังกฤษ ตัวเลข และเครื่องหมาย _ เท่านั้น และไม่สามารถขึ้นต้นด้วยตัวเลขได้

ชื่อของตัวแปรต้องไม่ตรงกับคำสงานในภาษา C# แต่อย่างไรก็ตาม คุณสามารถใช้เครื่องหมาย @ นำหน้าชื่อตัวแปรได้หากคุณต้องการใช้คำสงวน แต่นั่นไม่ใช่วิธีการปฏิบัติที่ดี

การใช้ตัวแปรเก็บข้อมูลแบบระเบียน (record)

เรคคอร์ด  (Record)  หรือระเบียนเป็นโครงสร้างข้อมูลที่ผู้ใช้ต้องกำหนดคุณสมบัติขึ้นมาก่อนเช่นเดียวกับอาร์เรย์  แต่แตกต่างกันที่อาร์เรย์ประกอบด้วยสมาชิกทุกตัวมีโครงสร้างข้อมูลชนิดเดียวกัน  ส่วนเรคคอร์ดประกอบด้วยสมาชิกแต่ละตัวที่สามารถมีโครงสร้างข้อมูลชนิดใดก็ได้ไม่จำเป็นต้องเหมือนกัน  จึงเป็นโครงร้างข้อมูลที่ถูกใช้งานบ่อยมากเพื่อเก็บข้อมูลทางธุรกิจ  สมาชิกในเรคคอร์ดเรียกว่าเขตข้อมูลหรือฟิลด์  (Field)  และไม่มีการจัดลำดับสมาชิกเช่นเดียวกับอาร์เรย์  ถูกเรียกใช้งานโดยใช้ชื่อของสมาชิกตัวนั้น  ส่วนอาร์เรย์ไม่มีชื่อจะใช้ดัชนี  โดยพื้นฐานเรคคอร์ดมีลักษณะเป็นตารางแถวเดียว  ดังในรูปที่  3.2  เป็นการเก็บค่าของแต่ละเขตข้อมูลที่มีโครงสร้างข้อมูลต่างกันประกอบด้วย  เลขจำนวนเต็ม  ข้อความ  และเลขทศนิยม

การกำหนดเรคคอร์ด

เรคคอร์ดมีการกำหนดรูปแบบเป็น  ดังนี้

Rec  (Field1,  Field2, . . . ,  FieldN)

โดย  Fieldi  เป็นสมาชิกของเรคคอร์ด  และ  1≤ i ≤ N

เป็นการสร้างเรคคอร์ดชื่อ  Rec  ที่มีสมาชิก  N  ตัว การใช้งานเรคคอร์ดเมื่อต้องการอ้างถึงสมาชิกจะใช้เครื่องหมายมหัพภาค  (จุด)  แสดงคุณสมบัติ  (Qualification)  คั่นระหว่างชื่อเรคคอร์ดกับชื่อเขตข้อมูลดังนี้

Rec . Fieldi

การจัดเก็บข้อมูล (eiles)

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

         - การจัดเก็บอย่างมีประสิทธิภาพ สามารถลดภาระการเก็บเอกสารที่เป้นกระดาษได้ รวมถึงการทำซ้ำเพื่อสำรองข้อมูล สามารถทำได้สะดวกและรวดเร็ว

         - การตอบสนองต่อความต้องการได้อย่างรวดเร็ว เช่น ข้อมูลประวัติการบำรุงรักษารถยนต์และข้อมูลประวัติคนไข้ ผู้ใช้ที่ต้องการนำข้อมูลเหล่านี้ไปใช้งาน สามารถเข้าถึงระบบฐานข้อมูลและนำข้อมูลที่ต้องการไปใช้ได้

         - การจำกัดสิทธิ์ในการเข้าถึงข้อมูลให้แก่ผู้ใช้ในแต่ละระดับขององค์กร เช่น ผู้บริหารสามารถเข้าถึงข้อมูลของทุกหน่วยงานได้ แต่ผู้ใช้ทั่วไปในแผนกการเงิน ไม่สามารถเข้าถึงข้อมูลประวิติของฝ่ายบุคคลได้ เป็นต้น



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

บทที่2 ภาษาปาสคาล(Pascal)

ประวัติส่วนตัว