บทที่ 4: ภาษาปาสคาล แบบลำดับ

Download Report

Transcript บทที่ 4: ภาษาปาสคาล แบบลำดับ

บทที่ 4 (ส่ วนที่ 1)
ภาษาปาสคาล (Pascal Language)
และการเขียนโปรแกรมแบบลาดับ (Sequence)
204101 Introduction to Computer
1
ภาษาปาสคาล (Pascal)
 เป็ นภาษาระดับสู ง เช่ นเดียวกับ C, Java, Ada, BASIC, Perl
 ถูกสร้ างโดย Prof. Niklaus Wirth ในปี
ค.ศ.1970
 ชื่ อของภาษาถูกตั้งขึน
้ เพือ่ เป็ นเกียรติแก่ Blaise Pascal
 มีลกั ษณะเหมือนภาษาอังกฤษทาให้ ง่ายต่ อการโปรแกรม
 ผู้เขียนโปรแกรมไม่ จาเป็ นต้ องมีความรู้ ด้านฮาร์ ดแวร์
 ไม่ ขน
ึ้ อยู่กบั เครื่อง(Machine Independent) จะนาไปใช้ กบั
เครื่องใดก็ได้
 ต้ องมีตวั แปลภาษาเพือ่ แปลงจากภาษาระดับสู งเป็ นภาษาเครื่อง
 ปาสคาลคอมไพเลอร์ (Pascal Compiler)
204101 Introduction to Computer
2
การทางานของปาสคาลคอมไพเลอร์
 Source Program : ไฟล์ โปรแกรมของชุ ดคาสั่ งต่ างๆ ที่พงึ่ เขียน
เสร็จด้ วยภาษาโปรแกรมคอมพิวเตอร์
 Object Program :ไฟล์ โปรแกรมที่ผ่านการแปล (Compile)
จากคอมไพเลอร์ แล้ ว
 Executed Program: โปรแกรมที่ผ่านการรวม (Link) เข้ า
กับไลบราลี (Libraly) ของระบบแล้ ว
LIBRALY
Link
Source Program Compile
Object Program
“ซอร์สโปรแกรม”
xxx.pas
204101 Introduction to Computer
xxx.obj
Executed Program
์ ค
ี วิ ท์โปรแกรม”
“เอ็กซซ
xxx.exe
3
การทางานของปาสคาลคอมไพเลอร์
 1 คาสั่ ง จะถูกแปลเป็ นภาษาเครื่ องได้ มากกว่ า 1 คาสั่ ง
 การแปลทั้งโปรแกรมให้ เป็ นภาษาเครื่องในครั้ งเดียว
 ได้ เอ็กซ์ ซีคว
ิ ท์ โปรแกรมเป็ นไฟล์ ผลลัพธ์ ที่สามารถนาไปใช้ งานได้
ตลอด เช่ น โปรแกรมเครื่องคิดเลข
 การเปลีย่ นแปลงหรือแก้ ไขส่ วนใดส่ วนหนึ่งของโปรแกรม ต้ อง
มีการคอมไพล์ โปรแกรมใหม่ ต้งั แต่ ต้น
 ในระหว่ างการคอมไพล์ ถ้ ามีข้อผิดพลาด คอมไพเลอร์ กจ็ ะแจ้ ง
ให้ ทราบเพือ่ ทาการแก้ ไขต่ อไป
204101 Introduction to Computer
4
ส่ วนประกอบของภาษาปาสคาล
1.ส่ วนหัวของโปรแกรม (Header)
program First;
var number : integer;
begin
writeln('First Program');
end.
ชื่ อโปรแกรม (Program Name)
ประกาศตัวแปร
กาหนดชนิดข้ อมูลใหม่
2.ส่ วนตัวของโปรแกรม (Body)
กลุ่มของคาสั่ งที่อยู่ระหว่ าง
begin และ end
ตัวอย่ างของภาษาปาสคาล
204101 Introduction to Computer
5
ตัวแปร (Variable)
 จองพืน
้ ทีใ่ นหน่ วยความจาเพือ่ เก็บข้ อมูลทีต่ ้ องการใช้ ในโปรแกรม
 ตัวแปรทุกตัวต้ องมีการประกาศ (Declaration) ก่ อนการใช้ งาน
 คาสั่ งสาหรับการประกาศตัวแปรในภาษาปาสคาลคือคาสั่ ง VAR
