400 likes | 517 Views
Week 1 Introduction to Computer Programming and IDE. Objectives. แนะนำเกี่ยวกับภาษาคอมพิวเตอร์ ชนิดของภาษาคอมพิวเตอร์ เครื่องมือในการพัฒนาโปรแกรมคอมพิวเตอร์ IDE เริ่มต้นเขียน C++ โปรแกรมด้วย VS Express 2013 การแปลงภาษา และการสร้างโปรแกรม (compile and build) การสั่งโปรแกรมทำงาน (run)
E N D
Week 1 Introduction to Computer Programming and IDE
Objectives • แนะนำเกี่ยวกับภาษาคอมพิวเตอร์ • ชนิดของภาษาคอมพิวเตอร์ • เครื่องมือในการพัฒนาโปรแกรมคอมพิวเตอร์ • IDE • เริ่มต้นเขียน C++ โปรแกรมด้วย VS Express 2013 • การแปลงภาษา และการสร้างโปรแกรม (compile and build) • การสั่งโปรแกรมทำงาน (run) • ตัวอย่างข้อผิดพลาดในการเขียนโปรแกรม • การตรวจสอบการทำงาน (debugging)
Programming Language Overview • เราใช้ภาษาคอมพิวเตอร์ (Programming languages) ในการอธิบายสิ่งที่ต้องการให้เครื่องคอมพิวเตอร์ทำงาน • เราสามารถแบ่งประเภทของภาษาคอมพิวเตอร์ ออกกว้างๆได้เป็น • ภาษาระดับสูง (High Level) • เป็นภาษาที่มนุษย์ทำความเข้าใจได้ไม่ยาก • ต้องผ่านการแปลงภาษา (compile) ให้เป็นภาษาที่เครื่องคอมพิวเตอร์เข้าใจ จึงจะทำงานได้ • ได้แก่ C, C++, Java, Python • ภาษาระดับล่าง (Low Level) • ไม่จำเป็นต้องผ่านการแปลงภาษาก็สามารถทำงานได้ • ได้แก่ assembly และภาษาเครื่อง (machine code)ซึ่งคอมพิวเตอร์เข้าใจได้ทันที • เป็นภาษาที่ทำงานได้บนระบบคอมพิวเตอร์ที่ค่อนข้างเฉพาะเจาะจง • ผูกกับชนิดของ CPU และ Hardware อื่นๆที่ประกอบกันเป็นเครื่องคอมพิวเตอร์
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 • โปรแกรมที่ใช้ในการทดสอบหรือตรวจสอบการทำงานของโปรแกรมที่ผ่านการแปลงภาษาแล้ว สามารถกำหนดให้โปรแกรททำงานทีละคำสั่งเพื่อตรวจดูความถูกต้องของผลในแต่ละขั้นตอนได้
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
Example of IDE • Eclipse http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunar
Example of IDE • Code::Blocks http://www.codeblocks.org
VS Express 2013 for Desktop • เครื่องมือหรือสภาพแวดล้อม (IDE) ที่ใช้อ้างอิงสำหรับการเรียนการสอน • Integrated Development Environment (IDE) • สามารถใช้ในการพัฒนาโปรแกรม ด้วยภาษาคอมพิวเตอร์ได้หลายภาษา • C++, C#, Visual Basic • ไม่เสียค่าใช้จ่ายในการใช้งาน • http://www.microsoft.com/en-us/download/details.aspx?id=40787
VS Express 2013 for Desktop หน้าต่างหลักของ VS ที่แสดงข้อมูล Start Page
VS Express 2013 for Desktop หน้าต่างหลักของ VS 2013 ที่ไม่มีการแสดงข้อมูล Start Page
Setting default view to Empty environment • เลือก Tools ที่แถบเมนูบาร์ด้านบน เมื่อมีตัวเลือกลงมาให้เลือก Options… • ในหน้าต่าง Options… ด้านซ้ายให้เลือก Startup
Start Programming C++ • จากFileเมนู เลือก New => Project… • เลือกVisual C++ Template ในหน้าต่างด้านซ้าย • เลือกWin32 Console Application ในหน้าต่างกลาง อย่าลืม!!!จดจำตำแหน่งของไฟล์ที่จะสร้าง
Start Programming C++ • Win32 Application Wizard
Start Programming C++ • Win32 Application Wizard (cont.) อย่าลืม!!!เช็คเลือกEmpty project
Start Programming C++ VS จะสร้าง Solution และ Empty Project ขึ้นมาให้ โดยจัดเก็บข้อมูลโฟลเดอร์ (folder) และไฟล์ต่างๆที่เกี่ยวข้องไว้ในระบบ ณ ตำแหน่งที่ได้ระบุไว้ก่อนหน้านี้ ConsoleApplication1 solutionประกอบไปด้วย 1 โปรเจคย่อย คือConsoleAppliction1 project โปรแกรมโดยมากในวิชานี้ จะอาศัยเพียง1 โปรเจคต่อปัญหาที่ต้องการจะแก้ (solution) เท่านั้น...
Start Programming C++ • Add new C++ source file (.cpp) • คลิกขวาที่Source Files => Add => New Item…
Start Programming C++ • Add new C++ source file (.cpp) • เลือก C++ File (.cpp) และกำหนดชื่อไฟล์ตามต้องการ
Start Programming C++ • Add new C++ source file (.cpp) • ปรากฎไฟล์.cpp ในหน้าต่างSolution Explorerภายใต้Source Filesโฟลเดอร์
Try your first C++ codes หากไฟล์ได้รับการแก้ไขและยังไม่ถูกบันทึก จะปรากฎเครื่องหมาย* ทดลองเขียนโปรแกรมด้วยโค้ดดังที่แสดง แล้วจึงทำการ บันทึก (save) ไฟล์ดังกล่าว
Try your first C++ codes • Compile and Build • ตรวจสอบความถูกต้องของโค้ดที่เขียนขึ้นด้วยการCompile(Ctrl + F7) • หากผลการตรวจสอบถูกต้อง โค้ดดังกล่าวจึงสามารถนำไปสร้างเป็นโปรแกรมที่พร้อมทำงานด้วยการBuild Solution (F7) • ในทางปฏิบัติเราสามารถลดขั้นตอนด้วยการเลือก Build Solution ได้เลย โดย VS จะทำการ Compile ให้ หากพบว่าโค้ดยังไม่ผ่านการ Compile มาก่อน
Try your first C++ codes • Compile and Build • หากโค้ดเขียนได้ถูกต้อง VS จะแสดงผลการ Compile และ Build ในหน้าต่างOutputดังภาพด้านบน • 1 succeeded - ผ่านการตรวจสอบ • 0 failed - ไม่พบข้อผิดพลาด • หากพบข้อผิดพลาด จะมีการระบุจำนวนข้อผิดพลาดที่พบ และแสดงรายละเอียดข้อผิดพลาดต่างๆ ในหน้าต่างError List
Structure of a C++ Program Preprocessor Main function declaration Main function definition Comments
What could go wrong? • CASE #1 พิมพ์ตกเครื่องหมายsemicolon ‘;’ ท้ายบรรทัดที่ 11
What could go wrong? • CASE #2 พิมพ์คำสั่งcoutท้ายเป็นcount ในบรรทัดที่8
What could go wrong? • CASE #3 พิมพ์ชื่อตัวแปร (variable) จากageเป็นaegท้ายบรรทัดที่ 9
What could go wrong? • CASE #4 พิมพ์ชื่อ Header ไฟล์ จากiostreamเป็นiostremท้ายบรรทัดที่ 1
What could go wrong? • CASE #5 ขาดเครื่องหมายวงเล็บปีกกาเปิด ‘ { ‘ก่อนขึ้นบรรทัดที่ 5
How to show Line numbers • เลือก Tools ที่แถบเมนูบาร์ด้านบน เมื่อมีตัวเลือกลงมาให้เลือก Options… • ในหน้าต่าง Options… ด้านซ้ายให้เลือก Text Editor => All Languages
Start Program • Start Program Without Debugging • เป็นการสั่งให้โปรแกรมที่ผ่านการ Buildทำงานแบบไม่่แสดงขั้นตอนการทำงาน
Start Program • Start Debugging • เป็นการสั่งให้โปรแกรมทำงานแบบแสดงขั้นตอนการทำงานทีละขั้น • ก่อนเริ่มการทำงานในโหมดนี้ เราต้องระบุบรรทัดที่ต้องการให้โปรแกรมหยุดการทำงานชั่วคราว โดยการคลิกเลือกหน้าบรรทัดที่ต้องการ • สามารถคลิกเลือกได้มากกว่า 1 บรรทัด
Start Program • Start Debugging (cont.) • เมื่อเริ่มการทำงานในโหมดนี้ โปรแกรมจะเริ่มทำงานแล้วไปหยุดที่บรรทัดแรกที่เราเลือกให้หยุดการทำงานชั่วคราว
Start Program • Start Debugging (cont.) • การสั่งให้โปรแกรมทำงานต่อไป จะสามาถทำได้โดยอาศัยปุ่มต่างๆบนDebug Toolbar • Step Over (F10) • ใช้เมื่อต้องการให้ทำงาน (execute) คำสั่งในบรรทัดปัจจุบัน และไปหยุดรอที่บรรทัดถัดไป • Continue (F5) • ใช้เมื่อต้องการให้ทำงานคำสั่งปัจจุบัน แล้วไปหยุดรอ ณ บรรทัดต่อไปที่เราเลือกให้หยุด • Stop Debugging (Shift+F5) • ใช้เมื่อต้องการหยุดการทำงานโปรแกรมในโหมดการทำงานนี้ • Restart (Ctrl+Shift+F5) • ใช้เมื่อต้องการให้โปรแกรมเริ่มทำงานในโหมดนี้ใหม่ตั้งแต่ต้น
Start Program • Start Debugging (cont.) • เมื่อมีการใช้ Step Over ในบรรทัดที่ 7 จะทำให้โปรแกรมทำงานบรรทัดดังกล่าว แล้วจึงหยุดรออยู่ที่ต้นบรรทัดที่ 8
Summary • วิชานี้ใช้ Microsoft Visual Studio Express 2013 for Desktopเป็นเครื่องมือ (IDE) ในการเขียนโปรแกรมด้วย C++ • การเขียน C++ ด้วย VS ต้องเริ่มด้วยการสร้างโซลูชัน(Solution) ซึ่งมีโปรเจคที่เป็นสมาชิก อย่างน้อย 1 โปรเจค (Project) • Win32 Console Application (Visual C++) • การติดต่อกับผู้ใช้ และการแสดงผลต่างๆ ทำผ่านCommand Line Interface นั่นคือไม่มีหน้าต่างแสดงผล และไม่สามารถใช้เมาส์ได้ • ให้เลือกสร้างEmpty Projectแล้วจึงสร้างไฟล์.cpp เพิ่มเติมในภายหลัง • แต่ละโปรเจคต้องมี.cpp ไฟล์ อย่างน้อย 1 ไฟล์เพื่อใช้เป็นจุดเริ่มต้นการทำงานของโปรแกรม • โค้ดต้องผ่านการCompileและBuildจึงจะได้โปรแกรมที่พร้อมทำงาน • สามารถสั่งRunโปรแกรมทำได้แบบปกติ หรือแบบแสดงขั้นตอนการทำงาน (Debugging) เพื่อประโยชน์ในการตรวจสอบความถูกต้อง
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’
Useful Links • C++ Tutorial • อ้างอิงการเกี่ยวกับโครงสร้างภาษา และการใช้งานคำสั่งต่างๆ • มีประโยชน์ต่อการทำแบบฝึกหัด การทดลอง และการเตรียมสอบ • http://www.cplusplus.com/doc/tutorial/ • Visual Studio Express 2013 for Desktop • สำหรับดาวน์โหลดiso ไฟล์ เพื่อนำมาใช้ติดตั้ง หรือเขียน CD • http://www.microsoft.com/en-us/download/details.aspx?id=40787
Lab • Lab 1.1 - ให้นศ.ทดลอง Debug โปรแกรมตัวอย่างโดย • ระบุให้โปรแกรมหยุดการทำงานรอณ บรรทัดที่5, 7, 11, 13 • ให้ Step Over ไปจนกว่าโปรแกรมจะจบการทำงาน • พิจารณาการทำงาน และการแสดงผลการทำงาน • Lab 1.2 - ให้นศ.ทดลอง Debug โปรแกรมตัวอย่างโดย • ระบุให้โปรแกรมหยุดการทำงานรอณ บรรทัดที่ 7, 11, 13 • ให้ Continue ไปจนกว่าโปรแกรมจะจบการทำงาน • พิจารณาการทำงาน และการแสดงผลการทำงาน
Lab • Lab 1.3 - ให้นศ. เขียนโปรแกรมเพื่อให้โปรแกรมแสดงผลลัพธ์ดังที่กำหนดด้านล่าง • นศ. สามารถเขียนโปรแกรมใหม่นี้โดยการแก้ไขหรือเขียนทับไฟล์ตัวอย่าง หรือสามารถสร้างโซลูชันใหม่เพื่อแก้ปัญหานี้