Professional Documents
Culture Documents
การเขียนโปรแกรมคอมพิวเตอร์เพื่อแก้ปัญหาการคานวณเชิงวิศวกรรม อาศัยพื้นฐานทางคณิตศาสตร์เป็น
ความรู้หลัก ที่จะนาไปสู่ความเข้าใจในเนื้อหาอันเกี่ยวเนื่องกับการใช้โปรแกรมคอมพิวเตอร์เข้ามาช่วยเหลือการ
แก้ปัญหาทางวิศวกรรม โดยหลักแล้วเกี่ยวข้องกับการคิดเป็นขั้นตอน การจัดการกับความคิด ในบทนี้รวบรวม
ความรู้พื้นฐานเกี่ยวกับการคานวณเชิงวิศวกรรมที่เกี่ยวข้องกับการเขียนโปรแกรม แบ่งเป็น 4 ส่วนได้แก่
1. หน่วยและการแปลงหน่วย (Unit Analysis)
2. สัญกรณ์วิทยาศาสตร์ (Scientific Notation)
3. การพัฒนาโปรแกรม (Software development)
4. การพัฒนาขั้นตอนวิธี (Algorithm development)
1.1 หน่วยและกำรแปลงหน่วย (Unit Analysis)
ในการคานวณเชิงวิศวกรรมหน่วยของข้อมูลมีผลกับผลลัพธ์ในการคานวณ ทั้งนี้ก่อนทาการคานวณ
จะต้องมีการคานึงถึงหน่วยของผลลัพธ์ที่ต้องการ ตัวอย่างเช่น การหาพื้นที่ของสี่เหลี่ยมผืนผ้าใดๆ มีสมการคือ
𝑎𝑟𝑒𝑎 = 𝑤𝑖𝑑𝑡ℎ × 𝑙𝑒𝑛𝑔𝑡ℎ
หรือ
1 ฟุต
𝑎𝑟𝑒𝑎 = 2 × 5 ( )
12 นิ้ว
𝑎𝑟𝑒𝑎 = 0.83 ฟุต2
จะเห็นได้ว่าค่าตัวเลขของผลลัพธ์ที่ได้มาแตกต่างกันโดยสิ้นเชิง ดังนั้นการคานวณใดๆในการเขียนโปรแกรม
คอมพิวเตอร์ก็จะต้องคานึงถึง หน่วยของผลลัพธ์ที่ต้องการและหน่วยของข้อมูลที่จะนามาใช้ในการคานวณหน่วย
ต่างๆที่ใช้งานบ่อยในการคานวณเชิงวิศวกรรมแสดงในตารางที่ 1.1
1|Page
ตำรำงที่ 1.1 หน่วยที่ใช้บ่อยสาหรับปริมาณเชิงกายภาพ (Bronson, 2010)
Quantity Symbol Units English Engineering Units
International
Time t seconds (s) seconds (sec)
Length l meters (m) feet (ft) 1 m = 3.2808 ft
Area A sq. meters (m2) sq. feet (ft2) 10.76 ft2
Volume V cubic meters (m3) cubic feet (ft3) 1m3 =35.31 ft3
Mass m kilograms (kg) pounds mass (lbm) 1 kg = 2.19 lbm
Force F Newton (1 N =1 kg- pounds-force (lbf 1 lbf = 4.448 N
m/s2) =lbm-ft/sec2)
Weight W Newton (N) pounds force (lbf) 1 lbf = 4.448 N
Density ρ kilograms/cubic pounds-mass/cubic ft 1 lbf/ft3 =16.02 kg/m3
meters (kg/m3) (lbm/ft3)
Velocity v meters/sec (m/s) feet/sec (ft/sec) 1 m/s =3.2808 ft/sec
Acceleration a meters/sec2 (m/s2) feet/sec2 (ft/sec2) 1 m/s2 =3.2808
ft/sec2
Pressure P Pascal (Pa) (1 Pa =1 lbf/ft2 1 lbf/ft2 =47.88 Pa
N/m2)
Heat transfer Q Joules (J) (1 J = 1N.m) British Thermal Unit 1 BTU = 1055 J
(BTU)
Heat flux Q Joules/sec (J/s) (1J/s = BTU/sec 1 BTU/sec =1055 J/s
1 Watt)
Work W Joules (J) ft-lbf 1 ft-lbf =1.356 J
Power W Watts (W) (1 W =1 J/s) ft-lbf/sec 1 ft-lbf/sec =1.356 W
Temperature T degrees Celsius (C) degrees Fahrenheit(F)
and and degrees Rankin (R)
degrees Kelvin (K)
สาหรับอุณหภูมิให้ใช้สูตรต่างๆดังนี้ในการแปลงหน่วย
°F = 1.8°C + 32 = 9/5°C + 32
°C = (°F - 32)/1.8 = 5/9 (°F - 32)
°K = °C + 273.15
°R = °F + 459.67
°R = 1.8°K
°C = (°R - 491.67) / 1.8 = 5/9 (°R - 491.67)
2|Page
1.2 สัญกรณ์วิทยำศำสตร์ (Scientific Notation)
การคานวณเชิงวิศวกรรมมีการใช้ค่าที่เป็นปริมาณมหาศาล และค่าที่มีปริมาณน้อยมากๆ เช่น อัตรา
ความเร็วของแสงในสูญญากาศมีค่าถึง 299,792,458 เมตรต่อวินาที (ประมาณ 3 x108 เมตรต่อวินาที) หรือ เส้น
ผ่านศูนย์กลางของเส้นผมที่มีค่าประมาณ 0.000100 เมตร (100 ไมโครเมตร หรือ 100 x 10-6 เมตร) สังเกตว่า
ค่าต่างๆในเชิงวิศวกรรมสามารถเขียนให้อยู่ในรูปเลขทศนิยมและเลขยกกาลัง หรือที่เรียกว่าสัญกรณ์วิทยาศาสตร์
(Scientific notation) นั่นเอง ค่าเหล่านี้สามารถเขียนให้อยู่ในรูปของเลขยกกาลังที่เป็นมาตรฐานสาหรับ
โปรแกรมคอมพิวเตอร์ได้ เช่น อัตราความเร็วแสงสามารถกาหนดได้ในรูปแบบ 3e08 เมตรต่อวินาที และ
เช่นเดียวกันกับสองเท่าของรัศมีหน้าตัดเส้นผม สามารถทดแทนด้วย 100e-6 เมตร การใช้ e ในรูปแบบนี้เรียกว่า
Exponential notation ซึ่งเพิ่มความสะดวกในการเขียนโปรแกรมคอมพิวเตอร์
การเขียนค่าต่างๆในการคานวณเชิงวิศวกรรมในรูปแบบของสัญกรณ์วิทยาศาสตร์ช่วยให้การคานวณง่ายและ
สะดวกยิ่งขึ้น โดยมีหลักการของการนาเลขยกกาลังมาบวกลบกัน ดังแสดงในตัวอย่าง
236,000×0.345×1,345,000
ต้องการคานวณตัวเลขชุดหนึ่ง 65.2×.000003
ข้อมูลชุดดังกล่าวสามารถถูกนามาดัดแปลงให้อยู่ในรูปของสัญกรณ์วิทยาศาสตร์ก่อนทาการคานวณดังนี้
2.36 × 105 × 3.45 × 10−1 × 1.345 × 106 2.36 × 3.45 × 1.345 × 10(5−1+6)
=
6.25 × 101 × 3.0 × 10−6 6.25 × 3.0 × 101−6
จะได้ผลลัพธ์สุดท้ายคือ
2.36 × 3.45 × 1.345 × 1015
6.25 × 3.0
3|Page
1.3 กำรพัฒนำโปรแกรม (Software development)
ในการพัฒนาโปรแกรมที่ซับซ้อน จะมีช่วงระยะของการทางานอยู่สามช่วง ได้แก่ การออกแบบและพัฒนา
การจัดเตรียมเอกสาร และ การบารุงรักษา ในส่วนของการเขียนโปรแกรมคอมพิวเตอร์เพื่องานวิศวกรรมนี้ จะลง
รายละเอียดแค่ในส่วนของการออกแบบและพัฒนาโปรแกรม เนื่องจากรายวิชาการเขียนโปรแกรมคอมพิวเตอร์
เป็นรายวิชาพื้นฐาน โปรแกรมที่เขียนไม่มีความยุ่งยากซับซ้อนมากไปกว่าเจตนาที่ต้องการปลูกฝังแนวคิดในการ
แก้ปัญหาเชิงวิศวกรรมให้กับผู้เรียน
โดยปกติแล้วทุกๆโปรแกรมถูกสร้างขึ้นมาเพื่อให้สามารถทางานดังรูป 1.1 คือมีอินพุท (input) เข้าไปใน
กระบวนการ (process) และได้เอาท์พุท (output) ออกมาเป็นผลที่ต้องการ
4|Page
กระดาษ หรือการทา hand example นี้ จะช่วยให้ผู้พัฒนาโปรแกรมสามารถเข้าใจการแก้ปัญหาได้ดี
ยิ่งขึ้น
5. กำรเขียนโปรแกรมและกำรทดสอบ (Coding and Testing) เป็นขั้นตอนในการนาขั้นตอนวิธีจากข้อ
3 มาปรับปรุงให้เป็นโปรแกรม โดยเลือกใช้ภาษาการเขียนโปรแกรมที่เหมาะสมหรือที่ถูกกาหนดไว้ แล้ว
ทาการทดสอบโปรแกรมที่เขียนขึ้นด้วยชุดข้อมูลทดสอบที่กาหนดไว้ในข้อ 4 ที่ถูกใช้ในการคานวณด้วยมือ
ซึ่งการใช้ชุดข้อมูลทดสอบเดียวกันนี้ จะทาให้ทราบว่าโปรแกรมที่เขียนขึ้นมีข้อผิดพลาดหรือไม่ประการใด
โดยการเปรียบเทียบผลตอบสนองของโปรแกรมกับผลที่ได้จากการคานวณด้วยมือที่ได้เตรียมไว้ในข้อ 4
ขั้นตอนนี้อาจมีการทาซ้าซ้อนและกลับไปทาการแก้ไข เนื่องจากข้อผิดพลาดในการเขียนโปรแกรมมีหลาย
ชนิด (จะกล่าวถึงในลาดับต่อไป) ระยะเวลาในการปรับปรุงโปรแกรมจนได้ผลตอบสนองที่ถูกต้องก็ขึ้นอยู่
กับปริมาณและชนิดของข้อผิดพลาดในการเขียนโปรแกรม ในขั้นตอนนี้ การสารองข้อมูล (Backup) เป็น
สิ่งที่จาเป็น ยิ่งความสาคัญของงานมากเท่าใดก็ต้องให้ความสาคัญของการสารองข้อมูลมากเท่านั้น
สามารถทาได้ตั้งแต่การบันทึกไปที่ Cloud Services, Flash drive หรือ External Hard drives
จะเห็นได้ว่าทุกกระบวนการต่างมีความสาคัญที่จะทาให้สามารถเขียนเป็นโปรแกรมได้ แต่ขั้นตอนที่สาคัญ
ที่สุดคือขั้นตอนที่ 3 หากมีการพัฒนาขั้นตอนวิธีที่ถูกต้องและเหมาะสม โดยเฉพาะการใช้ภาษาเทียมในการพัฒนา
ขั้นตอนวิธีแล้ว การดัดแปลงให้มาเป็นภาษาโปรแกรมคอมพิวเตอร์ภาษาใดๆก็จะสามารถทาได้อย่างง่ายดาย
โดยเฉพาะมีการใช้เครื่องมือช่วยในการพัฒนาโปรแกรมภาษาคอมพิวเตอร์ที่เป็นลักษณะที่เรียกว่า Integrated
Development Environment (IDE) รายละเอียดเกี่ยวกับ IDE จะกล่าวถึงในลาดับถัดไป
1.4 กำรพัฒนำขั้นตอนวิธี (Algorithm development)
เครื่องมือพื้นฐานสาหรับการพัฒนาขั้นตอนวิธีได้แก่ ผังงาน (Flowchart) และภาษาเทียม (pseudo code)
ผังงำน (Flowchart)
เป็นเครื่องมือสาหรับการพัฒนาขั้นตอนวิธีที่เป็นมาตรฐานสากล ผังงานใช้สัญลักษณ์ที่มีความหมายใน
ตัวเองประกอบกับคาอธิบายเล็กน้อย เพื่อสื่อสารระหว่างผู้พัฒนาโปรแกรม หรือเพื่อใช้ในการอธิบายขั้นตอนการ
ทางานของกระบวนการที่ซับซ้อนอย่างใดอย่างหนึ่ง สัญลักษณ์และความหมายแสดงในตารางที่ 1.3
ผังงานที่ดีควรมีลักษณะดังนี้
1. มีจุดเริ่มต้นเพียงจุดเดียวและจุดสิ้นสุดเพียงจุดเดียว
2. สัญลักษณ์มีลูกศรหรือ flow line เข้าหนึ่งออกหนึ่งเท่านั้น ยกเว้น สัญลักษณ์ diamond (decision) มี
เข้าหนึ่งออกสอง และ terminator ที่มีเข้าหรือออกเพียงหนึ่งอัน
3. ใช้ตัวเชื่อมต่อ (connector) เพื่อเชื่อมต่อ flow lines
ภำษำเทียม (Pseudo code)
ภาษาเทียมคือภาษาอังกฤษพื้นฐานที่ใช้อธิบายขั้นตอนวิธีหรือกระบวนการ ภาษาเทียมจะมีลักษณะ
ใกล้เคียงกับภาษาโปรแกรมคอมพิวเตอร์ แต่ไม่ใช่ภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ภาษาเทียมจะถูกนามา
แปลงเป็นโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่งได้อย่างง่ายดายโดยผู้ที่มีความเข้าใจในหลักการของการทางาน
เป็นขั้นตอน ภาษาเทียมสามารถใช้อธิบายขั้นตอนวิธีการทางานของโปรแกรมแทนผังงาน เป็นที่นิยมใช้ในการ
5|Page
อธิบายขั้นตอนวิธีของผู้พัฒนาโปรแกรมทั่วโลก หรือแม้แต่ใช้ในการอธิบายขั้นตอนวิธีการทางานของระบบใด
ระบบหนึ่งที่ไม่ใช่โปรแกรมคอมพิวเตอร์ก็สามารถทาได้
ภาษาเทียมบางครั้งถูกเขียนโดยใช้ไวยากรณ์ของภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งเป็นหลัก ทาให้การ
นาไปแปลงเป็นภาษานั้นๆสะดวกยิ่งขึ้น คาหลักๆ ที่ใช้ในภาษาเทียม ส่วนมากจะเป็นคาสงวน (Reserve words)
หรือคาหลัก (Keywords) ในภาษาคอมพิวเตอร์ ได้แก่ input, output, read, print, for, while, end เป็นต้น
6|Page
ตำรำงที่ 1.3 สัญลักษณ์สามัญที่ใช้ในการเขียนผังงาน
สัญลักษณ์ ชื่อ ความหมาย ตัวอย่างการใช้งาน
Start/Stop เริ่มต้น/
Terminator
สิ้นสุด
รับข้อมูลเข้ามา หรือส่ง
Input, Output ข้อมูลออกไป หรือแสดงผล
ข้อมูล
การประมวลผล, การ
Process
คานวณ, การกาหนดค่า
การตัดสินใจที่มีคาตอบ ใช่
Decision
หรือไม่ใช่
ทิศทางการไหลของข้อมูล
ใช้เชื่อมต่อสัญลักษณ์อื่นใน
Flow line
ผังงาน และ/หรือ กาหนด
ตรรกะของเส้นทางข้อมูล
ใช้สาหรับเชื่อมต่อ flow
Connector
lines
7|Page
ตัวอย่ำงกำรแก้ปัญหำทำงวิศวกรรม
โจทย์ตัวอย่ำงที่ 1 จงหาพื้นที่ของสี่เหลี่ยมใดๆ
1. วิเครำะห์โจทย์ สี่เหลี่ยมมีด้านกว้างและด้านยาว ความกว้างและความยาวของสี่เหลี่ยมสามารถเป็นเลข
ทศนิยมได้
2. กำหนด input/output ความกว้างและความยาวของสี่เหลี่ยมคือ input ที่ต้องรับเข้ามา ส่วนพื้นที่คือ
สิ่งที่ต้องทาการคานวณหาและแสดงผลออกมา ดังนั้นพื้นที่เป็น output
3. ผังงำน สามารถเขียนผังงานได้ดังนี้
8|Page
ภำษำเทียม (Pseudo code) สามารถเขียนภาษาเทียมได้ดังนี้
START
GET width, length
IF width and length greater than zero THEN
area=width X length
PRINT area
END
4. Hand Example ให้ความกว้างเป็น 2.50 ม. ความยาวเป็น 4.50 ม. จะได้พื้นที่ 11.25 ตร.ม.
5. Coding and Testing
area=float(width)*float(height)
print("The area is "+ str(area))
9|Page
โจทย์ตัวอย่ำงที่ 2 จงหา 𝑦(𝑡) เมื่อ
𝑡 2 − 2, 𝑡 ≤ 0
𝑦(𝑡) = { 2
𝑡 + 2, 𝑡 > 0
10 | P a g e
5. Coding and Testing
Listing 1.2 Example2\main.py
if __name__ == '__main__':
pass
print("Welcome to my program\nInput q to exit")
t=0
while (t!='q'):
t=input("Enter t: ")
if t=='q':
break
if int(t) <=0 :
yt=int(t)*int(t)-2
else:
yt=int(t)*int(t)+2
print("y(t) is "+ str(yt))
11 | P a g e
1.5 แบบฝึกหัดท้ำยบท
1. จงเขียนแสดงขั้นตอนวิธีเป็นขั้นๆ (step-by-step) ของกระบวนการต่อไปนี้
1.1 ต้มมาม่า
1.2 เปลี่ยนยางรถจักรยาน
1.3 ลงทะเบียนใน reg.ubu.ac.th
1.4 ยืมหนังสือห้องสมุด
2. จงเขียนแสดงขั้นตอนวิธีเป็นขั้นๆ (step-by-step) ของกระบวนการในการนับสระ ‘e’ ในประโยค
ภาษาอังกฤษใดๆ
3. จงเขียนขั้นตอนวิธี (Algorithm) โดยใช้ pseudo code หรือ flowchart ของกระบวนการในข้อ 2
4. จงเขียนขั้นตอนวิธี (Algorithm) โดยใช้ pseudo code หรือ flowchart ในการค้นหาค่าที่น้อยที่สุดใน
กลุ่มข้อมูลใดๆ
5. จงเขียนขั้นตอนวิธี (Algorithm) โดยใช้ pseudo code หรือ flowchart ในการเรียงข้อมูล 4 ตัวใดๆจาก
น้อยไปหามาก และจากมากไปหาน้อย
12 | P a g e
1309 200 Computer Programming Laboratory
ปฏิบัติกำรที่ 1.1: แนะนำเทคโนโลยีที่เกี่ยวข้องและกำรวำดผังงำนเบื้องต้น
เนื้อหาในปฏิบัติการนี้จะกล่าวถึงการนาเทคโนโลยีสารสนเทศในปัจจุบันมาใช้งานในรายวิชานี้ อันได้แก่
การส่งอีเมล์ การใช้งาน Social Network ในการติดต่อสื่อสาร การใช้งาน Google Chrome Applications เพื่อ
ส่งเสริมการเรียนรู้ด้วยตนเองของนักศึกษา
วัตถุประสงค์
1. เพื่อให้นักศึกษาสามารถสื่อสารด้วยอีเมล์อย่างมีประสิทธิภาพ
2. เพื่อให้นักศึกษาทราบถึงช่องทางการสื่อสารผ่าน Social Network
3. เพื่อให้นักศึกษาตระหนักถึงแอพพลิเคชั่นต่างๆที่ใช้ในรายวิชานี้
4. เพื่อให้นักศึกษาเข้าใจความหมายและการสร้างขั้นตอนวิธี (Algorithm)
5. เพื่อให้นักศึกษาสามารถวาดผังงานอย่างง่ายจากปัญหาที่กาหนดได้
ทฤษฏีที่เกี่ยวข้อง
ปัจจุบันมีการนาเทคโนโลยีสารสนเทศเข้ามาใช้ในวงการศึกษาเป็นอย่างแพร่หลาย ผู้เรียนส่วนมากใช้งาน
Social Network อย่างต่อเนื่องและเป็นประจา Social Network เช่น Google Plus จึงเป็นสื่อที่เหมาะสม
สาหรับใช้งานในการติดต่อสื่อสารระหว่างผู้เรียนกับผู้สอน ทั้งนี้การใช้งานอีเมล์ก็เข้ามาแทนการเขียนจดหมายหรือ
เอกสารที่เป็นทางการ การเรียนรู้เกี่ยวกับช่องทางในการสื่อสารทั้ง Social Network และอีเมล์จึงเป็นพื้นฐานที่
จาเป็นต่อการศึกษาของผู้เรียนที่สามารถนาไปต่อยอดในการค้นหาข้อมูลออนไลน์ส่วนอื่นได้ต่อไป
การเรียนรู้ของผู้เรียนในปัจจุบันได้เปลี่ยนแปลงตามเทคโนโลยีสารสนเทศที่พัฒนาไปอย่างรวดเร็ว เพื่อให้
ผู้เรียนทันต่อสถานการณ์ปัจจุบันและเรียนรู้เทคโนโลยีที่ทันสมัย รายวิชานี้จึงต้องปูพื้นฐานแอพพลิเคชั่นที่
เกี่ยวข้องกับการศึกษาให้กับผู้เรียนที่มีให้โดย Google ที่เรียกสั้นๆว่า Google Chrome Apps ซึ่งเนื้อหาใน
ปฏิบัติการนี้ผู้เรียนจะได้ฝึกฝนและลองใช้งาน Google Chrome Applications ต่างๆที่เกี่ยวข้องกับการศึกษา
และรายวิชานี้ อันได้แก่ Gliffy Diagrams, Google Drive และ SourceLair ทั้งนี้ ผู้เรียนจะได้ตระหนักถึง
Applications อื่นๆที่เกี่ยวข้องหรือเป็นทางเลือก อันได้แก่ Lucidchart Diagrams, Cacoo-Diagram,
Powerpoint, Daum Equation และอื่นๆ ที่น่าสนใจใน Chrome Web Store
13 | P a g e
สิ่งที่ต้องมีเพื่อใช้ในปฏิบัติกำรนี้
1. Google Chrome Browser และ Google Account ของนักศึกษาเอง
2. Email Account ของนักศึกษาเองที่เป็น @ubu.ac.th
ปฏิบัติกำรส่วนที่ 1 ช่องทางการสื่อสารด้วยเทคโนโลยีสารสนเทศ
Email (อีเมล์)
อีเมล์เป็นช่องทางการสื่อสารที่เป็นมาตรฐานทั่วโลกในการติดต่อ เปรียบได้กับการเขียนจดหมาย ส่วนประกอบที่
สาคัญของการใช้งานอีเมล์ได้แก่ Subject, CC/BCC, Body และภาษาที่ใช้ในการเขียนอีเมล์ ข้อควรระวังสาหรับ
การใช้งานอีเมล์ได้แก่
ตั้งชื่อหัวข้ออีเมล์ให้สั้นกระชับได้ใจความ
CC/Bcc สามารถใช้เพื่อส่งเมล์ฉบับเดียวกันไปที่อื่นได้ในการส่งครั้งเดียว
ทุกอีเมล์ต้องมีส่วนของข้อความในอีเมล์ (Body)
ลงชื่อทุกครั้งที่ใช้งานอีเมล์ในการติดต่อ
อ่านทบทวนอย่างน้อยหนึ่งครั้งก่อนกดส่ง
หากมีการแนบไฟล์ ตรวจสอบทุกครั้งว่าเป็นไฟล์ที่ต้องการส่ง
ตัวอย่างอีเมล์เพื่อการทดสอบส่งไฟล์ไปที่ comprosec3@gmail.com แสดงในรูปที่ 1.6
15 | P a g e
รูปที่ 1.7 แสดงองค์ประกอบต่างๆใน Google Plus Community
16 | P a g e
เพื่อให้สะดวกต่อการเรียกใช้งานแอพพลิเคชั่นต่างๆบน Chrome Browser นักศึกษาควรติดตั้ง Chrome
App Launcher สามารถดาวน์โหลดและติดตั้งได้จาก https://chrome.google.com/webstore/launcher
หน้าตาของ Launcher เป็นดังแสดงในรูปที่ 1.8
18 | P a g e
คำสั่ง จงทาการสร้างผังงานดังแสดงในรูป 1.11 นี้ด้วย Gliffy Diagrams กาหนดให้ save เป็น .png แล้วส่ง
อีเมล์ไปทีเ่ พื่อนที่นั่งอยู่ข้างๆ
19 | P a g e
หากทาการติดตั้ง Gliffy integration ได้ถูกต้อง นักศึกษาจะต้องสามารถสร้าง Gliffy diagrams ได้จาก
หน้าของ Google Drive หาก Google Drive ถูกติดตั้งไว้แล้วนักศึกษาสามารถเรียกใช้งานจาก Shortcut ใน
Launcher ได้เลย หรือสามารถไปที่ https://drive.google.com/ ซึ่งจะถูกพาไปที่ Drive ของ Google
Account ที่กาลังใช้งานอยู่ทันที
20 | P a g e
รูปที่ 1.14 แสดงหน้าของ SourceLair และองค์ประกอบต่างๆ รวมถึงการสร้างโปรแกรมอย่างง่าย
เมื่อทาการรันโปรแกรมที่ SourceLair เขียนขึ้นให้จากการกดที่ลิงค์ดังแสดงในรูป 1.14 แล้วจะปรากฏผล
รันของโปรแกรมในส่วนของ Output ของหน้าต่าง ดังแสดงในรูปที่ 1.15
21 | P a g e
ปฏิบัติกำรส่วนที่ 2 การสร้างกระบวนการแก้ปัญหา (Algorithm) ด้วยผังงานและภาษาเทียม
คำสั่ง อ้างถึงแบบฝึกหัดท้ายบทนา ให้นักศึกษาเขียนภาษาเทียมและวาดผังงานของ
1. การแปลงค่าอุณหภูมิที่เป็นองศาเซลเซียสให้เป็นองศาฟาเรนไฮท์
2. การค้นหาค่าที่น้อยที่สุดในกลุ่มข้อมูลใดๆ
3. การเรียงข้อมูล 4 ตัวใดๆจากน้อยไปหามาก และจากมากไปหาน้อย
22 | P a g e
1309 200 Computer Programming Laboratory
ปฏิบัติกำรที่ 1.2: Using Eclipse
วัตถุประสงค์
1. สามารถใช้โปรแกรม Eclipse ได้
2. สามารถพัฒนาหรือเขียนโปรแกรมด้วยภาษา python อย่างง่ายโดยใช้ Eclipse ได้
3. สามารถ Run โปรแกรมภาษา python บน Eclipse ได้
4. สามารถแก้ไขความผิดพลาดพี้นฐาน (common errors) ที่เกิดเมื่อเขียนโปรแกรมบน Eclipse ได้
ทฤษฎีที่เกี่ยวข้อง
การพัฒนาโปรแกรมคอมพิวเตอร์ ไม่ว่าภาษาใด จะต้องมีองค์ประกอบของการสร้างข้อความ และตัว
แปลภาษาเป็นองค์ประกอบหลัก ปัจจุบันมีการพัฒนาผลิตภัณฑ์ที่มีส่วนของการสร้างข้อความและการแปลภาษา
เข้าด้วยกัน เพื่อความสะดวกของนักพัฒนาโปรแกรม ผลิตภัณฑ์ดังกล่าวเป็นกลุ่มของโปรแกรมคอมพิวเตอร์ที่
เรียกว่า IDE (Integrated Development Environment) ข้อดีของการใช้งาน IDE มีหลายประการ ประการแรก
คือ ในส่วนของการสร้างข้อความ หรือส่วนประกอบที่เรียกว่า Text Editor นั้น จะมีการเช็คไวยากรณ์ระหว่างการ
สร้างข้อความไปด้วย โดยใช้สีที่แตกต่างในแต่ละคาที่พิมพ์ลงไป มีการแนะนาคาที่พิมพ์ให้ ตามหลักไวยากรณ์ ทา
ให้เป็นการสะดวกต่อผู้พัฒนาโปรแกรม และทาให้มีข้อผิดพลาดน้อยลงเมื่อทาการแปลภาษา ประการที่สองที่เป็น
ข้อดีของการใช้งาน IDE คือ ตัวผลิตภัณฑ์ IDE จะจัดการในเรื่องที่อยู่ของไฟล์ที่เกี่ยวข้องให้โดยอัตโนมัติ โดยมีการ
กาหนดที่อยู่ของไฟล์ที่เกี่ยวข้องกับโปรแกรมที่พัฒนาอยู่อย่างเป็นระเบียบ ประการสุดท้ายที่ทาให้ IDE เป็นที่นิยม
ใช้โดยนักพัฒนาโปรแกรมคอมพิวเตอร์เป็นอย่างมากคือ บาง IDE นั้นสามารถเพิ่มตัวแปลภาษาได้หลากหลาย เมื่อ
ต้องเปลี่ยนภาษาที่ใช้ นักพัฒนาโปรแกรมก็ไม่ต้องไปฝึกใช้ IDE ตัวใหม่ แต่สามารถลงตัวแปลภาษาที่ต้องการเพิ่ม
เข้าไปได้ และทาการใช้งานได้ทันที ตัวอย่างของ IDE ที่เพิ่มตัวแปลภาษาที่หลากหลายได้ ได้แก่ Eclipse,
CodeBlocks, bloodshed, NetBeans, MS Visual Studio Express, CodeLite เป็นต้น การเลือกใช้ IDE ที่
เหมาะสมควรจะเลือก IDE ที่เป็น cross platform และ Open source คือสามารถใช้งานบนระบบปฏิบัติการที่
แตกต่างกันได้ ไม่ว่าจะเป็น Windows, Unix หรือ OS X และเป็น source code แบบเปิด ที่ให้โอกาสนักพัฒนา
โปรแกรม สามารถนาไปแก้ไขเพิ่มเติมตัวเลือกที่ต้องการได้อย่างเสรี
ในปฏิบัติการนี้ จะเป็นการแนะนา IDE ที่ใช้พัฒนาโปรแกรมภาษา python ที่ชื่อว่า Eclipse ซึ่งเป็น IDE
แบบพื้นฐานที่ใช้งานง่าย เหมาะสาหรับผู้พัฒนาโปรแกรมระดับเริ่มต้นที่อาจจะยังไม่เคยพัฒนาโปรแกรม
คอมพิวเตอร์มาก่อน เป็น Open source ไม่ต้องจ่ายค่าโปรแกรมในการใช้งาน Editor หรือส่วนแก้ไขของ
Eclipse สามารถแสดงอักษรคาสั่งและข้อความส่วนต่างๆ ให้เห็นเด่นชัด โดยการแยกเป็นสีต่างๆ จึงช่วยให้
ตรวจสอบโปรแกรมได้ง่ายขึ้น มี suggestion และ auto complete ในการเติมคาให้สมบูรณ์ สาหรับ keywords
ต่างๆ ทาให้สามารถเขียนโปรแกรมได้เร็วขึ้น ส่วนของ warning และ errors มีการแสดงสีสันชัดเจนและสะดวก
แก่การเข้าไปทาการแก้ไข อีกประการหนึ่ง Eclipse เป็น cross platform IDE ทาให้สามารถบันทึก source
23 | P a g e
code จาก platform หนึ่งไปพัฒนาต่อบนอีก platform หนึ่งได้ สะดวกแก่ผู้ใช้ที่ใช้ระบบปฏิบัติการอื่นที่ไม่ใช่
Windows อันได้แก่ Mac OS X หรือ Linux based OS
กำรพัฒนำโปรแกรมด้วยภำษำ python
ในการเขียนโปรแกรมด้วยภาษา python นั้นจะต้องมีองค์ประกอบในการทางาน 3 ส่วนที่ช่วยในการ
พัฒนางาน คือ
1. องค์ประกอบในการสร้างข้อความ (Text Editor)
2. องค์ประกอบตัวแปลภาษา python (python interpreter) ประกอบไปด้วยตัวแปลภาษาและ
เครื่องเสมือน (Virtual Machine)
3. ไลบรารี่
24 | P a g e
รูปที่ 1.16 องค์ประกอบของการพัฒนาโปรแกรม python
(http://opensourceforgeeks.blogspot.com.au/2015/10/how-python-works.html)
Programming Errors
ข้อผิดพลาดในโปรแกรม หรือ error มีอยู่ 3 ประเภทได้แก่ Syntax errors, Runtime errors และ
Logic errors
Syntax errors คือการเขียนโปรแกรมผิดไวยากรณ์ของภาษาเช่น ไม่มี : ปิดท้าย while, if statements,
ไม่มี “ ปิดข้อความ หรือ ไม่มี ‘ ปิดอักขระ ข้อผิดพลาดเหล่านี้จะปรากฏขึ้นในขั้นตอนของการเขียนโปรแกรมใน
Eclipse ซึง่ จะมีการแจ้งเตือนในขณะที่กาลังทาการพิมพ์ code อยู่
Runtime errors จะไม่ปรากฏระหว่างการเขียนโปรแกรมหรือใน Source code แต่จะเกิดระหว่างการ
รันโปรแกรม ซึ่งอาจทาให้โปรแกรมปิดตัวลงอย่างไม่คาดคิด Eclipse จะขึ้นข้อความแจ้งว่า error เนื่องจากอะไร
ตัวอย่างของข้อผิดพลาดประเภทนี้ได้แก่ การหารด้วย 0 ซึ่งทาให้เกิดการหาค่าไม่ได้ หรือการนาผลลัพท์จากการ
คานวณที่เป็นตัวเลขไปเก็บไว้ในตัวแปรที่เป็นสตริง ตัวอย่างของข้อผิดพลาดชนิดนี้ได้แก่ นาจานวนเต็มหารด้วย
จานวนเต็ม แต่คาดหวังคาตอบที่เป็นทศนิยม (Listing 1.3)
Logic errors เป็นข้อผิดพลาดที่อันตรายที่สุดในการเขียนโปรแกรม ยากที่จะค้นพบและลาบากในการ
แก้ไข ข้อผิดพลาดชนิดนี้เกิดจากตรรกะ และความรู้พื้นฐานของตัวผู้พัฒนาโปรแกรมเอง โดยเฉพาะความรู้พื้นฐาน
ทางคณิตศาสตร์ที่เป็นหัวใจสาคัญของการเขียนโปรแกรม หรือ การคานวณผิดขั้นตอน หรือการไม่ใส่วงเล็บในการ
คานวณ ทาให้ลาดับความสาคัญของการคานวณผิดพลาด
Listing 1.3 ShowLogicErrors\main.py
25 | P a g e
if __name__ == '__main__':
pass
print("Welcome to my program")
print("35 Celsius is "+ (9/5)*35+32)
26 | P a g e
กำรใช้งำนโปรแกรม Eclipse
ส่วนประกอบของโปรแกรม Eclipse แบ่งออกเป็น 4 ส่วนดังแสดงในรูปที่ 1.17
27 | P a g e
กำรสร้ำงโปรเจ็คใหม่
เมนู File เป็นคาสั่งที่เกี่ยวกับการจัดการไฟล์และโปรเจ็ค เช่น การสร้าง เปิด หรือบันทึกไฟล์ หรือโปร
เจ็ค สามารถสร้างโปรเจ็คใหม่ได้สองวิธีคือ เลื่อนเมาส์ไปวางบนสัญลักษณ์แผ่นกระดาษที่มีเครื่องหมายบวก ดัง
แสดงในรูปที่ 1.18 หรือ เลือกที่เมนู File>New ผลที่ได้คือ pull down menu ดังแสดงในรูปที่ 1.19
รูปที่ 1.19 แสดง pull down menu เมื่อคาสั่ง New file ถูกเลือก
เมื่อเลือก PyDev Project เพื่อสร้างโปรเจ็คใหม่สาหรับการเขียนโปรแกรม Python จะปรากฏหน้าต่าง
รายละเอียดของโปรเจ็คขึ้นมา ให้ทาการตั้งชื่อโปรเจ็คของตนเอง โดยให้สังเกตที่เส้นทางโฟลเดอร์ที่ทาการเก็บไฟล์
โปรเจ็คดังกล่าว ให้เลือกโฟลเดอร์ที่นักศึกษาสร้างขึ้นเองเท่านั้น การตั้งชื่อโปรเจ็ค ให้ทาการตั้งให้สื่อถึงสิ่งที่อยู่ใน
โปรเจ็ค และผู้เป็นเจ้าของโปรเจ็คดังกล่าว ตาแหน่งของ Project สามารถเลือกด้วยการ untick default และ
28 | P a g e
Browse ตาแหน่งที่ต้องการเก็บ Project ในการเขียนโปรแกรมภาษา Python ในรายวิชานี้ ให้เลือก Project
type เป็น Python และเลือก Grammar เป็น 3.0-3.5 ดังแสดงในรูปที่ 1.20
29 | P a g e
จะได้โปรเจ็คใหม่ตามที่ตั้งชื่อไว้ที่หน้าต่าง PyDev Package Explorer ด้านขวามือของหน้าต่าง Eclipse
ดังแสดงในรูปที่ 1.22
32 | P a g e
จะได้ไฟล์ main.py ปรากฏขึ้นภายใต้ src folder ที่หน้าต่าง Package Explorer ทางด้านซ้ายมือ และ
ไฟล์ main.py จะเปิดอยู่ที่หน้าต่าง Editor ดังแสดงในรูปที่ 1.28
คำอธิบำย HelloWorld\main.py
ในส่วนนี้เป็นการอธิบายโปรแกรมตัวอย่างคร่าวๆ ณ เวลานี้ขอให้ผู้เรียนเก็บความสงสัยบางอย่างไว้ก่อน
หลังจากที่ได้เรียนต่อไปเรื่อยๆ บทเรียนและปฏิบัติการแต่ละครั้งจะตอบปัญหาและข้อสงสัยต่างๆของผู้เรียนไป
เรื่อยๆ
Listing 1.4 HelloWorld\main.py
1. '''
2. Created on 23 Jul 2016
3. @author: Araya
4. '''
6. if __name__ == '__main__':
7. pass
8. print("Hello World")
9. print(sqrt(25))
34 | P a g e
multiple lines comments
'''
บรรทัดที่ 8
print("Hello World")
ข้อสังเกตุสาหรับคนที่เคยเขียนโปรแกรมภาษาอื่นๆมาก่อน
Python เป็นภาษาที่ใกล้เคียงกับภาษามนุษย์มากที่สุด และลดรายละเอียดต่างๆในเรื่องของไวยากรณ์ลง
ไปมากเมื่อเทียบกับภาษาเขียนโปรแกรมอื่นๆ ซึ่งมีข้อแตกต่างคร่าวๆดังนี้
1. ไม่มี statement สาหรับเริ่มต้นหรือปิดท้ายไฟล์โปรแกรมหลัก
2. ไม่มีสัญลักษณ์สาหรับปิดท้ายชุดคาสั่ง
3. หากเป็นชุดคาสั่งเงื่อนไข จะใช้สัญลักษณ์พิเศษปิดบรรทัด และใช้ย่อหน้าในบรรทัดถัดไปเพื่อให้ทราบว่า
เป็นชุดคาสั่งที่เกี่ยวข้องกัน
4. ข้อความ ปิดด้วย single quote หรือ double quote มีค่าเท่ากัน
5. เป็นภาษาของการเขียนโปรแกรมเชิงวัตถุล้วนๆ
6. ไม่ต้องมีการกาหนดชนิดข้อมูลของตัวแปร
7. ไม่จาเป็นต้องประกาศตัวแปรก่อนใช้งาน
8. การอ้างอิงเป็นการอ้างแบบ reference ทั้งหมด ไม่มีการอ้างแบบ value
9. ชื่อตัวแปรเป็นลักษณะของการติดป้าย ไม่ใช่กล่องเก็บค่า เหมือนภาษา C/C++
อนึ่งข้อแตกต่างอื่นๆก็อาจจะมีให้เห็นในบทท้ายๆของเอกสารนี้
36 | P a g e
ปฏิบัติกำรส่วนที่ 1 กำรสร้ำงโฟล์เดอร์ หรือไดเรคทอรี่
ในห้องปฏิบัติการ หากนักศึกษาไม่ได้นาคอมพิวเตอร์พกพาของตนเองมาใช้งาน และต้องใช้งานเครื่องของ
สานักคอมพิวเตอร์และเครือข่ายซึ่งเป็นเครื่องสาธารณะ นักศึกษาพึงตระหนักถึงการสร้างที่เก็บข้อมูลของตนเอง
และความไม่ปลอดภัยของข้อมูล เนื่องจากข้อมูลของนักศึกษาอาจถูกลบออกไปจากเครื่องเมื่อใดก็ได้ เพื่อให้การ
เก็บข้อมูลเป็นไปอย่างเหมาะสมนักศึกษาโปรดปฏิบัติตามข้อกาหนดนี้
1. สร้างโฟลเดอร์ที่ไดรฟ์อื่นที่ไม่ใช่ไดรฟ์ C:
2. ตั้งชื่อโฟลเดอร์ว่า ComProXXXX เมื่อ XXXX คือรหัสนักศึกษาสี่ตัวสุดท้ายของตนเอง
3. เก็บงานเขียนโปรแกรมของตนเองไว้ในโฟลเดอร์นี้เท่านั้น
4. ระหว่างเขียนโปรแกรมให้ทาการ save ไฟล์อย่างสม่าเสมอ
วิธีการสร้างโฟลเดอร์บน Windows Explorer แสดงในรูปที่ 1.29
37 | P a g e
รูปที่ 1.30 แสดงขั้นตอนการปิดโปรเจ็คที่ไม่เกี่ยวข้องที่เปิดอยู่
3. ให้ทาการสร้างโปรเจ็คใหม่ โดยโปรเจ็คนี้ จะให้นักศึกษาทาการแสดงชื่อ นามสกุลของตนเอง รวมทั้งรหัส
นักศึกษา และภาควิชาที่ศึกษาอยู่ ออกทางหน้าจอ ให้นักศึกษาทาตามขั้นตอนที่ได้อธิบายไว้ในส่วนของ
ทฤษฏีที่เกี่ยวข้องในการสร้างโปรเจ็คใหม่ โดยตั้งชื่อโปรเจ็คให้สอดคล้องกับสิ่งที่โปรเจ็คกระทา เช่น
MyIntroduction, IntroduceMyself เป็นต้น หลังจากสร้างโปรเจ็คเสร็จแล้ว ก่อนที่จะทาขั้นตอนถัดไป
หน้าจอของนักศึกษาจะต้องได้ไฟล์ main.py ที่มี code เหมือนดังแสดงในรูปที่ 1.28 ทุกประการ
4. เมื่อได้ไฟล์ main.py แล้ว สิ่งแรกที่นักศึกษาต้องฝึกฝนและเรียนรู้คือการสั่งให้ Eclipse รันโปรแกรมของ
ตนเอง Eclipse มีคาสั่งที่ใช้ในการรันโปรแกรม คือ Run As แล้วเลือกรันแบบ Python Run หรือ unit
test run คาสั่งดังกล่าวสามารถเรียกได้จากเมนูบาร์ ดังแสดงในรูปที่ 1.31 หรือกดปุ่มรันที่เป็นสัญลักษณ์
play
38 | P a g e
รูปที่ 1.31 แสดงการเรียกคาสั่ง Compile, Build and run
5. ให้นักศึกษาเรียก Run As >> Python Run และสังเกตุผลรันที่ได้จากหน้าต่าง Console ที่ส่วนล่างของ
หน้าต่าง Eclipse โดยผลรันทีไ่ ด้ควรจะมีลักษณะดังรูปที่ 1.32 ทั้งนี้ผลรันที่เสร็จสิ้นโปรแกรมจะมีคาว่า
terminated อยู่
39 | P a g e
6. ให้นักศึกษาฝึกฝนและทาการแปลและรันโปรแกรมจนมั่นใจ แล้วทาการแก้ไขโปรแกรม เพื่อให้ได้ผลรันดัง
แสดงในรูปที่ 1.33 เมื่อ XXX YYY คือชื่อและนามสกุลของนักศึกษา 1234567 คือรหัสประจาตัวของ
นักศึกษา และให้แสดงภาควิชาที่นักศึกษาสังกัดอยู่ ซึ่งควรจะเป็นหนึ่งในภาควิชาต่างๆดังนี้
Electrical engineering Chemical Engineering Civil Engineering
Industrial Engineering Mechanical Engineering
40 | P a g e
Listing 1.5 HelloWorld\main.py
'''
Created on 23 Jul 2016
@author: Araya
'''
if __name__ == '__main__':
pass
print("Hello\nWorld\t! ")
ch=input()
รับข้อมูลหลังจากแสดงผลแล้ว
.............................................................................................................................
.............................................................................................................................
41 | P a g e
แบบฝึกหัด
1) เขียนโปรแกรมภาษา python แนะนาข้อมูลส่วนตัวของนักศึกษา โดยมีข้อมูลดังนี้ ชื่อ-นามสกุล, รหัส
นักศึกษา, สาขาที่กาลังศึกษา, ชั้นปีที่, เกรดเฉลี่ยรวม, เพศ, อายุ ให้แสดงผลดังนี้ภาพต่อไปนี้
Name : Computer Programming
ID : 5413500602
Department : Electrical Engineering
GPA : 3.75
Sex : Male
Age : 20
1.2×0.1+3.3×0.3
2) จงเขียนโปรแกรม เพื่อแสดงผลการคานวณ
0.09+0.001
3) จงวาดผังงาน (flowchart) สาหรับการนับตัวอักษร ‘e’ ที่อยู่ในประโยคภาษาอังกฤษใดๆ
4) จงเขียนภาษาเทียม (pseudo code) อธิบายขั้นตอนในการย้ายแผ่นดิสก์ทั้งหมดออกจากหลักที่หนึ่งไปสู่
หลักที่สามดังภาพข้างล่างนี้ โดยมีกฏว่าให้ย้ายออกได้ทีละแผ่น และแผ่นที่อยู่ข้างล่างจะต้องใหญ่กว่าแผ่น
ที่อยู่ข้างบนเสมอ
42 | P a g e