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

1.ประวัติของภาษาปาสคาล (Pascal)
  ภาษาปาสคาล (Pascal) เป็นชื่อที่ได้มาจากเบลส ปาสคาล (Blaise Pascal) นักวิทยาศาสตร์และนักคณิตศาสตร์ชาวฝรั่งเศส ผู้มีชื่อเสียงในการประดิษฐ์เครื่องจักรที่ใช้ในการคำนวณซึ่งเป็นต้นแบบของคอมพิวเตอร์ในปัจจุบัน ภาษาปาสคาลได้รับการพัฒนาขึ้นครั้งแรกเมื่อต้นปี พ.. 2513 โดยนิคลอส เวิรธ์ (Niklaus Wirth) ที่สถาบันเทคโนโลยีซูริค ประเทศสวิสเซอร์แลนด์ วัตถุประสงค์ครั้งแรก เพื่อพัฒนาภาษาขั้นสูงที่มีกฎเกณฑ์ เพื่อการสอนการเขียนโปรแกรมแบบโครงสร้าง ภาษาที่เวิร์ธพัฒนาขึ้นเรียกว่า ปาสคาลมาตรฐาน (Standard Pascal) หรือปาสคาลมาตรฐานตามแบบของเจนเซน (Jensen) และ เวิร์ธ (Wirth) อย่างไรก็ตาม คำว่าปาสคาลมาตรฐานยังกำกวมอยู่ เนื่องจากปัจจุบันมีหลายมาตรฐานในประเทศสหรัฐอเมริกามีการประกาศปาสคาลมาตรฐานชื่อแอนซี่ (ANSI : American National Standards Instute) และไออีอีอี(IEEE : Institute of Electrical and Electronics Engineers)
                ในปี พ.. 2526 บอร์แลนด์ อินเตอร์เนชั่นแนล ซึ่งเป็นบริษัทซอฟต์แวร์สำหรับคอมพิวเตอร์ขนาดเล็ก ได้เริ่มทำตลาดคอมไพเลอร์ปาสคาลราคาถูกที่เรียกว่า เทอร์โบปาสคาล (Turbo Pascal) สำหรับใช้กับคอมพิวเตอร์ส่วนบุคคล เทอร์โบปาสคาลประสบความสำเร็จเรื่อยมา เนื่องจากราคาถูกและใช้งานง่าย ต่อมาจึงมีการพัฒนาเครื่องมือสำหรับพัฒนาโปรแกรม ไดแก่ Editor และตัว Debugger แบบโต้ตอบ ปัจจุบันมีการนำมาประยุกต์ใช้งานทั้งในด้านเป็นภาษาในการเรียนการสอน และภาษาในการสร้างงานประยุกต์ต่างๆ

2.คุณลักษณะของภาษาปาสคาล
                ภาษาปาสคาล จัดเป็นภาษาระดับสูงอีกภาษาหนึ่งที่ได้รับความนิยมในการนำมาใช้ในวงการศึกษา เพราะเป็นภาษาที่มีลักษณะเด่นอยู่หลายด้าน เช่น
1.รูปแบบของคำสั่งเป็นภาษาอังกฤษ
2.คำสั่งมีความง่ายต่อการทำความเข้าใจ
3. ลักษณะการทำงานของโปรแกรมจะเป็นการทำงานที่มีโครงสร้าง
4. มีการแปลคำสั่งแบบ Compile ทำให้สามารถทำงานได้อย่างรวดเร็ว
           5. เหมาะกับงานทุกประเภท ไม่ว่าจะเป็นงานทางด้านวิทยาศาสตร์ที่มีการคำนวณหรืองานทางด้านธุรกิจ แม้แต่งานทางด้านกราฟิกก็สามารถใช้ได้

3.ตัวเเปลของภาษาปาสคาล(Pascal Compiler )


           
4.การดาวน์โหลดเเละติดตั้งโปรเเกรมFree Pascal
Free Pascal เป็นคอมไพเลอร์แบบ 32 และ 64 บิตสำหรับระบบปฏิบัติการและสถาปัตยกรรมการประมวลผลต่าง ๆ ที่หลากหลาย สำหรับโมเดลอย่างเช่น Intel x86, Amd64/x86_64, PowerPC หรือ Sparc
มันรองรับภาษา Borland Turbo Pascal 7.0 และ Delphi 7 และมันก็ได้ถูกปรับปรุงให้ทำงานได้ดีขึ้นเหมือนกับ operator overloading
อินเทอร์เฟซของ Free Pascal นั้นจะเป็นเหมือนเดิมซึ่งอยู่ในรูปแบบข้อความ และเหมือนกันกับตัวที่ใช้กับ Turbo Pascal และ Borland

