Make your own free website on Tripod.com

หน่วยที่ 2
คำสั่งในการนำข้อมูลเข้าและแสดงผลข้อมูล


Input และ Output
   ในภาษาปาสคาลถือว่าอุปกรณ์ภายนอกทั้งหมดเป็น file เช่น คีย์บอร์ด, จอภาพ, เครื่องพิมพ์ และแผ่น diskette โดยที่ keyboard เป็น input file, จอภาพและเครื่องพิมพ์ เป็น output file และ diskette เป็นทั้ง input และ output file

คำสั่ง Read
     เป็นคำสั่งให้อ่านข้อมูลจากอุปกรณ์ภายนอกที่อ้างถึงมาให้แก่ตัวแปร

รูปแบบ

Read (ชื่ออุปกรณ์, ตัวแปร)

คำสั่ง Readln
     เป็นคำสั่งคล้ายกับคำสั่ง Read แตกต่างกันที่ คำสั่ง Read นั้น Cursor จะไม่ขึ้นบรรทัดใหม่ให้ ส่วนคำสั่ง Readln เคอร์เซอร์จะขึ้นบรรทัดใหม่ให้

ตัวอย่าง

Read(A)
Read(NAME)

คำสั่ง Write
     เป็นคำสั่งให้พิมพ์ค่าข้อมูลโดยตรงหรือข้อมูลในตัวแปรตามที่เรากำหนดให้แก่อุปกรณ์ภายนอก

รูปแบบ
Write (ชื่ออุปกรณ์, ข้อมูลหรือตัวแปร)

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

ตัวอย่าง


Write (‘ENTER YOUR NAME’);
Writeln (LST,’ESAMINATION 1996’);

คำสั่ง ClrScr (Clear Screen)
     เป็นคำสั่งลบข้อมูลบนจอภาพ และให้เคอร์เซอร์อยู่มุมบนซ้ายของจอภาพ

ตัวอย่างโปรแกรม
จงเขียนโปรแกรมอ่านและเขียนค่าของข้อมูล ชื่อ ที่อยู่ รหัสไปรษณีย์

PROGRAM EXAM;
BEGIN
WRITELN(‘BOONCHU NARUK’);
WRITELN(‘76/8 BANKJAK’);
WRITELN(‘BANGKOK 10260’);
END.

ผลที่ได้

BOONCHU NARUK
76/8 BANKJAK
BANGKOK 10260

สังเกต ผลลัพธ์ที่ได้จะอยู่ชิดซ้าย

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

ตัวอย่าง

PROGRAM EXAM;
BEGIN
WRITELN(3876458:11);
WRITELN(3876458.645:11:3);
END.

ผลลัพธ์

Col.11
3876458
3876458.645

ตัวอย่าง
จงเขียนโปรแกรมอ่านข้อมูล รหัส ชื่อ เงินเดือน และพิมพ์ออกทางจอภาพ

PROGRAM EXAM1;
USES CRT;
VAR CODE, NAME : STRING;
SALARY : REAL;
BEGIN
WRITELN(‘enter your code’);
READLN(CODE);
WRITELN(‘enter your NAME’);
READLN(NAME);
WRITELN(‘enter your SALARY’);
READLN(SALARY);
CLRSCR;
WRITELN(CODE:10, NAME:10, SALARY:10);
END.

การพิมพ์ output ออกทางเครื่องพิมพ์
1. ให้เปลี่ยน USES CRT; เป็น USES PRINTER;
2. ให้เติม LST ที่คำสั่ง write หรือ writeln เช่น WRITELN(LST,’HOW DO YOU DO?’);

ตัวอย่าง


PROGRAM EX2;
USES PRINTER;
BEGIN
WRITELN(LST,‘BOONCHU NARUK’ : 30);
WRITELN(LST,‘76/8 BANKJAK’ : 30);
WRITELN(LST,‘BANGKOK 10260’ : 30);
END.

ผลลัพธ์ที่แสดงทาง printer

colunm 30
BOONCHU NARUK
76/8 BANKJAK
BANGKOK 10260

การกำหนดค่าตัวแปรและการคำนวณทางคณิตศาสตร์
     ภาษาปาสคาลกำหนดให้ใช้เครื่องหมาย := เป็นตัวกำหนดค่า (assignment operator) เช่น TOTAL:=TOTAL+SUM;
ในการคำนาณทางคณิตศาสตร์ มีเครื่องหมายทางคณิตศาสตร์มาตรฐานดังต่อไปนี้