รู ปแบบ
VAR Name : Type;
โดยที่ Name
Type
ตัวอย่ าง
ชื่อตัวแปร
ชนิดข้ อมูลของตัวแปร
VAR Salary : Integer;
ตัวอย่างการประกาศตัวแปรชื่อ Salary เพือ่ จองพืน้ ทีส่ าหรับเก็บข้ อมูลชนิดเลขจานวนเต็ม
204101 Introduction to Computer
6
ข้ อกาหนดในการตั้งชื่อตัวแปร
1. อักษรตัวแรกต้องเป็ นตัวอักษร (A-Z หรือ a-z) หรือ
เครื่องหมาย _ (Underscore) เท่ านั้น
2. อักษรตัวอืน่ ๆ ต้องเป็ นตัวอักษร (A-Z หรือ a-z) หรือ ตัวเลข
0-9 หรือเครื่องหมาย _ เท่ านั้น
3. ห้ ามตั้งชื่อตัวแปรซ้ากับคาสงวน (Reserved Word)
 คาสงวนคือคาทีถ่ ูกกาหนดความหมายในการนาไปใช้ งานไว้
แล้ ว เช่ น And, Begin, Do, End, For, Not, If, Mod, Not, Or,
Program, Repeat, Then, To, Type, Until, และ Var
204101 Introduction to Computer
7
ข้ อกาหนดในการตั้งชื่อตัวแปร (ต่ อ)
4. ห้ ามมีช่องว่างภายในชื่อ
5. ไม่ ควรตั้งชื่อตัวแปรซ้ากับคามาตรฐาน (Standard Identifier)
 คามาตรฐานคือคาทีถ่ ูกกาหนดความหมายในการนาไปใช้
6.
งานไว้ แล้ ว โดยปกติจะเป็ นคาสั่ งต่ าง ๆ เช่ น Write,
Writeln, Read และ Readln เป็ นต้ น
 ชื่อตัวแปร ชื่อฟังก์ชัน ชื่อค่าคงที่
ตัวอักษรตัวเล็กและตัวใหญ่ ถือว่ าไม่ ต่างกัน เช่ น Num, NUM
และ num มีความหมายเดียวกัน
204101 Introduction to Computer
8
ตัวอย่ างการตั้งชื่อตัวแปร
 Room_number
 123ABC
 _cAt
 me@CMU
 My
Book
204101 Introduction to Computer
ถูกต้ อง
ผิด ห้ ามขึน้ ต้ นด้ วยตัวเลข
ถูกต้ อง
ผิด ห้ ามใช้ เครื่องหมาย @
ผิด ห้ ามเว้ นวรรค
9
ชนิดข้ อมูล (Data Types)
 Integer
จานวนเต็ม
 Real
จานวนจริงหรือทศนิยม
 Char
ตัวอักขระ
 String ข้ อความ
 Boolean ค่ าความจริง คือจริง (True) หรือ เท็จ (False)
204101 Introduction to Computer
10
Data Types : Integer and Real
 เก็บตัวเลขจานวนเต็ม (Integer) มีค่าอยู่ในช่ วง -32,768 ถึง 32,767
 ใช้ พน
ื้ ที่ในการเก็บข้ อมูล 2 ไบต์ (16 บิต)
 ตัวอย่ างการประกาศตัวแปร
var It : integer;
 เก็บตัวเลขจานวนจริง (real) หรือทศนิยมทีม
่ คี ่ าอยู่ในช่ วง
2.9e-39 ถึง 1.7e38 (2.9 x 10-39 ถึง 1.7 x 1038)
 ใช้ พน
ื้ ทีใ่ นการเก็บข้ อมูล 6 ไบต์ (48 บิต)
 ตัวอย่ างการประกาศตัวแปร var Rl : real;
204101 Introduction to Computer
11
Data Types : Char (ตัวอักขระ)
 ใช้ เก็บตัวอักขระ 1 ตัว ในระบบ ASCII
 ใช้ พน
ื้ ทีใ่ นการเก็บข้ อมูล 1 ไบต์ (8 บิต)
 ตัวอย่ างการประกาศตัวแปร