คุณสมบัติอย่างอื่นของ Free Pascal ได้แก่ การประมวลผลล่วงหน้า โหลดตัวแปรเข้าสู่รีจิสเตอร์ต่าง ๆ ปรับปรุงโค้ดให้มีประสิทธิภาพมากขึ้น ตัวประมวลข้อมูลวิเคราะห์ระดับโฟลว์ คุณสมบัติส่วนกลาง และอื่น ๆ

5.การสร้างโปรแกรมใช้งานด้วย Free Pascal
1.1 ลักษณะของปาสกาลโปรแกรม
การเขียนปาสกาลโปรแกรมมีรูปแบบดังนี้ คือ รูปแบบ :
PROGRAM heading; (*This is a comment*)
Definition part
CONST
TYPE
Declaration part
VR
PROCEDURE OR FUNCTION
BEGIN
Statement part
END.
หัวเรื่องของโปรแกรม (Program heading) คือบรรทัดแรกของโปรแกรม โดยที่เครื่องหมายอัฒภาค ';'  เป็นตัวแยกบรรทัดนี้จากบรรทัดอื่น ๆ ในโปรแกรม  โดยทั่วไปหัวเรื่องของโปรแกรมประกอบด้วย ชื่อโปรแกรม ตามด้วยเครื่องหมายวงเล็บซึ่งภายในมีรายชื่อตัวแปร ชนิดแฟ้มข้อมูลที่เกี่ยวข้องกับโปรแกรม  ชื่อโปรแกรม คือชื่อของโปรแกรมที่ต้องขึ้นต้นด้วยตัวอักษร และเขียนตามด้วยตัวเลข หรือตัวอักษร ในชื่อของโปรแกรม ไม่มีเครื่องหมายทางคณิตศาสตร์ หรือเครื่องหมายวรรคตอนต่าง ๆ

ตัวอย่าง 1 :
ชื่อที่ถูกต้อง ชื่อที่ไม่ถูกต้อง 
R2D2O  2Bar02B
Pattittan  First*Run
Top40_Farrah  Fawcett-Major
โดยปกติแล้วคอมตัวแปรภาษาจะยอมรับชื่อโปรแกรมเพียง 8 ตัวอักขระแรก สำหรับชื่อที่ยาว กว่า 8 ตัวอักขระนั้น จะบันทึก 8 ตัวแรกเป็นชื่อโปรแกรม
1.2 การเขียนหมายเหตุ (comment)
หมายเหตุ คือ ประโยค หรือวลีภาษาอังกฤษที่เขียนระหว่างเครื่องหมายวงเล็บ และ '*'สำหรับคำอธิบายต่าง ๆ ที่เขียนขึ้นในโปรแกรม มีวัตถุประสงค์เพื่อให้ผู้อ่านเข้าใจการทำงานของ โปรแกรมได้มากขึ้น โดยหมายเหตุนี้ไม่มีผลต่อการทำงานของคอมพิวเตอร์ การเขียนหมายเหตุ มีรูปแบบดังนี้ รูปแบบ : program one; (*This is a comment*)
นอกจากนี้ยังสามารถเขียนหมายเหตุได้ครั้งละหลาย ๆ บรรทัดใน 1 โปรแกรม เช่น (* Program one by Ms.One two *) ผลลัพธ์ที่ได้จากการแปล และ สั่งให้โปรแกรมดำเนินงาน มีดังนี้
Hello. How are you?
1.3 ข้อความสั่ง End
เป็นข้อความสั่งสุดท้ายในโปรแกรม และข้อความสั่งนี้ต้อง ตามด้วยเครื่องหมายมหัพภาค ('.') เสมอ
รูปแบบ : end.
ตัวอย่าง 2 :
program three;
begin
writeln ('Sawatdee');
end.

6.โครงสร้างของโปรแกรมภาษาปาสคาล ประกอบด้วย 3 ส่วน คือ
   1.Header section (ส่วนหัว)
  2.Variable section (ส่วนประกาศ)
  3.Body section (ส่วนตัว)

