การเขียนโปรแกรม ภาษาปาสคา

Download Report

Transcript การเขียนโปรแกรม ภาษาปาสคา

LOGO
การเขียน
โปรแกรม
ภาษาปาสคาล
(Pascal)
MissPimnara Ajkong
LOGO Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
รู ้จักกับภาษาปาสคาล
กำเนิดตัง้ แต่ปี ค.ศ.1970 โดยศำสตรำจำรย์นค
ิ ลอส
้
เวิรธ
์ ถูกสร ้ำงขึน
้ เพือ
่ ใชสอนกำรพั
ฒนำโปรแกรม และ
กำรเขียนโปรแกรมแบบโครงสร ้ำง เป็ นภำษำทีใ่ ช ้
สำหรับเริม
่ ต ้นหัดเขียนโปรแกรม
ภำษำปำสคำลเป็ นภำษำระดับสูง(High level
ื่ สำร
language) เป็ นภำษำใกล ้เคียงกับภำษำทีใ่ ชส้ อ
กันตำมปกติเป็ นคำสงั่ เป็ นคำทีม
่ ค
ี วำมหมำยใน
ภำษำอังกฤษ ข้อดี จดจำรูปแบบคำสงั่ และทำควำม
เข ้ำใจง่ำย ข้อเสีย ไม่มค
ี ำสงั่ สำหรับติดต่อกับอุปกรณ์
้ ำภำษำระดับตำ่
ฮำร์ดแวร์ได ้โดยตรงและทำงำนชำกว่
ตัวแปลภำษำทีใ่ ชคื้ อ คอมไพเลอร์ (Compiler) จะ
ตรวจสอบคำสงั่ ทัง้ หมดในโปรแกรมว่ำถูกต ้องตำม
การทางานของโปรแกรมภาษา
ปาสคาล
้ ่ 1 เริม
ขันที
่ จำกกำรเขียนโปรแกรมด ้วยคำสงั่ และหลักกำร
ทีถ
่ ก
ู ต ้องของภำษำปำสคำล โปรแกรมทีเ่ ขียนขึน
้ มำนัน
้ จะ
เรียกว่ำ ซอร์สโค ้ด (Source code) บันทึกไฟล์นำมสกุล
.pas
้ ่ 2 เป็ นขัน
ขันที
้ ตอนกำรคอมไพล์ โดยตรวจสอบซอร์สโค ้ด
ว่ำถูกต ้องหรือไม่ ถ ้ำไม่ผด
ิ พลำดจะทำกำรแปลซอร์สโค ้ด
ให ้เป็ นออบเจ็กต์โค ้ด (Object code)
้ ่ 3 เป็ นขัน
ขันที
้ ตอนกำรลิงค์ เกิดขึน
้ ในกรณีทภ
ี่ ำยใน
้
ั ทีอ
โปรแกรมมีกำรเรียกใชโพรซ
เี ยอร์หรือฟั งก์ชน
่ ยูใ่ น
ไลบรำรีหรือยูนต
ิ มำตรฐำนของภำษำปำสคำล ไฟล์สด
ุ ท ้ำย
ทีไ่ ด ้ออกมำจะเป็ นไฟล์นำมสกุล .exe
การทางานของโปรแกรมภาษา
ปาสคาล
โพรซีเยอร ์และ
ฟั งก ์ช ันจาก
ไลบรารีหรือยู
นิ ตมาตรฐาน
program lesson1;
var Num1,Num2 : Integer
begin
write(‘Input number 1 : ’);
readln(Num1);
write(‘Input number 2 : ’);
readln(Num2);
readln;
end
ื่ test.pas
ไฟล์ชอ
Object code
คอมไพล์
ลิงค ์
test.exe
Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
วิธก
ี ารเรียกเทอร ์โบปาสคาล
วิธท
ี ี่ 1
วิธก
ี ารเรียกเทอร ์โบปาสคาล
วิธท
ี ี่ 2
C:\TP
ส่วนประกอบของโปรแกรม
่
ประกาศชือ
่
โปรแกรม
ประกาศชือ
่ นการ
ยูเริ
นิมต้
ต
จุด
ทางานของ
โปรแกรม
้ ดการ
จุดสินสุ
แสดงข้อความออก
ทางาน
ทางหน้าจอ
่
รู ปแบบการเขียนคาสังภาษา
ปาสคาล
ต ้องเริม
่ ด ้วยคำสงั่ begin และจบด ้วยคำสงั่
end.
ทุกคำสงั่ ต ้องลงท ้ำยด ้วย เครือ
่ งหมำย ;
(semicolon)
ตัวอักษรไม่มผ
ี ลในภำษำปำสคำล จะเขียน
คำสงั่ ด ้วยตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ก็ม ี
ควำมหมำยเหมือนกัน
สำมำรถเขียนคำสงั่ ได ้อย่ำงอิสระ ไม่จำกัด
รูปแบบ อำจจะเขียนคำสงั่ ติดกันไปเรือ
่ ยๆ
การเขียนคอมเมนต ์
{ }
(* *)
Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
ต ัวแปรในภาษาปาสคาล
รูปแบบคำสงั่
ื่ ตัวแปร
หลักกำรตัง้ ชอ
ชนิดของข ้อมูล
กำรกำหนดค่ำให ้กับตัว
แปร
ตัวแปรสำหรับเก็บ
รู ปแบบคาสัง่
var name : type;
้
var
เป็ นคำสงั่ ทีใ่ ชในกำรประกำศ
ตัวแปร
ื่ ของตัวแปร
name ชอ
type
ชนิดของข ้อมูล
้ั อต
่ ัวแปร
หลักการตงชื
ต ้องขึน
้ ด ้วยตัวอักษรA-Z,a-z หรือ _
(underscore)
ื่ จะเป็ นตัวอักษร , ตัวเลข หรือ _
ภำยในชอ
(underscore)เท่ำนัน
้
่ งว่ำงภำยในชอ
ื่
ห ้ำมเว ้นชอ
ตัวอักษรพิมพ์ใหญ่หรือพิมพ์เล็กไม่มผ
ี ล คือไม่
่ Name , name มีควำมหมำย
ต่ำงกัน เชน
เหมือนกัน
ื่ ตัวแปรซ้ำกับคำสงวน เชน
่
ห ้ำมตัง้ ชอ
ชนิ ดของข้อมู ล
Integer เลขจำนวนเต็ม
Char อักขระ
Real เลขทศนิยม
Boolean ค่ำควำมจริงทำง
ตรรกศำสตร์
่ var Num1 : integer;
เชน
การกาหนดค่าให้ก ับตวั แปร
Variable := value;
Num1:=15;
Ch:=‘A’;
Num2:=3.14;
ต ัวแปรสาหร ับเก็บข้อความ
Var name : string[n];
var Address:string;
(ให ้ค่ำอัตโนมัต ิ 255 อักขระ)
var name:string[50];
(ข ้อควำมมีควำมยำวสูงสุด 50 อักขระ)
Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
่
เครืองหมายการค
านวณ
+
*
/
Div หำรจำนวนเต็ม
Mod หำรเอำเศษ
่
เครืองหมายการเปรี
ยบเทียบ
=
<>
>
<
>=
<=
การดาเนิ นการทางตรรกศาสตร ์
And
Or
Not
่
ลาด ับของเครืองหมายในการ
คานวณ
()
Not
*,/,div,mod,and
+,-,or
=,<,<=,>,>=,<>
Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
่
เขียนโปรแกรมเพือแสดงผลและ
ร ับข้อมู ล
การนาข้อมู ลไปแสดงผล
แสดงผลออกทำงหน ้ำจอด ้วย
คำสงั่ write
แสดงผลออกทำงหน ้ำจอด ้วย
คำสงั่ writeln
กำหนดรูปแบบกำรแสดงผล
่
เขียนโปรแกรมเพือแสดงผลและ
ร ับข้อมู ล
การนาข้อมู ลไปแสดงผล
แสดงผลออกทำงหน ้ำจอด ้วยคำสงั่ write

