1 / 118

235021 Computer Programming การเขียนโปรแกรมคอมพิวเตอร์

235021 Computer Programming การเขียนโปรแกรมคอมพิวเตอร์. สัปดาห์ที่ 2 การเขียนโปรแกรมภาษาซีเบื้องต้น. Credit: Narongchai.mo Mod: k.Mathiang. objectives. เข้าใจองค์ประกอบ และการทำงานของระบบคอมพิวเตอร์

Download Presentation

235021 Computer Programming การเขียนโปรแกรมคอมพิวเตอร์

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 235021Computer Programmingการเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 2 การเขียนโปรแกรมภาษาซีเบื้องต้น Credit: Narongchai.mo Mod: k.Mathiang

  2. objectives • เข้าใจองค์ประกอบ และการทำงานของระบบคอมพิวเตอร์ • รู้จักและเข้าใจขั้นตอนในการวิเคราะห์ปัญหา และนำปัญหามาเขียนในรูปแบบของแผนผังการไหลของข้อมูล (Flowchart Diagram)ได้ • รู้จักตัวแปรและชนิดของตัวแปร • รู้หลักการในการตั้งชื่อตัวแปรพร้อมทั้งการประกาศตัวแปร • เข้าใจหลักการในการแปลงภาษาซีเป็นโปรแกรม • เข้าใจการเข้าถึงตัวแปรหรือช่วงชีวิตของตัวแปรที่ประกาศ

  3. Outline 1 Introduction to C Programming 2 Flowchart Diagram p 3 Variables and Type of variables Naming and Variable Declaration 4 5 The Environment of C Programming

  4. What is computer? • อุปกรณ์อิเล็กทรอนิกส์อย่างหนึ่ง ที่มนุษย์ประดิษฐ์ขึ้น เพื่อนำมาเสริมความสามารถของมนุษย์ในด้านการรับรู้ การจำ การคำนวณ การเปรียบเทียบตัดสินใจ ในการที่จะสั่งให้เครื่องคอมพิวเตอร์ทำงาน จำเป็นต้องป้อนคำสั่ง และจะต้องเป็นคำสั่งที่เครื่องคอมพิวเตอร์เข้าใจ ได้แก่ภาษาเครื่องหรือที่เรียกเป็นภาษาอังกฤษว่า “Machine Language”ซึ่งประกอบด้วยตัวเลข 0 กับ 1 เท่านั้น

  5. Computer Architecture

  6. Computer System • ระบบคอมพิวเตอร์ประกอบด้วย 4 ส่วนประกอบ • Hardwareคือส่วนประกอบต่างๆ ของคอมพิวเตอร์ที่สามารถมองเห็นและจับต้องได้ • Softwareคือส่วนที่มีหน้าที่เชื่อมประสานให้ผู้ใช้งานกับคอมพิวเตอร์ให้สามารถทำงานร่วมกันได้ • Peoplewareคือบุคคลที่เข้ามามีส่วนเกี่ยวข้องกับการทำงานโดยใช้คอมพิวเตอร์ • Data andInformation คือข้อมูลที่ต้องป้อนเข้าสู่ระบบคอมพิวเตอร์ เพื่อใช้ในการประมวลผล และรวมไปถึงข้อมูลหลังจากการประมวลผลที่ต้องจัดเก็บ

  7. Hardware • ส่วนประกอบต่างๆ ของคอมพิวเตอร์แบ่งได้เป็น 3 ประเภท คือ • หน่วยประมวลผลกลาง (Central processing unit) • หน่วยความจำ(Memory) • อุปกรณ์รับข้อมูลเข้า (Input device) • อุปกรณ์แสดงผลข้อมูล (Output device) • อุปกรณ์รับข้อมูลเข้าและแสดงผล (Input/Output device)

  8. Central Processing Unit : CPU • หน่วยประมวลผลกลาง (Central Processing Unit) เช่น 80486 Celeron, Pentium, Athon, Duronเป็นต้น

  9. Memory • หน่วยความจำ (Memory) เช่น SDRAM 128 MB, ROM BIOS, ฮาร์ดดิสก์, ซีดีรอม ROM RAM HDD BIOS

  10. Input devices • อุปกรณ์ที่มีความสามารถในการเป็นหน่วยรับข้อมูลเข้า เช่น keyboard, mouse, microphone, scanner เป็นต้น mouse keyboard scanner

  11. Output devices • อุปกรณ์ที่มีความสามารถในการเป็นหน่วยแสดงผลข้อมูล เช่น monitor, printer, speaker เป็นต้น monitor speaker printer

  12. Input/Output devices • อุปกรณ์ที่มีความสามารถในการเป็นทั้งหน่วยรับข้อมูลและหน่วยแสดงผลข้อมูลเช่น Touch screen เป็นต้น Touchscreen

  13. Software(1) • ซอฟท์แวร์เป็นชุดคำสั่งที่ควบคุมการทำงานของคอมพิวเตอร์ โดยชุดคำสั่งเหล่านี้เรียกได้อีกอย่างว่าโปรแกรมคอมพิวเตอร์ โดยทั่วไปแบ่งออกเป็น 2 ประเภท • ซอฟท์แวร์ระบบ (System software)เช่น ซอฟต์แวร์ระบบปฎิบัติการ (Operating system: OS) • ซอฟท์แวร์ประยุกต์ (Application Software) เช่น Browser, Games, Multimedia program, Tools เป็นต้น

  14. Software(2) ซอฟท์แวร์ ซอฟท์แวร์ระบบ ซอฟท์แวร์ประยุกต์ Dos ซอฟต์แวร์สำเร็จ Window ซอฟต์แวร์ใช้เฉพาะงาน Unix Linux

  15. Example of Operating Systems (1) • (Disk Operating System) ปี 1981-1995 เป็นระบบปฏิบัติ การในยุค80 ใช้การสั่งงานผ่านคำสั่ง command line เช่นต้อง การตรวจจำนวนไฟล์ในแผ่นดิสก์ ใช้คำสั่ง dir

  16. Example of Operating Systems (2) • OS2 (Operating System /2) ใช้ในปี1987-2001 เป็นระบบปฏิบัติการที่พัฒนาโดย Microsoft และ IBM ในช่วงแรก และต่อมา IBM เป็นผู้พัฒนาต่อ ภาษาที่ใช้ในการสร้างคือ C/C++

  17. Example of Operating Systems (3) • ยูนิกซ์ (Unix)เป็นระบบปฏิบัติการคอมพิวเตอร์แบบหลายงาน หลายผู้ใช้ ที่เริ่มพัฒนาโดยกลุ่มพนักงานของห้องปฏิบัติการ AT&T Bell Labs โดยกลุ่มนักพัฒนาที่เป็นที่รู้จัก คือ Ken Thompson, Dennis Ritchie และ Douglas McIlroy

  18. Example of Operating Systems (4) • ลินุกซ์ (Linux) และรู้จักในชื่อ กนู/ลินุกซ์ (GNU/Linux) โดยทั่วไปเป็นคำที่ใช้ในความหมายที่หมายถึงระบบปฏิบัติการแบบยูนิกซ์ โดยใช้ลินุกซ์ เคอร์เนล เป็นศูนย์กลางทำงานร่วมกับไลบรารีและเครื่องมืออื่น ลินุกซ์เป็นตัวอย่างหนึ่งในฐานะซอฟต์แวร์เสรี และซอฟต์แวร์โอเพนซอร์สที่ประสบความสำเร็จและมีชื่อเสียง

  19. Example of Operating Systems (5) • ไมโครซอฟท์ วินโดวส์ (Microsoft Windows) เป็นระบบปฏิบัติการ ซึ่งพัฒนาโดยบริษัทไมโครซอฟท์ เปิดตัวเมื่อปี พ.ศ. 2528 (ค.ศ. 1985 โดยรุ่นแรกของวินโดวส์ คือ วินโดวส์ 1.0) และครองความนิยมในตลาดคอมพิวเตอร์ส่วนบุคคล มากกว่า 90%

  20. Software(3) ซอฟท์แวร์ประยุกต์ ซอฟต์แวร์สำเร็จ ซอฟต์แวร์ใช้เฉพาะงาน Word คำนวณเกรด Excel ยืมหนังสือ PPT คิดดอกเบี้ย Network Connection ฟังเพลง

  21. How the computer work? (1) • คอมพิวเตอร์จะทำงานต่างๆ ด้วยซอฟท์แวร์หรือโปรแกรมต่างๆ โดยจะใช้ชุดคำสั่งภาษาเครื่องในการทำงาน แต่ภาษาเครื่องเป็นภาษาที่มนุษย์ยากที่จะจำและเข้าใจการทำงาน ดังนั้นจึงมีการคิดภาษาต่างๆ ที่ใกล้เคียงกับภาษาของมนุษย์ขึ้นมาเพื่อให้มนุษย์ใช้งานในการเขียนสร้างโปรแกรมอื่นๆ • ภาษาทางคอมพิวเตอร์ • ภาษาเครื่องประกอบด้วยเลข 0 กับ 1 สามารถสั่งให้ คอมพิวเตอร์ทำงานได้ทันที ข้อเสียคือเขียนยาก • ภาษา Assembly เป็นกึ่งภาษาเครื่องเขียนเป็นคำสั่ง Neumonicสามารถแปลงเป็นภาษาเครื่องได้ง่าย โดยการเทียบตาราง หรือใช้ Assembler • ภาษาขั้นสูง เป็นภาษาที่ใกล้เคียงกับภาษาของมุนษย์ (ประโยคข้อความส่วนใหญ่เป็นภาษาอังกฤษ) เช่นภาษา C, PASCAL, FORTRAN -> Compiler

  22. How the computer work? (2) • ระบบปฎิบัติการ (Operating System: OS) • Application ไม่ต้องยุ่งการติดต่อกับฮาร์ดแวร์ต่างผู้ผลิต • Application สร้างโดยยึดกับ Operating System • มีการทำงานพื้นฐานเตรียมไว้แล้ว App. OS Hardware App. App.

  23. Programming Language and Development (1) • วงจรชีวิตซอฟต์แวร์ (Software life cycle) • Code design • Code implementation

  24. Programming Language and Development (2) • How the Program Run? • คอมพิวเตอร์จะทำงานกับ Machine Language Program Code / Source Code Translation Machine Code

  25. Programming Language and Development (3) • ตัวแปรภาษา (Program Translator) • Interpreter • ทำการแปลทีละคำสั่ง • แปลเสร็จ load แล้ว execute ได้ผลแล้วจึงแปลต่อ • เช่น java, perl, python, shell script, vb script • Compiler • แปลทั้งหมดแล้วค่อยทำงาน • นำไปประกอบร่วมกับ code ส่วนอื่นๆ ได้ • เช่น c, c++, pascal

  26. Programming Language and Development (4) Interpreter Source Code -------------------------- -------------------------- -------------------------- • ต้องมี Interpreter ทำงานตลอดเวลาเพื่อแปลคำสั่ง • Source Code สามารถทำงานได้เลย (ทีละคำสั่ง) • สะดวกในการแก้ไข Interpreter OS Hardware

  27. Source Code -------------------- -------------------- Compiler Object File---- Library ------------ -------------------- Linker OS Executable File --- Hardware Programming Language and Development (5) • Compiler • มีการแปล Source Code ทั้งหมดก่อนได้ Object File • นำมาประกอบกับ Code บางส่วนที่เตรียมไว้แล้ว (Library) • ได้ผลลัพธ์เป็น machine language (Executable File)

  28. Language Types • High-Level Programming Language • Procedural Language • Fortran, Cobol, Basic, Pascal, C • Object-Oriented Language • C++, Delphi, Visual BASIC, C#, Java • Functional Language • Lisp • Logic Language • Prolog

  29. Example of Language (1) • ภาษาฟอร์แทรน (Fortran: Formula Translation) ภาษาฟอร์แทรน

  30. Advantage-Disadvantage • ภาษาฟอร์แทรน (Fortran: Formula Translation) • เหมาะกับงานด้านวิทยาศาสตร์ วิศวกรรมศาสตร์และคณิตศาสตร์ • ลักษณะของภาษาคล้ายสูตรหรือสมการคณิตศาสตร์ • ไม่เหมาะกับงานพิมพ์หรืองานที่ต้องการเก็บข้อมูล • ปัจจุบันไม่นิยม

  31. Example of Language (2) • ภาษาปาสคาล (PASCAL) ภาษาปาสคาล

  32. Advantage-Disadvantage • ภาษาปาสคาล (PASCAL) • มีโครงสร้างภาษาดีเยี่ยม ทำให้การทำงานของโปรแกรมมีประสิทธิภาพ • สามารถบอกข้อผิดพลาดของการเขียนโปรแกรมเพื่อให้แก้ไขโปรแกรมได้ง่าย • ค่อนข้างจุกจิก มีเครื่องหมายมากมาย ทำให้ลดความคล่องตัวในการใช้งาน

  33. Example of Language (3) • ภาษาเบสิก (Basic: Beginner’s All-purpose Symbolic Instruction Code)

  34. Advantage-Disadvantage • ภาษาเบสิก (Basic: Beginner’s All-purpose Symbolic Instruction Code) • คำสั่งมีน้อย แต่ใช้งานได้อย่างมีประสิทธิภาพ • เป็นภาษาเก่าแก่ เข้าใจง่าย และถูกออกแบบมาให้ใช้กับงานในลักษณะโต้ตอบ (Interactive) • ใช้อินเทอร์พรีทเตอร์ • เหมาะกับผู้เริ่มหัดเขียนโปรแกรม • การเขียนคำสั่งสำหรับการทำงานค่อนข้างยาวทำให้การทำงานโปรแกรมช้า

  35. Example of Language (4) พรีโปรเซสเซอร์ไดเร็คทีฟ #include<file.h> type function_name(type); type variable int main() { type variable; statement-1; ... statement-n; return 0; } type function_name(type variable) { statement-1; ... statement-n; return(var); } ฟังก์ชันโพรโทรไทพ์ ส่วนหัวโปรแกรม ตัวแปรชนิดโกบอล ตัวแปรชนิดโลคอล ฟังก์ชันหลัก คำสั่ง ส่วนตัวโปรแกรม ฟังก์ชันย่อย

  36. Advantage-Disadvantage • ภาษาซี (C language) • เป็นภาษาที่มีโครงสร้างและมีรูปแบบคำสั่งค่อนข้างอิสระ • ไม่ขึ้นกับระบบปฎิบัติการ • ไม่ขึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ • มีคำสั่งและฟังก์ชันมาก • คำสั่งจะสั้น ทำให้การทำงานเร็ว • สามารถใช้งานได้หลายประเภท รวมถึงการควบคุมฮาร์ดแวร์ได้ • มีข้อยกเว้นทำให้เป็นผลเสียต่อโครงสร้างโปรแกรม

  37. Evolution of Language ภาษา BCPL มาร์ติน ริชาร์ด (Martin Richards) Basic Combined Programming Language ภาษาซี ภาษา B เคน ทอมพ์สัน (Ken Thompson) 1970 เดนนิส ริทชี่ (Dennis Ritchie) 1972 ที่ Bell Labs เผยแพร่ 1978 เคอร์นิกเฮน (Kernighan) เดนนิส ริทชี่ (Dennis Ritchie)

  38. Number System (1) • ระบบตัวเลขที่มนุษย์ทุกคนคุ้นเคย ที่เห็นได้ชัดเจนที่สุดคือการนับจำนวนสิ่งของต่างๆ ซึ่งพบว่าระบบจำนวนส่วนใหญ่ที่ใช้กันจะมีเลข 0 – 9 แต่ยังมีระบบจำนวนชนิดอื่นอีก เช่น เลขโรมัน • ระบบคอมพิวเตอร์จะใช้เลขเพียง 2 ตัว คือ 0 และ 1ซึ่งไม่เหมือนกับที่มนุษย์ใช้กันปกติ • เราเรียกระบบจำนวนที่มีจำนวนตัวเลขที่ใช้งานต่างกันว่าระบบเลขฐาน เช่น ระบบตัวเลขฐานสิบ ระบบตัวเลขฐานสอง เป็นต้น

  39. Number System (2) • ฐานสิบประกอบด้วย ตัวเลข 0-9 (525)10 = 5102+2101+5x100 • ฐานสองประกอบด้วย ตัวเลข 0 กับ 1 (101)2 = 122+021+120 • ฐานสิบหกประกอบด้วยตัวเลข 0-9 และ A-F (3B2)16 = 3162+ 11161 +2160

  40. Number System (3) • ระบบเลขฐานสิบ MSBLSB 10n10n-1 …….. 102 101 100 • ระบบเลขฐานสอง MSB LSB 2n2n-1 …….. 22 21 20

  41. Number System (4) • ตัวอย่าง จงแปลง 10001112 ไปเป็นเลขฐานสิบ 1 0 0 0 1 1 1 ××××××× 26 25 24 23 22 21 20 64 32 16 8 4 2 1 (1×64)+(0×32)+(0×16)+(0×8) + (1×4) + (1×2)+(1 ×1) = 64+0+0+0+4+2+1 = 71

  42. 2 2 2 2 Number System (5) • จงแปลง 45 ฐานสิบ ให้เป็นฐานสอง 45 LSB 2 22 เศษ 1 11เศษ 0 5 เศษ 1 2 เศษ 1 1 เศษ 0 MSB 4510 = 1011012

  43. 16 16 16 Number System (6) • จงแปลง 946 ฐานสิบ ให้เป็นฐานสิบหก 946 59 เศษ 2 3 เศษ 11= B 0 เศษ 3 94610 = 03B216

  44. The Conversion of Hexadecimal to Binary

  45. Problem Analysis (1) • ขั้นตอนของการวิเคราะห์ปัญหาสำหรับเตรียมการก่อนลงมือเขียนโปรแกรมคอมพิวเตอร์ มี 5 ขั้นตอนดังนี้ • การทำความเข้าใจกับปัญหา (State the problem clearly) • การพิจารณาลักษณะของข้อมูลเข้าและข้อมูลออก(Describe the input and output) • การทดลองแก้ไขปัญหาด้วยตนเอง (Work the problem by hand for a specific set of data)

  46. Problem Analysis (2) • การเขียนขั้นตอนวิธีการแก้ปัญหา(Develop an algorithm that is general in nature) • เขียนลำดับขั้นตอนวิธีการทำงานทั้งหมดอย่างย่อ • เขียนลำดับขั้นตอนวิธีการทำงานอย่างละเอียด • วิธีการเขียนลำดับขั้นตอนวิธี • Pseudo code เขียนขั้นตอนวิธีด้วยภาษาที่ใกล้เคียงภาษาคอมพิวเตอร์ • Flowcharts เขียนขั้นตอนวิธีด้วยรูปภาพผังงาน • การทดสอบขั้นตอนวิธีการแก้ปัญหา(Test the algorithm with a variety of data sets)

  47. Problem Analysis Example (1) • กรณีศึกษาที่ 1: ขั้นตอนวิธีการแก้ปัญหาด้วยคอมพิวเตอร์ • จงเขียนขั้นตอนวิธีการแก้ปัญหาสำหรับการหาปริมาตรทรงกระบอกโดยรับข้อมูลของความสูง และรัศมีของวงกลมที่เป็นฐานของทรงกระบอก จากนั้นแสดงค่าของปริมาตรทรงกระบอกที่คำนวณได้ r h ปริมาตรทรงกระบอก = ¶ x r2 x h

  48. Problem Analysis Example (2) • ขั้นตอนที่ 1 ทำความเข้าใจกับปัญหา • การคำนวณหาปริมาตรของรูปทรงกระบอก • ขั้นตอนที่ 2 ลักษณะของข้อมูลเข้าและข้อมูลออก • ข้อมูลเข้า คือ ความสูงของทรงกระบอก และรัศมีของวงกลมที่เป็นฐานของทรงกระบอก ชนิดของข้อมูลเข้าความสูง และรัศมีของวงกลมที่เป็นฐานของทรงกระบอกเป็นข้อมูลชนิดตัวเลข • ข้อมูลออก คือ ค่าของปริมาตรทรงกระบอก ชนิดของข้อมูลเป็นข้อมูลตัวเลขเป็นตัวเลขจำนวนเต็มหรือตัวเลขทศนิยมขึ้นอยู่กับวิธีการหาคำตอบ

  49. Problem Analysis Example (3) • ขั้นตอนที่ 3 ทดลองแก้ไขปัญหาด้วยตนเอง • การคำนวณหาปริมาตรทรงกระบอก หาได้จากสูตร ปริมาตรทรงกระบอก = ¶ x รัศมียกกำลัง 2 x ความสูง ถ้า รัศมีของฐาน = 5 เมตร และความสูง = 12 เมตร ปริมาตรทรงกระบอก = 3.14159 x 52 (m2 ) x 12 (m) = 942.48 m3

  50. Problem Analysis Example (4) • ขั้นตอนที่ 4 การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา • เขียนอธิบายขั้นตอนวิธีการทำงานทั้งหมดอย่างย่อ 1. เริ่มต้น 2. รับค่าความสูง และรัศมีของฐานทรงกระบอก 3. คำนวณค่าปริมาตรทรงกระบอก ¶ * รัศมีของฐาน2 * ความสูง 4. แสดงค่าของปริมาตรทรงกระบอก 5. จบการทำงาน • เขียนอธิบายขั้นตอนวิธีการทำงานอย่างละเอียด • การคำนวณหาปริมาตรของทรงกระบอก การแก้ปัญหาไม่ได้ซับซ้อนมาก สามารถอธิบายแบบอย่างย่อและได้ครบทุกขั้นตอน

More Related