1.HEADER SECTION (ส่วนหัว)
     ส่วนหัวของโปรแกรม จะประกอบไปด้วยดังนี้
        Program     name;
ตัวอย่าง
        Program  listname;

อธิบาย
   Program   คือ เป็นคำเฉพาะ หรือคำสั่งของภาษา จะต้องพิมพ์เสมอ
   listname     คือ ชื่อของโปรแกรม
   ;  (semicolon)   คือ  เครื่องหมายสิ้นสุดคำสั่งแต่ละคำสั่ง จะต้องพิมพ์เสมอเมื่อจบแต่ละคำสั่ง

กฏการตั้งชื่อโปรแปรแกรม
     1. จะต้องไม่ตรงกับคำสงวน ตัวอย่างคำสงวน write writeln program repeat  until while do for ฯลฯ
     2. จะต้องไม่มีอักขระพิเศษ เช่น  #  ! $  &  และอื่นๆ
     3. จะต้องไม่ขึ้นต้นด้วยตัวเลข
     4. จะต้องไม่มีช่องว่างระหว่างชื่อของโปรแกรม
     5. จะต้องตั้งชื่อให้สัมพันธ์กับการทำงานของโปรแกรม

2.VARIABLE SECTION (ส่วนประกาศ)
     ส่วนประกาศนี้ จะเป็นส่วนที่กำหนดหรือบอกว่าจะใช้ตัวแปรหรือผู้ใช้จะกำหนดสภาพแวดล้อมของโปรแกรมอย่างไรในโปรแกรมบ้าง ในส่วนประกาศนี้จะประกอบไปด้วยหัวข้อสำคัญๆ ดังนี้
        1. Var  คือ หัวข้อประกาศตัวแปรที่จะใช้ในโปรแกรมพร้อมทั้งชนิดของข้อมูล เช่น a : integer;
        2. Label  คือ กำหนดชื่อหรือหัวเรื่องที่จะเป็นจุดกระโดดไปในกรณีใช้คำสั่ง goto
        3. Const  คือ กำหนดค่าคงที่ให้กับตัวแปร เช่น a:25;
        4. Type คือ หัวข้อที่ผู้ใช้สามารถกำหนดข้อมูลและชนิดข้อมูลได้เอง ซึ่งในหัวข้อนี้โปรแกรมเมอร์สามารถออกแบบเองตามใจชอบได้

3.BODY SECTION (ส่วนตัว)
     ส่วนตัวของโปรแกรมนี้จะเป็นส่วนที่เป็นจุดเริ่มต้นของการสร้างโปรแกรม ว่าโปรแกรมเมอร์จะให้คอมพิวเตอร์ทำอะไรให้บ้าง ซึ่งคอมพิวเตอร์ก็จะทำตามนั้น โดยจะทำคำสั่งจากบนลงล่าง หรือจากซ้ายไปขวา ซึ่งส่วนตัวจะเริ่มต้นที่คำว่า  Begin และสิ้นสุดที่คำสั่ง End.  รูปแบบของส่วนตัวมีดังนี้่
    begin
       คำสั่งที่ 1
       คำสั่งที่ 2
        ..........
       คำสั่งที่ n
     end.
****หมายเหตุ   คำสั่ง END นั้นจะต้องมีจุด (.) ด้วยเสมอหากเป็นคำสั่งจบโปรแกรมของโปรแกรมหลัก

7.เเบบของข้อมูล Data Typer  สำหรับประเภทของข้อมูลมีดังนี้คือ
1. ข้อมูลชนิดตัวอักษร (Character) คือ       ข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็ม ได้แก่ ตัวอักษร ตัวเลขและกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์
2. ข้อมูลชนิดจำนวนเต็ม (Integer) คือ 
      ข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ   และศูนย์ ข้อมูลชนิดจำนวนเต็มใช้พื้นที่ในการเก็บข้อมูล ขนาด 2 ไบต์
3. ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer)   คือ 
     ข้อมูลที่เป็นเลขจำนวนเต็ม ใช้พื้นที่ในการเก็บเป็น 2 เท่าของ Integer คือมีขนาด 4 ไบต์
4. ข้อมูลชนิดเลขทศนิยม (Float) คือ 
    ข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์

5. ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double)   คือ                                                                            ข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บข้อมูลเป็น 2 เท่าของ float คือมีขนาด 8 ไบต์

8.ตัวเเปร Variables
       คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม  โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย  เพื่อความสะดวกในการเรียกใช้ข้อมูล  ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้