204101 Introduction to Computer
var Ch : char;
12
Data Types : String (ข้ อความ)
 ใช้ เก็บข้ อความ 1 ข้ อความ (กลุ่มของตัวอักขระ)
 รู ปแบบการประกาศตัวแปรชนิดข้ อความ
var
Name : string[size];
size คือจานวนตัวอักขระสู งสุ ดที่สามารถเก็บได้ หากไม่ กาหนด
size คอมไพเลอร์ จะกาหนดค่ าให้ โดยอัตโนมัติเป็ น 255
 ตัวอย่ างการประกาศตัวแปร
var St1 : string[10];
var St2 : string;
204101 Introduction to Computer
13
Data Types : Boolean (ค่ าความจริง)
 ใช้ เก็บค่ าความจริง ได้ แก่ จริง (True) และ เท็จ (False)
 ใช้ พน
ื้ ทีใ่ นการเก็บข้ อมูล 1 ไบต์ (8 บิต)
 ตัวอย่ างการประกาศตัวแปร
var Bl : boolean;
204101 Introduction to Computer
14
การให้ ค่าตัวแปร
 ใช้ เครื่องหมาย := (Assignment Operator)
 การให้ ค่าตัวแปรมีรูปแบบ Variable := Value;
program My_Program;
var In : integer;
var Rl : real;
var Ch : char;
var St : string[30];
var Bl : boolean;
begin
It := -27;
Rl := 821.459;
Ch := 'F';
St := 'Pascal Language';
Bl := true;
end.
กรณีต ัวแปรชนิด char หรือต ัวแปรชนิด string ค่าข้อมูลทีจ
่ ะกาหนดให้ก ับ
้ อ
ต ัวแปร 2 ประเภทนีต
้ งอยูภ
่ ายใต้เครือ
่ งหมายฟันหนู ' ' (single quote)
204101 Introduction to Computer
15
ตัวดาเนินการและนิพจน์ (Operators and Expressions)
 ตัวดาเนินการ
 ตัวดาเนินการทางคณิตศาสตร์
(Arithmetic Operators)
 ตัวดาเนินการเปรี ยบเทียบ (Comparison Operators)
 ตัวดาเนินการทางตรรกศาสตร์ (Logical Operators)
 นิพจน์
Now +++
204101 Introduction to Computer
16
ตัวดาเนินการทางคณิตศาสตร์ (Arithmetic Operators)
+
*
/
 div
 mod
Addition
Subtraction
Multiplication
Division
Integer Division
Modulo
204101 Introduction to Computer
บวก
ลบ
คูณ
หาร
หารจานวนเต็ม
หารเอาเศษ
17
ตัวอย่ างการใช้ ตัวดาเนินการทางคณิตศาสตร์
หมายเหตุ :
ประกาศหลายต ัวแปร แต่ม ี
ชนิดของต ัวแปรเป็นประเภท
ื่
เดียวก ันหมดให้ คน
่ ั แต่ละชอ
ต ัวแปรด้วยคอมมา
PROGRAM My_Program;
var x, y, z : integer;
BEGIN
x := 7;
y := 4;
z := x + y;
{ z = 11 }
z := x - y;
{z=3}
z := x * y;
{ z = 28 }
z := x / y;
{ z = 1.75 }
z := x div y;
{z=1}
z := x mod y;
{z=3}
END.
204101 Introduction to Computer
ั
ภายในสญล
ักษณ์ { }
คือ คาอธิบาย
(Comment)
ไม่มผ
ี ลต่อการทางาน
ของโปรแกรม
18
ตัวดาเนินการเปรียบเทียบ (Comparison Operators)
Operator Example Meaning
=
<>
>
<
>=
<=
x=y
x <> y
x>y
x<y
ให้ ค่า True ถ้ าค่ า x เท่ ากับ ค่ า y
ให้ ค่า True ถ้ าค่ า x ไม่ เท่ ากับ ค่ า y
ให้ ค่า True ถ้ าค่ า x มากกว่ า ค่ า y
ให้ ค่า True ถ้ าค่ า x น้ อยกว่ า ค่ า y
x >= y ให้ ค่า True ถ้ าค่ า x มากกว่ าหรือเท่ ากับ ค่ า y
x <= y ให้ ค่า True ถ้ าค่ า x น้ อยกว่ าหรือเท่ ากับ ค่ า y
204101 Introduction to Computer
19
ตัวดาเนินการทางตรรกศาสตร์
 And ,
