วันพุธที่ 13 ตุลาคม พ.ศ. 2553

ภาษาโปรแกรมคอมพิวเตอร์

ภาษาโปรแกรมคอมพิวเตอร์

บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม

ประวัติการพัฒนาภาษาปาสคาล

ประมาณปี พ.ศ. 2514 ดร.นิคลอล เวียร์ต (Professor Doctor Nicklaus Wirth) ชาวเมืองซูริค ประเทศสวิตเซอร์แลนด์ ได้พัฒนาภาษาสำหรับเขียนโปรแกรมคอมพิวเตอร์ขึ้นมาภาษาหนึ่ง ซึ่งจุดมุ่งหมายหลักในการพัฒนาภาษานี้ คือ ให้เป็นภาษาสำหรับฝึกเขียนโปแกรมสั่งงานคอมพิวเตอร์อย่างมีระบบและมีระเบียบ และได้กำหนดให้ภาษาใหม่นี้มีชื่อว่า ภาษาปาสคาล (Pascal Language) เพื่อเป็นเกียรติแก่ Blaise Pascal นักคณิตศาสตร์และปรัชญาแมธีชาวฝรั่งเศสผู้สร้างเครื่องคิดเลขเครื่องแรกของโลก

ภาษาปาสคาลมีต้นแบบมาจากภาษา ALGOL (Algorithmic Language) และตัวภาษาปาสคาลเองก็ได้ถูกพัฒนาต่อไปเป็นภาษาที่รู้จักกันในชื่อต่าง ๆ เช่น ภาษา MODULA2 ภาษา Ada ซึ่งเป็นภาษาที่ได้รับการคาดหมายว่าจะได้รับความนิยมในอนาคต แต่เป็นภาษาใหม่ที่มีโครงสร้างซับซ้อน

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

สัญลักษณ์เบื้องต้น (Basic Symbol)

สัญลักษณ์ที่ใช้ในภาษาปาสคาลแบ่งออกได้เป็น 3 พวก ได้แก่

1. letter ได้แก่ A-Z , a-z และ มีขีดล่าง (_ อ่านว่า Underscore)

2. digit ได้แก่ 0-9 3 . Special symbol สัญลักษณ์พิเศษได้แก่ + - * / = ^ () [] {}. , : ; ' # $

หมายเหตุ ไม่มีความแตกต่างระหว่างอักษรพิมพ์ใหญ่และอักษรพิมพ์เล็ก

คำอธิบาย

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

การเขียนคำอธิบายอาจจะเขียนอยู่ในโปรแกรม คือ ตั่งแต่คำว่า PROGRAM จนถึงคำว่า END. หรือจะอยู่นอกโปรแกรมก็ได้ เช่น

ตัวอย่าง 1.3.1 การเขียนคำอธิบายในโปรแกรม

Program Show Name;

Uses Crt;

Ch : Char;

Begin

{โปรแกรมแนะนำตนเอง}

Clrscr;

Writeln(‘อรทัย ชัยรัตนศักดิ์’);

Writeln(‘โปรแกรมวิทยาการคอมพิวเตอร์ ’);

Writeln(‘สถาบันราชภัฎพิบูลสงคราม’);

Ch := read key;

End.

ตัวอย่าง 1.3.2 การเขียนคำอธิบายนอกโปรแกรม

{โปรแกรมแนะนำตนเอง}

Program Show Name;

Uses Crt;

Ch : Char;

Begin

Closure;

Written(‘อรทัย ชัยรัตนศักดิ์’);

Written(‘โปรแกรมวิทยาการคอมพิวเตอร์ ’);

Written(‘สถาบันราชภัฎพิบูลสงคราม’);

Ch := read key;

End.

ชื่อ (Identifier)

ชื่อ ได้แก่ ชื่อที่ใช้ในโปรแกรม เช่น ใช้เป็นชื่อโปรแกรม ชื่อตัวแปร ชื่อตัวคงที่ ชื่อ procedure ชื่อ Function ชื่อประกอบขึ้นจาก letter หรือ digit แต่จะต้องไม่ขึ้นต้นด้วย digit และจะต้องไม่มีช่องว่างในส่วนประกอบเหล่านี้ ชื่อต้องมีความยาวอย่างน้อย 1 อักขระ แต่ไม่เกิน 127 อักขระ หรือไม่เกิน 1 ไลน์ (Line)

ตัวอย่าง

