หน่วยการเรียนรู้ที่ 7 การรับค่าตัวแปร
การเก็บข้อมูลของตัวแปร
ตัวแปร หมายถึงหน่วยความจำที่ใช้เก็บข้อมูล ในการประกาศตัวแปรให้กับโปรแกรม เมื่อโปรแกรมมีการทำงานตัวแปรต่างๆ จะเป็นตำแหน่งหน่วยความจำที่ใช้เก็บข้อมูล ดังตัวอย่างเช่น
Program Alphabet;
Var a:integer;
Begin
a:=5;
a:=10;
WriteLn('a is ',a);
End.
จะเห็นได้ว่าเมื่อทำการรันโปรแกรม เริ่มแรกค่าในตัวแปร a จะมีค่าเป็น 5 ต่อมามีการใส่ค่า 10 ลงไปในตัวแปร a ทำให้ค่าที่มีอยู่ใน a จาก 5 กลายเป็น 10 เมื่อทำการรันโปรแกรมไปจนถึงคำส่ง WriteLn จะทำให้พิมพ์เลข 10 ออกมาทางหน้าจอคอมพิวเตอร์ เมื่อเป็นเช่นนั้นในการทำงานของโปรแกรมใดๆ ค่าในหน่วยของความจำหรือตัวแปรอาจมีการเปลี่ยนแปลงได้ โดยค่าเก่าจะหายไปและถูกแทนด้วยค่าใหม่
เกร็ดความรู้ เครื่องหมาย := หรือที่เรียกกันว่า "Assignment Operator" นั้นทำหน้าที่ในการส่งค่าที่อยู่ทางขวามือของเครื่องหมายไปเก็บไว้ในตัวแปรทางด้านซ้ายมือ
การกำหนดค่าคงที่ให้กับตัวแปร
สำหรับการกำหนดค่าคงที่จะใช้ในการกำหนดชื่อให้เป็นค่าคงที่ในโปรแกรม โดยค่าที่ได้กำหนดนี้จะไม่มีการเปลี่ยนแปลงตลอดการทำงานของโปรแกรม ค่าคงที่อาจเป็นข้อมูลชนิดตัวเลข หรือเป็นชนิดตัวอักขระก็ได้ การประกาศค่าคงที่จะเริ่มต้นด้วยคำว่า const ซึ่งสามารถทำได้ 2 รูปแบบดังต่อไปนี้
รูปแบบ
1. const ชื่อ = ค่าคงที่ หรือสเตตเมนท์;
2. const ชื่อ : ชนิดข้อมูล = ค่าคงที่;
ตัวอย่างเช่น
const max = 1000;
min : integer = 2000;
sum = (a+b) div 2;
การรับข้อมูลจากภายนอก
การจะกำหนดค่าให้กับตัวแปรโดยรับข้อมูลจากแป้นพิมพ์จะต้องใช้คำสั่งมาตรฐานในการรับข้อมูล ซึ่งมีอยู่ด้วยกัน 2 คำสั่งคือ Read กับ ReadLn ทั้งสองคำสั่งจะเป็นการรับข้อมูลจากอุปกรณ์ภายนอก เข้ามาเก็บในตัวแปรที่กำหนด โดยการรับข้อมูลจะต้องสอดคล้องกับประเภทของตัวแปรที่ได้ประกาศไว้ คำสั่ง Read กับ ReadLn จะมีความแตกต่างกันตรงที่คำสั่ง Read เมื่อรับข้อมูลเข้าไปแล้วเคอร์เซอร์จะอยู่ที่เดิม ส่วนคำสั่ง ReadLn เมื่อรับข้อมูลเข้าไปแล้วเคอร์เซอร์จะอยู่ที่เดิม ส่วนคำสั่ง ReadLn เมื่อรับข้อมูลเข้าไปแล้วเคอร์เซอร์จะขึ้นบรรทัดใหม่
รูปแบบ
Read(var1,var2,var3);
ReadLn(Var1,var2,var3);
การใช้คำสั่ง Read และ ReadLn มีหลายรูปแบบ ตัวแปรที่เก็บข้อมูลจะต้องอยู่ในวงเล็บเสมอและอยู่ตามหลังคำสั่ง โดยอาจเก็บข้อมูลหลายๆ ตัวแปรหรือเก็บในตัวแปรเดียวก็ได้ แต่ถ้าหากใช้คำสั่งที่ไม่มีวงเล็บตามหลัง จะให้ผู้ใช้โปรแกรมป้อนอะไรก็ได้จนกว่าจะกดคีย์ <Enter> โดยจะไม่มีการเก็บค่าที่ป้อนไว้ในตัวแปร เมื่อโปรแกรมทำงานมาถึงคำสั่ง Read หรือ ReadLn คอมพิวเตอร์จะหยุดรอการป้อนข้อมูล
ตัวอย่างโปรแกรม
Var a,b,c,d:integer;
.........................
Read(a,b);
ReadLn(c,d);
..........................