x
T
T
F
F
or และ not
y
T
F
T
F
x and y
T
F
F
F
204101 Introduction to Computer
x or y
T
T
T
F
not(y)
F
T
20
ตัวอย่ างการใช้ ตัวดาเนินการทางตรรกศาสตร์
PROGRAM My_Program;
var x, y : integer;
var z : boolean;
BEGIN
x := 7;
y := 4;
คาอธิบาย(Comment)
ไม่มผ
ี ลต่อการทางานของโปรแกรม
z := x <> y;
{z= True }
z := (x > y) and (x = y); {z=True and False so z=False}
z := not(x <= y);
{z= not(F) z = True}
END.
204101 Introduction to Computer
21
นิพจน์ (Expressions)
 ค่ าคงทีห
่ รือตัวแปรทีม่ กี ารใช้ ตัวดาเนินการ
 นิพจน์ ทางคณิตศาสตร์ ตามปกติ
 x2 + 4y + 5
 8y2 - 8z = 0
 นิพจน์ ทางคณิตศาสตร์ ในภาษาปาสคาล
 x*x + 4*y + 5
 8*y*y – 8*z = 0
204101 Introduction to Computer
22
ลาดับความสาคัญของตัวดาเนินการ (Precedence)
ลาดับ
1
2
3
4
5
6
เครื่องหมาย
()
- หมายถึงเครื่องหมายลบ เช่ น -9
not
* / div mod and
+ - or
= < <= > >= <>
204101 Introduction to Computer
23
ตัวอย่ างลาดับความสาคัญของตัวดาเนินการ (ต่ อ)
สมมติวา
่ มีการกาหนดค่าต ัวแปรแต่ละต ัวมีการกาหนดค่าด ังนี้
x := 16;
y := 4;
c := 2.5;
ต ัวอย่าง 1
c*d-x/y
d := 0.25;
โดย
x และ y เป็น Integer
c และ d เป็น Real
204101 Introduction to Computer
2.5 * 0.25 - 16 / 4
0.625 - 4
-3.375
24
ตัวอย่ างลาดับความสาคัญของตัวดาเนินการ (ต่ อ)
สมมติวา
่ มีการกาหนดค่าต ัวแปรแต่ละต ัวมีการกาหนดค่าด ังนี้
x := 16;
y := 4;
c := 2.5;
ต ัวอย่าง 2
-(-5) * (x mod y – x div (y+1))
d := 0.25;
-(-5) * (16 mod 4 – 16 div (4+1))
โดย
5 * (16 mod 4 – 16 div 5)
-(-5) * (16 mod 4 – 16 div (5))
x และ y เป็น Integer 5 * (0 – 3)
c และ d เป็น Real
5 * (– 3)
-15
204101 Introduction to Computer
25
ตัวอย่ างลาดับความสาคัญของตัวดาเนินการ (ต่ อ)
สมมติวา่ มีการกาหนดค่าต ัวแปรแต่ละต ัวมีการกาหนดค่าด ังนี้
x := 16;
y := 4;
ต ัวอย่าง 3
c := 2.5;
c / d + y mod x <> 2*c – d
d := 0.25;
โดย
2.5 / 0.25 + 4 mod 16 <> 2*2.5 – 0.25
c,d เป็น Real
14 <> 4.75
x,y เป็น Integer 10 + 4 <> 5 – 0.25
True
204101 Introduction to Computer
26
คาสั่ งรับและแสดงผล
 Write และ Writeln
 Read และ Readln
 การใช้ งาน 4 คาสั่ งข้ างต้ น ต้ องมีการเพิม
่ คาสั่ ง
uses WinCrt; ไว้ ในส่ วน Header
 คาสั่ ง uses คือคาสั่ งในการขอใช้ Unit หรือ Libraly ของ