write(output, value);

write(‘The number is : ’,Num1);
่
เขียนโปรแกรมเพือแสดงผลและ
ร ับข้อมู ล
การนาข้อมู ลไป
แสดงผล
แสดงผลออกทำงหน ้ำจอด ้วยคำสงั่ writeln

writeln(output, value);

writeln(‘The number is : ’,Num1);
การนาข้อมู ลไปแสดงผล
กำหนดรูปแบบกำรแสดงผล
write(value:n); หรือ
write(value1:n, value2:n, value3:n);
writeln(value:n); หรือ
writeln(value1:n, value2:n, value3:n);
กาหนดรู ปแบบการแสดงผล
writeln(‘Thailand’:15);
Thai l and
่
เขียนโปรแกรมเพือแสดงผลและ
ร ับข้อมู ล
การร ับข้อมู ลเข้ามาในโปรแกรม
รับข ้อมูลด ้วยคำสงั่ read
รับข ้อมูลด ้วยคำสงั่ readln
่
เขียนโปรแกรมเพือแสดงผลและ
ร ับข้อมู ล
การร ับข้อมู ลเข้ามาในโปรแกรม
รับข ้อมูลด ้วยคำสงั่ read / readln
read(input,variable)
readln(input,variable)
** ถ ้ำไม่กำหนดInput ก็จะหมำยถึงรับ
ข ้อมูลทำงคียบ
์ อร์ด **
โพรซีเยอร ์สาหร ับการ
แสดงผล
ClrScr;เคลียร์หน ้ำจอให ้ว่ำง
Gotoxy(int,int) กำหนด
เคอร์เซอร์ไปอยูต
่ ำแหน่งทีค
่ อลัมน์ท ี่ ,
แถวที่
TextBackground(word/int)
ี น
กำหนดสพ
ื้
TextColor(word/int) กำหนดส ี
ข ้อควำม
Contents
แนะนาภาษาปาสคาล
่ นเขียนโปรแกรมภาษาปาส
เริมต้
ต ัวแปรในภาษาปาสคาล
่
เครืองหมายและการด
าเนิ นการ
่
เขียนโปรแกรมเพือแสดงผลและรบ
ควบคุมทิศทางการทางานของโปร
ควบคุมทิศทางการทางานของโปรแ
ควบคุมทิศทำงแบบวนรอบ
ควบคุมทิศทำงแบบเลือกทำ
ควบคุมทิศทางแบบวนรอบ
for
while
ควบคุมทิศทางแบบวนรอบ
for
้
- คำสงั่ ทีใ่ ชในกำรควบคุ
มให ้โปรแกรมทำงำนแบบ
ั ซอนน
้
วนรอบทีง่ ำ่ ยและซบ
้อยทีส
่ ด
ุ
่ จะให้
่
่ น to เงื่อนไขสินสุ
้ ด do คาสังที
for เงื่อนไขเริมต้
่ ่อนไขเป็ นจริง
ทาเมือเงื
ตัวอย่าง
program for1;
var Count:integer;
begin
for Count:=1 to 5 do writeln(‘Hello’);
Hello
end.
Hello
Hello
Hello
Hello
ควบคุมทิศทางแบบวนรอบ
while
้
- คำสงั่ ทีใ่ ชในกำรควบคุ
มให ้โปรแกรมทำงำนแบบ
วนรอบ
while เงื่อนไข do begin
่ ่ 1จะให้ทาเมือเงื
่ ่อนไขเป็ นจริง;
คาสังที
่ ่ 2จะให้ทาเมือเงื
่ ่อนไขเป็ นจริง;
คาสังที
…
่
่
คาสังเปลี
ยนค่
าตัวแปร;
ตัวอย่าง
program while1;
var Count:integer;
begin
Count:=1;
while Count<=5 do begin
writeln(Count);
Count:=Count+1;
end;
end.
1
2
3
4
5
ควบคุมทิศทางแบบเลือกทา
if-then
if-then-else
case
ควบคุมทิศทางแบบเลือกทา
if-then เงือ
่ นไขทำงเลือก
เดียว
่ 1;
่
if เงื่อนไข then คาสังที
ควบคุมทิศทางแบบเลือกทา
if-then เงือ
่ นไขทำงเลือก
เดียว
if เงื่อนไข then begin
่
่ 1;
คาสังที
่ 2;
่
คาสังที
...
end;
ตัวอย่าง
program if1;
uses Crt;
var Age:integer;
begin
ClrScr;
write(‘Enter your age :’);
readln(Age);
if Age<20 then writeln(‘You are not adult’);
readln;
end.
ควบคุมทิศทางแบบเลือกทา
if-then-elseเงือ
่ นไขหลำย
ทำงเลือก
่ เป็
่ นจริง
if เงื่อนไข then คาสังที
่ นเท็จ;
่ เป็
else
คาสังที
ควบคุมทิศทางแบบเลือกทา
เงื่อนไข then
begin
่ เป็
่ นจริง1
คาสังที
่ เป็
่ นจริง2
คาสังที
.....
end
else begin
่ เป็
่ นเท็จ1
คาสังที
่ เป็
่ นเท็จ2
คาสังที
...
end;
if
ตัวอย่าง
program if2;
uses Crt;
var salary,sale,com:real;
begin
ClrScr;
writeln('Enter your Salary :');readln(salary);
writeln('Enter your Sale :');readln(sale);
if sale>=20000 then begin
com:=sale*0.15;
salary:=salary+com+500;
end
else begin
com:=sale*0.05;
salary:=salary+com;
end;
writeln('Commission
',com:10:2);
writeln('Salary
',salary:10:2);
readln;
end.
program if3;
uses Crt;
var salary,sale,com:real;
begin
ClrScr;
writeln('Enter your Salary :');readln(salary);
writeln('Enter your Sale :');readln(sale);
if sale>=50000 then begin
com:=sale*0.3;
salary:=salary+com+1500;
end
else if sale>30000 then begin
com:=sale*0.2;
salary:=salary+com+1000;
end
else begin
com:=sale*0.1;
salary:=salary+com;
end;
writeln('Commission
',com:10:2);
writeln('Salary
',salary:10:2);
readln;
end.
Case
้
case ตัวแปรทีใ่ ชตรวจสอบ
of
เงือ
่ นไข1 : คำสงั่ ;
เงือ
่ นไข2 : คำสงั่ ;
เงือ
่ นไข3 : คำสงั่ ;
...
else เงือ
่ นไข;
end;
ตัวอย่างโปรแกรม IF
ตัวอย่างโปรแกรม IF ต่อ
จำกโปรแกรมต่อไปนี้ คำนวณหำรำคำ
ิ ค ้ำโดยมีกำรรับจำนวน
รวมสุทธิของสน
ิ ค ้ำ (amount)และรำคำสน
ิ ค ้ำ
สน
ิ ค ้ำ
(price) คำนวณหำรำคำรวมสน
(total) และหำสว่ นลด(discount)โดยมี
เงือ
่ นไขว่ำ
 ถ ้ำรำคำรวมตัง
้ แต่ 1000 บำทขึน
้ ไป
ให ้สว่ นลด 200 บำท
 ถ ้ำรำคำรวมไม่ถง
ึ 1000 บำท ไม่ให ้
ตัวอย่างโปรแกรม IF ต่อ
LOGO
[email protected]