ชนิดของข้อมูล
ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน  ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาดเนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน  และเนื่องจากการที่มีขนาดที่แตกต่างกันไป  ดังนั้นในการเลือกใช้งานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นในการใช้งานด้วย
รูปแบบในการประกาศตัวแปรในภาษา C
การสร้าวตัวแปรขึ้นมาใช้งานจะเรียกว่า  การประกาศตัวแปร (Variable Declaration) โดยเขียนคำสั่งให้ถูกต้องตามแบบการประกาศตัวแปร  แสดงดังนี้
type name;
type :  ชนิดของตัวแปร
name : ชื่อของตัวแปร  ซึ่งต้องตั้งให้ถูกต้องตามหลักของภาษา C
การเขียนคำสั่งเพื่อประกาศตัวแปร  ส่วนใหญ่แล้วจะเขียนไว้ในส่วนหัวของโปรแกรมก่อนฟังก์ชัน main ซึ่งการเขียนไว้ในตำแหน่งดังกล่าว  จะทำให้ตัวแปรเหล่านั้นสามารถเรียกใช้จากที่ใดก็ได้ในโปรแกรม  
ตัวแปรสำหรับข้อความ

ในภาษา C ไม่มีการกำหนดชนิดของตัวแปรสำหรับข้อความโดยตรง  แต่จะใช้การกำหนดชนิดของตัวแปรอักขระ (char) ร่วมกับการกำหนดขนาดแทน  และจะเรียกตัวแปรสำหรับเก้บข้อความว่า  ตัวแปรสตริง (string) 
9.การเเสดงผล Display


         การ์ดแสดงผลอาจเรียกอีกอย่างหนึ่งว่าการ์ดวีดีโอหรือการ์ดจอ เป็นส่วนที่ทำหน้าที่นำผล การประมวลจากซีพียูไปแสดงบนจอภาพ การ์ดแสดงผลมีอยู่หลายแบบ ขึ้นอยู่กับลักษณะการนำไป ใช้งาน ถ้าหากเป็นการใช้งานทั่วๆ ไป เช่น พิมพ์งานในสำนักงาน ใช้อินเตอร์เน็ต อาจใช้การ์ดแบบ 2 มิติ ก็เพียงพอแล้ว แต่หากเป็นการ เล่นเกมใช้โปรแกรมประเภทกราฟิก 3 มิติ ก็ควรเลือกการ์ดจอ ที่จะ ช่วยแสดงผลแบบสามมิติหรือ 3D การ์ด

10.ค่าคงที่ Constant


ค่าคงที่ (constant) เป็นตัวแปรประเภทหนึ่งที่ไม่สามารถเปลี่ยนแปลงค่าได้ในขณะที่โปรแกรมทำงาน นี่หมายความว่าเราจะต้องกำหนดค่าให้ตัวแปรในเวลาที่คอมไพเลอร์ทำงานหรือในตอนแรกที่เราสร้างตัวแปรแบบค่าคงที่ขึ้นมา ค่าคงที่ที่เราใช้กันบ่อยๆ นั้นเรียกว่า literal ซึ่ง literal สามารถแบ่งแยกได้เป็น integer, floating-point, characters, strings, Boolean, pointers และที่ผู้ใช้สร้างขึ้นเอง

11.การเขียนโปรแกรมใช้งานคำนวณ


1. ฟังก์ชัน scanf();   
เป็นฟังก์ชันที่ใช้รอรับค่าข้อมูลจากแป้นพิมพ์มาเก็บไว้ในตัวแปรเพื่อใช้ใน การคำนวณและการประมวลผล ถูกนิยามไว้ใน stdio.h
    รูปแบบ               scanf ("ตัวกำหนดชนิดข้อมูล",ตัวแปร);

    ตัวอย่าง               scanf("%d",&A);

   หมายถึง รอรับค่าข้อมูลเป็นเลขจำนวนเต็มมาเก็บไว้ที่ตัวแปร A   &A คือที่อยู่ของ
 
 ตัวแปร A (Address A)
                                 scan("%f",&score);

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