ภาษาปาสคาล (กลุ่มของคาสั่ งต่ าง ๆ)
204101 Introduction to Computer
27
Write & Writeln
Write(Output, Values); { แสดงผลปกติ }
Writeln(Output, Values);{ แสดงผลแล้ วขึน้ บรรทัดใหม่ }
Output
ปลายทางทีต่ ้ องการแสดงผล เช่ น หน้ าจอ ไฟล์
หรือ เครื่องพิมพ์ ถ้ าไม่ ระบุจะถูกตั้งค่ าให้ เป็ นหน้ าจอ
Values
ข้ อความหรือตัวแปร ถ้ ามีข้อมูลมากกว่ า 1 ต้ อง
คัน่ ด้ วยเครื่องหมาย , (Comma) และข้ อความต้ องอยู่ใน
เครื่องหมาย ' ' (single quote)
204101 Introduction to Computer
28
ตัวอย่ างการใช้ Write & Writeln
program My_Program;
uses WinCrt;
var It : integer;
Rl : real;
Ch : char;
St : string[30];
Bl : boolean;
begin
It := -27;
Rl := 821.459;
Ch := 'F';
St := 'Pascal Language';
Bl := true;
204101 Introduction to Computer
หมายเหตุ :
ประกาศหลายต ัวแปร
้ าว่า var
สามารถใชค
เพียงครงเดี
ั้ ยวได้
29
ตัวอย่ างการใช้ Write & Writeln (ต่ อ)
Write('WRITE');
write('Integer:', It);
Write('Real:', Rl);
Write('Char:', Ch);
write('String:', St);
Write('Boolean:', Bl);
END.
หมายเหตุ :
อย่าลืมว่าคาสง่ ั ในภาษาปาสคาล
เป็น แบบ case insensitive
หมายความว่าจะเขียนคาสง่ ั เป็น
อ ักษรต ัวพิมพ์เล็กหรือใหญ่ก็ได้
ผลของคาสั่ ง Write ที่หน้ าจอภาพ(มีบรรทัดเดียว)ของโปรแกรมนีค้ อื
WRITEInteger:-27Real: 8.2145900000E+02Char:F
String:Pascal LanguageBoolean:TRUE
204101 Introduction to Computer
30
ตัวอย่ างการใช้ Write & Writeln (ต่ อ)
จากต ัวอย่างข้างต้น
้ าสง่ ั Writeln ด ังนี้
ถ้าเปลีย
่ นเป็นใชค
Writeln('WRITELN');
ผลทีแ
่ สดงบนหน้าจอภาพจะมี
5 บรรท ัดด ังนี้
Writeln ('Integer:', It);
WRITELN
Writeln ('Real:', Rl);
Writeln('Char:', Ch);
Writeln('String:', St);
Writeln('Boolean:', Bl);
end.
204101 Introduction to Computer
Integer:-27
Real: 8.2145900000E+02
Char:F
String:Pascal Language
Boolean:TRUE
31
รู ปแบบการแสดงผลของจานวนทศนิยม
Write(Values:a:b);
Values
จานวนทศนิยม
a จานวนตาแหน่งทงหมดที
ั้
จ
่ องไว้สาหร ับการ
ิ ขวา
แสดงผล โดยจะแสดงต ัวเลขแบบชด
** หากข้อมูลทีต
่ อ
้ งการแสดงมีมากกว่าตาแหน่งทีจ
่ องไว้
สามารถนาข้อมูลแสดงผลเกินตาแหน่งทีจ
่ องได้ **
b จานวนตาแหน่งหล ังจุดทศนิยม
204101 Introduction to Computer
32
ตัวอย่ างรู ปแบบการแสดงผลของจานวนทศนิยม
ต ัวอย่างของคาสง่ ั Writeln
การแสดงผลทีห
่ น้าจอภาพ
Writeln('Real1:', Rl);
Real1:^8.2145900000E+02
Writeln('Real2:', Rl:10);
Real2:^8.215E+02
Writeln('Real3:', Rl:10:3); Real3:^^^821.459
Writeln('Real4:', Rl:10:2); Real4:^^^^821.46
Writeln('Real5:', Rl:1:2);
Real5:821.46
** เป็ นรูปแบบทีต่ ้ องการให้ ตัวเลขทีแ่ สดงผลมีทศนิยม 2 ตาแหน่ ง โดยส่ วนทีร่ ะบุจานวนทศนิยม
เป็ นส่ วน : ทีเ่ ป็ นลาดับที่ 2 จึงต้ องใส่ ข้อมูลให้ ถูกต้ องรูปแบบและตรงตาแหน่ งทีต่ ้ องการกาหนด
จึงกาหนดส่ วน : ลาดับที่ 1 มีค่าเป็ น 1 **
่ งว่าง 1 ตาแหน่ง
หมายเหตุ ^ แทนชอ
204101 Introduction to Computer
33
Read & Readln
Read(Input, Variables);
Readln(Input, Variables);
{ รับข้ อมูลทั้งหมด }
{ รับข้ อมูลพอดี }
Input
ต้ นทางทีต่ ้ องการรับข้ อมูลเข้ ามา เช่ น แป้นพิมพ์
หรือ ไฟล์ ถ้ าไม่ ระบุจะถูกตั้งค่ าให้ เป็ น แป้นพิมพ์
Variables ตัวแปรสาหรับเก็บข้ อมูลทีร่ ับเข้ ามา
204101 Introduction to Computer
34
ตัวอย่ างการใช้ Read
program My_Program;
uses WinCrt;
var num1, num2 : integer;
begin
write('Input number 1: ');
read(num1);
write('Input number 2: ');
read(num2);
writeln('number 1 = ', num1);
writeln('number 2 = ', num2);
end.
ผลล ัพธ์การทางานของ
โปรแกรม : ต ัวอย่าง 1
Input number 1: 25 
Input number 2: -59 
number 1 = 25
number 2 = -59
หมายเหตุ
้ ดปุ่ม Enter บนคียบ
่ อ
 แทนความหมายว่าผูใ้ ชก