1. ต่อไปนี้เป็น identifier

power ,Supper ,x_bar ,X2

2. ต่อไปนี้ไม่เป็น identifier

4time ไม่เป็นเพราะขึ้นต้นด้วยตัวเลข

No. ไม่เป็นเพราะมีเครื่องหมาย .

name#5 ไม่เป็นเพราะมีเครื่องหมาย #

xy 8 ไม่เป็นเพราะมีช่องว่าง

คำในภาษาปาสคาล (Word)

Word ได้แก่คำที่ใช้ในปาสคาลแบ่งออกได้เป็น

1. คำสงวน (Reserved Word) ได้แก่คำที่ใช้ในการกำหนดรูปแบบต่าง ๆ ในProgram ตามข้อกำหนดของภาษาปาสคาล ซึ่งคำสงวนนี้ไม่สามารถเปลี่ยนแปลงแก้ไขได้ และไม่สามารถนำมาตั้งเป็นชื่อได้

2. คำมาตรฐาน (Standard Word) ได้แก่คำที่เป็น Procedure หรือ Functionมาตรฐาน เป็นคำที่เปรียบเสมือนคำสั่งในโปรแกรม แต่ตัวมันเองเป็นโปรแกรม สามารถนำคำมาตรฐานมาเป็นชื่อได้แต่ไม่ควรทำเพราะจะทำให้เสียความหมายเดิมไป จึงต้องระวังอย่ากำหนดชื่อให้ซ้ำกับคำมาตรฐาน คำมาตรฐานได้แก่คำที่กำหนดใหม่ (User defined Word) โดยผู้ใช้ ซึ่งอาจจะเขียนเป็น Procedure หรือ Function และต้องไม่เป็นคำที่ปรากฏในข้อ 1, 2

ค่าคงที่ (Constants)

ค่าคงที่ (Constants) คือ ค่าที่กำหนดขึ้นมาใช้ในโปรแกรม โดยค่าคงที่นี้จะไม่มีการเปลี่ยนแปลงค่านั้นอีกตลอดการรันโปรแกรมนั้น ๆ เช่น

‘G’ เป็นค่าคงที่แบบอักขระ

‘Computer’ เป็นค่าคงที่แบบสตริง

2546 เป็นค่าคงที่แบบตัวเลข

หมายเหตุ

1. ค่าคงที่แบบอักขระและแบบสตริงต้องอยู่ในเครื่องหมายคำพูดเดี่ยวเท่านั้น (‘) และภายในเครื่องหมายคำพูดหากมีการเว้นช่องว่างจะถือว่าเป็นอักขระตัวหนึ่ง คือเป็นช่องว่างเมื่อออกจอภาพ

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

แบบของข้อมูล (Data Type)

แบบของข้อมูล (Data Type) คือ การกำหนดคุณสมบัติให้กับตัวแปรข้อมูลชนิดนั้น ๆ ซึ่งแต่ละภาษาจะมีแบบของข้อมูลที่กำหนดมาให้เป็นมาตรฐานแล้ว เช่น Integer Real Boolean Char หรือผู้ใช้สามารถกำหนดแบบของข้อมูลชนิดใหม่ขึ้นมาใช้ได้ด้วยตัวเอง เช่น String Array

ตัวแปร (Variables)

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

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

Var I : Integer;

R : Real;

Ch : Char;

St : String(10);

เป็นการกำหนดตัวแปร I เก็บข้อมูลแบบ Integer คือจำนวนเต็ม R เป็นตัวแปรเก็บข้อมูลแบบจำนวนจริง Ch เป็นตัวแปรเก็บข้อมูลแบบอักขระ และ St เป็นตัวแปรเก็บข้อมูลแบบสตริงยาวไม่เกิน 10 อักขระ

การให้ค่าคงที่ตัวแปร (Aassignment Variables )

เมื่อกำหนดตัวแปรแล้ว การดำเนินการทำสำคัญกับตัวแปร คือ การให้ค่ากับตัวแปร ซึ่งทำได้ 2 วิธีการ คือ

1. การอ่านจากอุปกรณ์ภายนอก เช่น การรับข้อมูลจากคีย์บอร์ด การอ่านค่าจากไฟล์ข้อมูล