2  ข้อกำหนดการตั้งชื่อตัวแปรในภาษาซี

        1. ชื่อตัวแปรตัวแรกต้องขึ้นต้นด้วยตัวอักษร เช่น key,num,score
        2. ไม่มีการเว้นวรรคแต่สามารถใช้เครื่องหมายขีดล่างขั้นได้ เช่น chk_sw,stop_motor
        3. ถัดจากตัวแรกจะเป็นตัวเลขหรือเครื่องหมายขีดล่างได้ เช่น a1,num1,score_1
        4. ตัวอักษรตัวเล็กและใหญ่แตกต่างกันเช่น a1,A1 ถือว่าเป็นคนละตัวแปร
        5. ต้องไม่ตั้งชื่อซ้ำกับคำสงวนในภาษาซี อย่างเช่น if,do,while,printf ,elseฯลฯ

12.การรับค่าจากเเป้นพิมพ์
การรับค่าบนแป้นพิมพ์ ด้วย java.util.Scanner
ก่อนอื่น เราต้อง import java.util.Scanner; เพื่อบอกให้ทราบว่า เราจะใช้ class Scanner
เมื่อ import เสร็จแล้ว เราก็ต้องสร้างตัวแสกน โดยใช้คำสั่ง Scanner Sc = new Scanner(System.in); เมื่อ Sc คือตัวแปรที่ใช้รับค่าที่แสกนจากแป้นพิมพ์ เมื่อดูจากโค้ด จะเห็นว่า เราได้สร้างตัวแปรประเภท Scanner ชื่อว่า Sc โดยสร้างเป็นออบเจ็ค ซึ่งจะเห็นได้จาก new Scanner และในวงเล็บ System.in เพื่อให้ทราบว่ารับค่ามาจากแป้นพิมพ์นั่นเอง
เมื่อได้ตัวแปรรับค่ามาแล้ว เราก็ต้องมาเอาตัวแปรที่รับค่านั้น มาแบ่งเป็นประเภทของข้อมูล แล้วยัดใส่ตัวแปรแต่ละประเภท ซึ่งใช้คำสั่งคือ
String s = Sc.nextLine(); //ใช้สำหรับรับค่าเป็น Sting
int i = Sc.nextInt(); //ใช้สำหรับรับค่าเป็น interger
float f = Sc.nextFloat(); //ใช้สำหรับรับค่าเป็น float
double d = Sc.nextDouble(); //ใช้สำหรับรับค่าเป็น double
long l = Sc.nextLong(); //ใช้สำหรับรับค่าเป็น long
...ฯลฯ...
จากโค้ดข้างบน เราจะเห็นว่า เราได้สร้างตัวแปรชนิด String ชื่อว่า S แล้วกำหนดให้รับค่าจากแป้นพิมพ์ซึ่งรับค่าผ่านตัวแปร Sc ที่รับเป็นชนิด String

13.การเขียนโปรแกรมเเบบเลือกทำด้วยคำสั่ง if


คำสั่ง if และ if-else
      คำสั่ง if

         รูปแบบของคำสั่ง if เป็นดังนี้

ผลการค้นหารูปภาพสำหรับ รูปแบบคำสั่งif



เงื่อนไขทางเลือก ที่เขียนอยู่ระหว่างเครื่องหมาย ( และ ) เป็นนิพจน์ใด ๆ ที่สามารถประเมินค่าได้
ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น จริง และไม่เท่ากับ 0
จะประมวลผลคำสั่ง
ในกรณีที่ เงื่อนไขทางเลือก มีค่าเป็น เท็จ และเท่ากับ 0
จะไม่ประมวลผลคำสั่ง



14.การเขียนโปรแกรมเลือกทำด้วยคำสั่ง cas


การพัฒนาโปรแกรมแบบเลือกหลายทาง
     โปรแกรมแบบเลือกหลายทางจะใช้สำหรับกรณีที่มีทางเลือกหลายทาง แต่ให้เลือกทำเพียงทางเลือกเดียวเท่านั้น การใช้ฟังก์ชัน switch ในการเขียนลักษณะการทำงานจึงเหมือนกับฟังก์ชัน if…else…ซ้อนกัน แต่ใช้งานได้สะดวกกว่า เหมาะอย่างยิ่งสำหรับเขียนโปรแกรม เพื่อสร้างทางเลือกรายการ (Menu) ของโปรแกรม ภาษาซีจึงมีคำสั่ง switch() สำหรับทำงานดังกล่าว และมีโครงสร้างของรูปแบบเลือกหลายทางโดยทั่วไป

ความคิดเห็น

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

สารบัญ

บทที่1 หลักการเขียนโปรเเกรม