* คูณ
/ หารตัวเลขแบบ real
div หารตัวเลขแบบ integer
mod หาค่าเศษที่เหลือจากการหาร
+ บวก
- ลบ

ความสำคัญของเครื่องหมายเรียงตามลำดับดังนี้
*
/
div
mod
+
-

ตัวอย่าง

Z:=7+8*2-(6+5)
จะได้ Z:=7+16-11
Z:=12

ตัวอย่าง

PROGRAM EXAM2;
VAR A,B,X:INTEGER;
P,Y,Z:REAL;
BEGIN
A:=64 DIV 5
B:=A MOD 6;
P:=344.5*(2MOD6);
X:=7 DIV 2;
Z:=4.5*X;
Y:=B*5.6;
WRITELN(‘A= ‘,A:5,’B= ‘,B:5’Y= ‘Y:5:1);
WRITELN(‘P= ‘,P:5:1);
WRITELN(‘X= ‘,X:5,’Z= ‘,Z:5:1);
END.

ผลลัพธ์

A=12 B=2 Y=11.2
P=689.0
X=3 Z=13.5

การเปลี่ยนค่าชนิดของทศนิยมเป็นจำนวนเต็ม ทำได้ 2 วิธี
1. ฟังก์ชัน TRUNC(X:Real):INTEGER; ผลลัพธ์ที่ได้จะถูกปัดเศษทิ้ง
2. ฟังก์ชัน ROUND(X:Real):INTEGER; ผลลัพธ์ที่ได้จะถูกปัดเศษขึ้น
     ปัดเศษขึ้นถ้าเศษมีค่ามากกว่า 0.5 และจะปัดเศษทิ้ง ถ้าเศษมีค่าน้อยกว่า 0.5

เช่น X = 5.8
TRUNC(X) จะได้ 5 ถ้า ROUND(X) จะได้ 6

X = -5.8
TRUNC(X) จะได้ –5 ถ้า ROUND(X) จะได้ –6

ตัวอย่าง

PROGRAM EXAM3;
VAR A,B : INTEGER;
BEGIN
A:=TRUNC(32.75*(2MOD5));
B:=ROUND(32.75*(2MOD5));
WRITELN(‘A= ‘,A:5,’B= ‘,B:5);
END.

ผลลัพธ์

A = 65 B = 66

ตัวอย่าง โปรแกรมการคำนวณหาค่าตัวแปร

PROGRAM EX3;
USES CRT;
VAR A,B,C,D:REAL;
BEGIN
A:=8.1+7.3*1.6;
B:=3.5+4.5-1.2*3.2;
C:=6.4/2.3*3.4-2.2;
D:=(1.8+4.5)/(3.1*2.6);
CLRSCR;
WRITELN(‘A= ‘:25,A:12:2);
WRITELN(‘B= ‘:25,B:12:2);
WRITELN(‘C= ‘:25,C:12:2);
WRITELN(‘D= ‘:25,D:12:2);
END.

ผลลัพธ์

A = 19.78
B = 4.16
C = -1.38
D = 0.78


แบบฝึกหัด
เรื่อง
คำสั่งในการนำข้อมูลเข้าและแสดงผลข้อมูล


1. จงเขียนโปรแกรมอ่านข้อมูล รหัส ชื่อนักศึกษา และแผนก ของตัวเราเอง
2. จงเขียนโปรแกรมคำนวณหาค่าตัวแปรต่อไปนี้
A:=3.2*1.5+4.2-3.1
B:=(5.1/3.2*(4.8+2.9)
C:=8.5*3.2/1.9+6.4-1.2
D:=(5.6*4.3)+(4.2*3/2.4)
E:=7.9*1.3+(6.2+3.8-4.2)
3. คำสั่งต่อไปนี้ข้อใดผิด
3.1 Readln(name);
3.2 Readln(345);
3.3 Readln(3SALARY);
3.4 Readln(S-8);
4. คำสั่งต่อไปนี้ข้อใดผิด
4.1 Writeln(SALARY);
4.2 Writeln(SALARY:8:2);
4.3 Writeln(345:8);
4.4 Writeln(S-8:2);
5. จงเขียนโปรแกรมพิมพ์ตารางต่อไปนี้ทางจอภาพ

CODE
NAME
SALARY
1111
WANEE
8500
1112
JIRA
9000
1113
WIPA
9800
1114
YUPA
12000
1115
NIKORN
15000