PowerPoint - ee.eng.cmu.ac.th

Download Report

Transcript PowerPoint - ee.eng.cmu.ac.th

ENGR201 – important information
• เวปไซต์
• http://www.ee.eng.cmu.ac.th/~kasin
• http://mango.cpe.eng.cmu.ac.th
• วันสอบ
• Midterm: 8 มีนาคม 2558 12.00-15.00 น.
• Final:
15 พฤษภาคม 2558 12:00-15:00 น.
• ประเมิณผล
• Quiz:
10%
• Midterm:
45%
• Final:
45%
1
ENGR201 Website
• How to access ENGR201 (259201) Course Website
• http://mango.cpe.eng.cmu.ac.th
• Go to Miscellaneous section
2
ENGR201 Website
• How to access ENGR201 (259201) Course Website
• http://mango.cpe.eng.cmu.ac.th/course/index.php?categoryid=1
• Go to ENGR201
3
ENGR201 Website
• How to access ENGR201 (259201) Course Website
• Log in as a guest
4
ENGR201 Website
• How to access ENGR201 (259201) Course Website
5
Week 1
Introduction to Computer
Programming and IDE
Objectives
• แนะนาเกีย่ วกับภาษาคอมพิวเตอร์
• ชนิดของภาษาคอมพิวเตอร์
• เครือ่ งมือในการพัฒนาโปรแกรมคอมพิวเตอร์
• IDE
• เริม่ ต้นเขียน C++ โปรแกรมด้วย Dev-C++
• การแปลงภาษา และการสร้างโปรแกรม (compile and build)
• การสังโปรแกรมท
่
างาน (run)
• ตัวอย่างข้อผิดพลาดในการเขียนโปรแกรม
• การตรวจสอบการทางาน (debugging)
7
Programming Language Overview
• เราใช้ภาษาคอมพิวเตอร์ (Programming languages) ในการอธิบายสิง่
ทีต่ อ้ งการให้เครือ่ งคอมพิวเตอร์ทางาน
• เราสามารถแบ่งประเภทของภาษาคอมพิวเตอร์ ออกกว้างๆได้เป็ น
• ภาษาระดับสูง (High Level)
• เป็ นภาษาทีม่ นุ ษย์ทาความเข้าใจได้ไม่ยาก
• ต้องผ่านการแปลงภาษา (compile) ให้เป็ นภาษาทีเ่ ครือ่ งคอมพิวเตอร์เข้าใจ
จึงจะทางานได้
• ได้แก่ C, C++, Java, Python
• ภาษาระดับล่าง (Low Level)
• ไม่จาเป็ นต้องผ่านการแปลงภาษาก็สามารถทางานได้
• ได้แก่ assembly และภาษาเครือ่ ง (machine code) ซึง่ คอมพิวเตอร์เข้าใจ
ได้ทนั ที
• เป็ นภาษาทีท่ างานได้บนระบบคอมพิวเตอร์ทค่ี อ่ นข้างเฉพาะเจาะจง
• ผูกกับชนิดของ CPU และ Hardware อื่นๆทีป่ ระกอบกันเป็ นเครือ่ งคอมพิวเตอร์
8
Programming Language Overview
• เครือ่ งมือในการพัฒนาโปรแกรมคอมพิวเตอร์
• Text editor
• โปรแกรมทีใ่ ช้ในการสร้างไฟล์อกั ขระ (text file) เพือ่ ใช้เขียนโค้ดในภาษาคอมพิวเตอร์
ต่างๆ แล้วบันทึกเป็ นไฟล์นามสกุลสาหรับโค้ดในภาษาทีต่ อ้ งการ (.c, .cpp, .java, .py, …)
• Notepad (windows), TextEdit (mac), gedit (linux)
• Compiler และ Interpreter
• โปรแกรมสาหรับแปลงโค้ดภาษาคอมพิวเตอร์ (high level) ทีต่ อ้ งการ ให้กลายเป็ น
โปรแกรมในรูปแบบของภาษาเครือ่ ง (machine code) ทีพ่ ร้อมทางาน
• cl (VC++), gcc (GNU C), g++ (GNU C++), java (Oracle, OpenJDK), Python
• Debugger
• โปรแกรมทีใ่ ช้ในการทดสอบหรือตรวจสอบการทางานของโปรแกรมทีผ่ า่ นการแปลงภาษา
แล้ว สามารถกาหนดให้โปรแกรททางานทีละคาสังเพื
่ อ่ ตรวจดูความถูกต้องของผลในแต่ละ
ขันตอนได้
้
9
Programming Language Overview
• Integrated Development Environment (IDE)
• รวบรวมเครือ่ งมือต่างๆทีจ่ าเป็ นในการพัฒนาโปรแกรมคอมพิวเตอร์
• Text Editor, Compiler/Interpreter, Debugger, …
• มีการกาหนดค่าต่างๆทีเ่ หมาะสมในการพัฒนาโปรแกรมให้อตั โนมัติ
• มีสว่ นติดต่อผูใ้ ช้ทแ่ี บบกราฟิก (GUI) สะดวกในการใช้งาน
• IDE บางตัวสามารถใช้พฒ
ั นาโปรแกรมคอมพิวเตอร์ได้หลายภาษา
• มีทงั ้ แบบเสีย (commercial) และไม่เสียค่าใช้จา่ ย (freeware, open source)
• Eclipse IDE
• ไม่เสียค่าใช้จา่ ย ใช้พฒ
ั นาโปรแกรมภาษา Java, C++, … (อีกมากมาย)
• ใช้ได้บน Windows, Linux, Mac OS X
• Code::Blocks
• ไม่เสียค่าใช้จา่ ย ใช้พฒ
ั นาโปรแกรมภาษา C, C++ และ Fortran
• ใช้ได้บน Windows, Linux, Mac OS X
10
Example of IDE
• Eclipse
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunar
11
Example of IDE
• Code::Blocks
http://www.codeblocks.org
12
Example of IDE
• Visual Studio
13
Example IDE
• Dev-C++
14
Dev-C++
• เครือ่ งมือหรือสภาพแวดล้อม (IDE) ทีใ่ ช้อา้ งอิงสาหรับการเรียนการสอน
• Integrated Development Environment (IDE)
• สามารถใช้ในการพัฒนาโปรแกรม ด้วยภาษาคอมพิวเตอร์ได้หลายภาษา
• C++, C#, Visual Basic
• ไม่เสียค่าใช้จา่ ยในการใช้งาน
15
Dev-C++
หน้าต่างหลักของ Dev-C++ ทีไ่ ม่มกี ารแสดงข้อมูล Start Page
16
Start Programming C++
• จาก File เมนู เลือก New >> Source File หรือ Crtl+N
17
Start Programming C++
• เริม่ ต้นเขียน code
18
Start Programming C++
• บันทึก code ทีเ่ ขียนในไฟล์ดว้ ยปุม่
หรือ Crtl+S
19
Compiling a C++ Program
• การแปลโค้ดให้เป็ นภาษาคอมพิวเตอร์ สามารถทาได้โดยการเลือก
Execute >> Compile หรือ F9 หรือเลือกปุม่
20
Compiling a C++ program
• หน้าจอด้านล่างแสดงสถานะของการ compile และบ่งชีค้ วามผิดพลาด
ของโค้ด หากไม่มขี อ้ ผิดพลาดจานวน Errors และ Warnings จะเป็ น
ศูนย์
จำนวนกำรแจงเตื
้ อน
(Warnings)
จำนวนควำมผิดพลำด
(Errors)
เวลำทีใ่ ช้
(Compilation time)
21
Compiling a C++ Program
• หากเกิดความผิดพลาดใน code (เช่น หากลบคาว่า cout ตัวแรก
ออกไป) ตาแหน่งทีเ่ กิดความผิดพลาดจะถูก highlight และหน้าต่าง
ส่วนล่างจะเสนอแนวทางแก้ไข code ให้ถูกต้อง
1
2
22
Structure of a C++ Program
Preprocessor
Main function declaration
Main function definition
Comments
23
What could go wrong?
• CASE #1 พิมพ์ตกเครือ่ งหมาย semicolon ‘;’ ในบรรทัดที่ 12
หน้ำตำงระบุ
ควำมผิดพลำดทีเ่ กิด
่
และแนวทำงแกไข
้
24
What could go wrong?
• CASE #2
พิมพ์คาสัง่ cout ท้ายเป็ น count ในบรรทัดที่ 8
หน้ำตำงระบุ
ควำมผิดพลำดทีเ่ กิด
่
และแนวทำงแกไข
้
25
What could go wrong?
• CASE #3
พิมพ์ชอ่ื ตัวแปร (variable) จาก age เป็ น aeg ในบรรทัดที่ 9
หน้ำตำงระบุ
ควำม
่
ผิดพลำดทีเ่ กิด
และแนวทำงแกไข
้
26
What could go wrong?
• CASE #4
พิมพ์ชอ่ื Header ไฟล์ จาก iostream เป็ น iostrem ในบรรทัดที่ 1
หน้ำตำงระบุ
ควำม
่
ผิดพลำดทีเ่ กิด
และแนวทำงแกไข
้
27
What could go wrong?
• CASE #5
ขาดเครือ่ งหมาย วงเล็บปีกกาเปิด ‘ { ‘ ในบรรทัดที่ 5
28
Run a Program
• Run a Program
• สังให้
่ โปรแกรมทีผ่ า่ นการ Build ทางานโดยเลือก Execute >> Run หรือ F10
หรือเลือกปุม่
• ผลลัพท์ทไ่ี ด้จากคาสังจะแสดงหน้
่
าจอการทางานของโปรแกรม
29
Run a Program
• โปรแกรมสามารถรับ input จากผูใ้ ช้และแสดงผล output ออกมาทาง
หน้าจอ
• เมือ่ พิมพ์ 20 แล้วกด enter จะได้ output ดังภาพประกอบดังนี้
หมายเหตุ สาหรับ Dev-C++ version ต่ากว่า 5.8.3 หน้าจอการแสดงผล output
จะถูกปิดอัตโนมัตทิ นั ทีหลังการทางาน
30
Start a Program
• Start Debugging
• เป็ นการสังให้
่ โปรแกรมทางานแบบแสดงขัน้ ตอนการทางานทีละขัน้
• ก่อนเริม่ การทางานในโหมดนี้ เราต้องระบุบรรทัดทีต่ อ้ งการให้โปรแกรมหยุดการ
ทางานชัวคราว
่
โดยการคลิกเลือกหน้าบรรทัดทีต่ อ้ งการ
• สามารถคลิกเลือกได้มากกว่า 1 บรรทัด
31
Start a Program
• Start Debugging (cont.)
• เริม่ ทางานในโหมด debug ด้วยคาสัง่ Execute >> Debug หรือ F5 หรือกดเลือก
ปุม่
เมือ่ เริม่ การทางานในโหมดนี้ โปรแกรมจะเริม่ ทางานแล้วไปหยุดที่
บรรทัดแรกทีเ่ ราเลือกให้หยุดการทางานชัวคราว
่
32
Start a Program
• Start Debugging (cont.)
• การสังให้
่ โปรแกรมทางานต่อไป จะสามาถทาได้โดยอาศัยปุม่ ต่างๆบน
Debug Toolbar ส่วนล่างของหน้าจอ
33
Start Program
• Start Debugging (cont.)
• การสังให้
่ โปรแกรมทางานต่อไป จะสามาถทาได้โดยอาศัยปุม่ ต่างๆบน
Debug Toolbar ส่วนล่างของหน้าจอ เช่น
ใช้เมือ่ ต้องการให้ทางาน (execute) คาสังในบรรทั
่
ดปจั จุบนั และไปหยุดรอ
ทีบ่ รรทัดถัดไป
ใช้เมือ่ ต้องการให้ทางานคาสั ่งปจั จุบนั แล้วไปหยุดรอ ณ บรรทัดต่อไปทีเ่ รา
เลือกให้หยุด
ใช้เมือ่ ต้องการหยุดการทางานโปรแกรมในโหมดการทางานนี้
34
Start Program
• Start Debugging (cont.)
• เมือ่ มีการใช้ Next line ในบรรทัดที่ 7 จะทาให้โปรแกรมทางานบรรทัดดังกล่าว
แล้วจึงหยุดรออยูท่ ต่ี น้ บรรทัดที่ 8
35
Summary
• วิชานี้ใช้ Dev-C++ (version 5.8.3) เป็ นเครือ่ งมือ (IDE) ในการเขียนโปรแกรม
ด้วย C++
• ขัน้ ตอนการเขียน code ทาได้ดงั ต่อไปนี้
• สร้าง source file ใหม่จาก File >> New… >> Source file หรือ Ctrl+N
• แปลโค้ดให้เป็ นภาษาคอมพิวเตอร์ดว้ ยการ Compile โดยการเลือก Execute >> Compile
หรือ F9 หรือเลือกปุม่
• ส่งให้โปรแกรมทางานแบบปกติดว้ ยคาสัง่ Run โดยการเลือก Execute >> Run หรือ F10
หรือเลือกปุม่
• ส่งให้โปรแกรมทางานทีละขัน้ ตอนด้วยคาสัง่ Debug โดยการเลือก Execute >> Run หรือ
F10 หรือเลือกปุม่
เพือ่ ประโยชน์ในการตรวจสอบความถูกต้องของโปรแกรมทีละส่วน
36
Summary
• C++ Commands:
• cout - ใช้แสดงข้อความ และค่าต่างๆออกทางหน้าจอ
• ข้อความต้องอยูภ
่ ายใต้เครือ่ งหมายคาพูด “ ” เสมอ
• ใช้ประกอบกับเครือ่ งหมาย ‘<<‘ ซึง่ สามารถใช้เพือ่ นาค่า หรือข้อความอื่นๆมาเชือ่ มต่อ
กัน (concatenation)
• เมือ่ แทรก ‘\n’ เข้าไปในข้อความ จะทาให้มกี ารขึน้ บรรทัดใหม่ (newline)
• เมือ่ แทรก ‘\t’ เข้าไปในข้อความ จะทาให้มกี ารแท็บ (tab)
• เมือ่ ใช้คาสัง่ endl ร่วมด้วย จะทาให้มกี ารขึน้ บรรทัดใหม่ (newline)
• cin - ใช้ในการนาข้อมูลทีผ่ ใู้ ช้ป้อนผ่านคียบ
์ อร์ด เข้ามาเก็บไว้ทต่ี วั แปร
• ใช้ประกอบกับเครือ่ งหมาย ‘>>’ เพือ่ ชีไ้ ปยังตัวแปรทีต่ อ้ งการใช้เก็บค่า เช่น
int age, budget;
cin >> age;
//store input from kyb. to ‘age’
cin >> budget;
//store (another) input from kyb. to ‘budget’
37
Useful Links
• C++ Tutorial
• อ้างอิงการเกีย่ วกับโครงสร้างภาษา และการใช้งานคาสังต่
่ างๆ
• มีประโยชน์ต่อการทาแบบฝึกหัด การทดลอง และการเตรียมสอบ
• http://www.cplusplus.com/doc/tutorial/
• Dev-C++
• สาหรับดาวน์โหลด
• http://sourceforge.net/projects/orwelldevcpp/
38
Labs
• Lab 1.1 - ให้นศ.ทดลอง Debug โปรแกรมตัวอย่างโดย
• ระบุให้โปรแกรมหยุดการทางานรอ ณ บรรทัดที่ 5, 7, 11, 13
• ให้ Step Over ไปจนกว่าโปรแกรมจะจบการทางาน
• พิจารณาการทางาน และการแสดงผลการทางาน
• Lab 1.2 - ให้นศ.ทดลอง Debug โปรแกรมตัวอย่างโดย
• ระบุให้โปรแกรมหยุดการทางานรอ ณ บรรทัดที่ 7, 11, 13
• ให้ Continue ไปจนกว่าโปรแกรมจะจบการทางาน
• พิจารณาการทางาน และการแสดงผลการทางาน
39
Labs
• Lab 1.3 - ให้นศ. เขียนโปรแกรมเพือ่ ให้โปรแกรมแสดงผลลัพธ์ดงั ที่
กาหนดด้านล่าง
• นศ. สามารถเขียนโปรแกรมใหม่น้ีโดยการแก้ไขหรือเขียนทับไฟล์ตวั อย่าง
หรือสามารถสร้างโซลูชนั ใหม่เพือ่ แก้ปญั หานี้
40