2. การให้ค่าแก่ตัวแปรในโปรแกรม การให้ค่าแก่ตัวแปรในโปรแกรม ด้วยเครื่องหมาย := หมายความว่า เอาค่าที่อยู่ทางด้านซ้ายมือของเครื่องหมาย มาเก็บไว้ที่ตัวแปรที่อยู่ทางด้านขวามือของเครื่องหมาย สิ่งที่อยู่ทางด้านซ้ายมือของเครื่องหมาย ต้องเป็นตัวแปรครั้งละ 1 ตัวเท่านั้น ส่วนสิ่งที่อยู่ทางด้านขวามือของเครื่องหมาย สามารถเป็นได้ คือ

1. ค่าคงที่ เช่น Num: = 3; เป็นการให้ค่า 3 แก่ตัวแปร Num

Name: = ‘อรทัย’; เป็นการให้ค่าอรทัยแก่ตัวแปร Name

2. ตัวแปร เช่น Sum: = Num; เป็นการให้ค่า Num แก่ตัวแปร Sum ดังนั้น Sum ก็จะมีค่า 3 ตามค่าของ Num

3. นิพจน์ทางคณิตศาสตร์ เช่น Sum: = Num + 5; จะนำค่า Num มาเพิ่มอีก 5 แล้วให้ค่าแก่ตัวแปร Sum ดังนั้น Sum จะมีค่าเป็น 8

Num := Num + 1; จะนำค่า Num มาเพิ่มอีก 1 แล้วเก็บค่าไว้ที่ Num เหมือนเดิม ดังนั้น Num จะมีค่า เป็น 4

4. ฟังก์ชั่น เช่น Ch := Chr (125); เป็นการนำค่า 125 มาทำการแปลงด้วยคำสั่ง Chr ซึ่งเป็นการอ่านค่าตามรหัส ASCII ให้แก่ตัวแปร Ch

คณิตศาสตร์บูลีน (Boolean algebra)

คณิตศาสตร์บูลีน (Boolean Algebra) เป็นการดำเนินกรรมวิธีทางตรรกตัวดำเนินการ (Operators) ที่ใช้มากและมีในภาษาปาสคาลได้ได้ AND, OR และ XOR เรียกว่าตัวดำเนินการบูลีน (Boolean Operators) AND ให้ความเป็นจริงเมื่อเงื่อนไขเป็นจริงทั้งหมด นอกนั้นอีก 3 กรณีเป็นเท็จ OR ให้ความเป็นจริงเมื่อเงื่อนไขอันใดอันหนึ่งเป็นจริง ให้ความเป็นเท็จเมื่อเงื่อนไขเป็นเท็จทั้งหมด XOR ให้ความเป็นจริงเมื่อเงื่อนไขอันใดอันหนึ่งเป็นจริงเพียงหนึ่งเดียวเท่านั้น ถ้าเหมือนทุกเงื่อนไขจะเป็นเท็จ

operator operation operanal type result type

AND arithmetic and Integer Integer

AND logical and Boolean Boolean

OR arithmetic or Integer Integer

OR logical or Boolean Boolean

XOR arithmetic xor Integer Integer

XOR logical xor Boolean Boolean

ตัวอย่าง ตารางตรรกศาสตร์บูลีน

X Y AND OR XOR

true true true true false

true false false true true

false true false true true

false false false false false

ตัวดำเนินการ (Operators)

ตัวดำเนินการ (Operators) คือ เครื่องหมายที่ใช้ในการดำเนินกรรมวิธี เช่น เครื่องหมาย บวก ลบ คูณ หาร เป็นต้น กรรมวิธีในการดำเนินการในภาษาปาสคาล กระทำเช่นเดียวกับพีชคณิต คือ จะให้ข้อมูลทางซ้ายของตัวดำเนินการเป็นตัวตั้ง และให้ข้อมูลทางขวาของตัวดำเนินการเป็นตัวกระทำ

operator operation operanal type result type

+ addition Real, Real Real

+ addition Integer, Integer Integer

+ addition Real, Integer Real

- subtraction Real, Real Real

- subtraction Integer, Integer Integer

- subtraction Integer, Real Real

* multiplication Real, Real Real
* multiplication Integer, Integer Integer
* multiplication Real, Integer Real
/ division Real, Real Real
/ division Integer, Integer Real
/ division Real, Integer Real
DIV division Integer Integer
MOD modules Integer Integer

หมายเหตุ
DIV เป็นการหารแบบปัดเศษทิ้ง
MOD เป็นเศษของการหาร

ตัวอย่าง
123/4 = 30.75
123 DIV 4 = 30

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

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