์ อร์ดเมือ
่ ผูใ้ ชใ้ สข
้ มูลเสร็จ
204101 Introduction to Computer
35
ตัวอย่ างการใช้ Read (ต่ อ)
ผลล ัพธ์การทางานของโปรแกรม : ต ัวอย่าง 2
Input number 1: 25 -59 
Input number 2: number 1 = 25
number 2 = -59
หมายเหตุ :
้ าสง่ ั Read ในการร ับข้อมูล ถ้ามีการร ับข้อมูลเกิน
ถ้าใชค
ข้อมูลต ัวทีเ่ กินจะถูกเก็บไว้ เมือ
่ มีการร ับข้อมูลครงั้
้ ันที
ต่อไป ข้อมูลต ัวทีเกินจะถูกนามาใชท
204101 Introduction to Computer
36
ตัวอย่ างการใช้ Readln
begin
ผลล ัพธ์การทางานของ
write('Input number 1: ');
โปรแกรม : ต ัวอย่าง 1
readln(num1);
Input number 1: 25 
write('Input number 2: ');
Input number 2: -59 
readln(num2);
writeln('number 1 = ', num1); number 1 = 25
number 2 = -59
writeln('number 2 = ', num2);
end.
ต ัวอย่าง 2
หมายเหตุ :
้ าสง่ ั Readln
กรณีใชค
ถ้ามีการร ับข้อมูลเกิน ข้อมูล
ต ัวทีเ่ กินจะถูกกาจ ัดท ันที
204101 Introduction to Computer
Input number 1: 25 -48 
Input number 2: -59 16 
number 1 = 25
number 2 = -59
37
ตัวอย่ าง 1
จงเขียนโปรแกรมในการหาพืน้ ทีข่ องรู ปสามเหลีย่ มใด ๆ
โดยกาหนดให้ รับค่ าฐานและสู งจากผู้ใช้
Start
วิเคราะห์
Read Base
ผลลัพธ์ คอื
พืน้ ที่ ใช้ ตัวแปรเป็ น Area (ประเภท Real)
Read Height
ข้ อมูลเข้ าคือ
Area = 1/2*Base*Height
ฐาน และ สู ง ใช้ ตวั แปรเป็ น Base
และ Height ตามลาดับ (ประเภท Real) Display Area
การประมวลผลคือ พืน้ ที่ = ½ * ฐาน * สู ง
Stop
204101 Introduction to Computer
38
ตัวอย่ าง 1 (ต่ อ)
program Triangle;
uses WinCrt;
var Base, Height, Area : real;
begin
write('Input Base : ');
readln(Base);
write('Input Height : ');
readln(Height);
Area := 0.5 * Base * Height;
writeln('Area = ', Area:1:2);
end.
หมายเหตุ :
้ ทีจ
พืน
่ ากการคานวณ
เท่าก ับ 9.7284
204101 Introduction to Computer
ตัวอย่ างผลลัพธ์ การทางานของโปรแกรมนี้
Input Base: 7.26 
Input Height: 2.68 
Area = 9.73
39
ตัวอย่ าง 2
ให้ รับค่ า x และ y ที่เป็ นจานวนเต็มจากผู้ใช้ แล้ วหาค่ า z จากสมการ
2
z = x - 2y (กาหนดให้ แสดงผลค่า z โดยมีทศนิยม 4 ตาแหน่ ง)
3
7xy
ตัวอย่ างผลลัพธ์ การทางาน
ของโปรแกรมนี้
program Equation;
uses WinCrt;
Input x : 7 
var x, y : integer;
Input y : -5 
var z : real;
z = -0.0096
begin
write('Input x : '); readln(x);
write('Input y : '); readln(y);
z := (x * x - 2*y) / (7*x*y*y*y);
writeln('z = ', z:1:4);
end.
204101 Introduction to Computer
40
ตัวอย่ าง 3
จงเขียนโปรแกรมในการรับรายการอาหาร, จานวน และ
ราคา แล้ วแสดงผลสิ่ งทีร่ ับมาทั้งหมดรวมทั้งราคารวม
กาหนดให้
ข้ อมูล
รายการอาหาร
จานวน
ราคา
ราคารวม
204101 Introduction to Computer
ตัวแปร
Food
Amount
Price
Total
ประเภทข้ อมูล
String
Integer
Real
Real
41
ตัวอย่ าง 3 (ต่ อ)
program Restaurant;
uses WinCrt;
var Food : string[30];
ต ัวอย่างผลล ัพธ์
var Amount : integer;
การทางานของ
โปรแกรมนี้
var Price, Total : real;
begin
Write('Input Food: ');
Readln(Food);
Write('Input Price: ');
Readln(Price);
Write('Input Amount: '); Readln(Amount);
Total := Price * Amount;
Input Food: Coke 
Input Price: 13.25 
Writeln('Food:', Food);
Input Amount: 7 
Writeln('Price: ', Price:1:2);
Food: Coke
Writeln('Amount: ', Amount);
Price: 13.25
Writeln('Total: ', Total:1:2);
Amount: 7
end.
Total: 92.75
42
204101 Introduction to Computer
แบบฝึ กหัด 1: เขียนโปรแกรมภาษาปาสคาลจากผังงานต่ อไปนี้
1
Start
A=2.3 ,
B=0.04578,
C=-0.0000088
Read T
T = T + 273
Y = A + B*T +C*T2
Print Y
Stop
204101 Introduction to Computer
43
แบบฝึ กหัด 2: เขียนโปรแกรมภาษาปาสคาลจากผังงานต่ อไปนี้
2
Start
Read X
Read Y
Z =(X+Y)2
Display Z
Stop
204101 Introduction to Computer
44
แบบฝึ กหัด 3
3. จงเขียนโปรแกรมภาษาปาสคาลร ับค่าเลขจานวน
เต็ม x และ y เพือ
่ คานวณและแสดงค่า z
เมือ
่ z = 4x3 +1.5y+10 กาหนดให้แสดงผล
ค่า z โดยมีทศนิยม 4 ตาแหน่ง
4. จงเขียนโปรแกรมภาษาปาสคาล ในการคานวณหา
่ นทีแ
้ ทีข
พืน
่ องรูปสเี่ หลีย
่ มในสว
่ รเงาด ังในรูป ซงึ่
้ ะป้อนร ัศมีของวงกลมเข้ามา โดยแสดง
ผูใ้ ชจ
ึ ษากาหนด ต ัว
ผลล ัพธ์ออกทางจอภาพ (ให้น ักศก
แปรและชนิดของต ัวแปรให้เหมาะสม)
204101 Introduction to Computer
45