1 / 100

ด้วยภาษา

C. การเขียนโปรแกรม. ด้วยภาษา. ++. โดย...ครูทองสุข เอี่ยมศิริ. สำนักงานเขตพื้นที่การศึกษาฉะเชิงเทรา เขต 1. บทที่ 1. ภาษาซี เบื้องต้น. มีอะไรบ้างในบทนี้. 1.1 บทนำการเขียนโปรแกรม 1.2 ซอฟต์แวร์คืออะไร? 1.3 ภาษาคอมพิวเตอร์ 1.4 โปรแกรมที่เขียนจะทำงานอย่างไร?

denzel
Download Presentation

ด้วยภาษา

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. C การเขียนโปรแกรม ด้วยภาษา ++ โดย...ครูทองสุข เอี่ยมศิริ สำนักงานเขตพื้นที่การศึกษาฉะเชิงเทรา เขต 1

  2. บทที่ 1 ภาษาซีเบื้องต้น

  3. มีอะไรบ้างในบทนี้ 1.1 บทนำการเขียนโปรแกรม 1.2 ซอฟต์แวร์คืออะไร? 1.3 ภาษาคอมพิวเตอร์ 1.4 โปรแกรมที่เขียนจะทำงานอย่างไร? 1.5 ไฟล์โปรแกรมที่ได้จากการแปลภาษา 1.7 ประวัติของภาษาซี 1.8 พัฒนาการของคอมไพเลอร์ภาษาซี 1.9 ระบบช่วยเหลือของคอมไพเลอร์ภาษาซี 1.10 สรุป

  4. 1.1 บทนำการเขียนโปรแกรม • เราเขียนโปรแกรมไปเพื่ออะไร • เพราะว่าในหลักสูตรที่เรียนอยู่บังคับวิชานี้ • เพราะอาจารย์ให้เขียนโปรแกรมส่งอาทิตย์หน้า • เพราะอยากเพิ่มพูนความรู้ด้านคอมพิวเตอร์ • เพราะต้องการเขียนโปรแกรมไว้ใช้เอง • ฯลฯ • การเขียนโปรแกรมก็เหมือนการแก้โจทย์ปัญหา เราจะต้องทราบว่าเราต้องการอะไรเพื่อสร้างโปรแกรมใหม่ๆ ตามที่เราต้องการ

  5. 1.2 ซอฟต์แวร์คืออะไร ? • ซอฟต์แวร์ (Software) หรือโปรแกรมคอมพิวเตอร์(Computer Program) คือโปรแกรมที่ถูกเขียนขึ้นมาจากภาษาคอมพิวเตอร์และถูกแปลงให้เป็นภาษาเครื่องเพื่อให้คอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่งตามที่เราต้องการ • แบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ • System software • Application software

  6. System Software • เป็นโปรแกรมที่ทำงานเกี่ยวกับระบบคอมพิวเตอร์ มีหน้าที่ในการควบคุมอุปกรณ์ฮาร์ดแวร์ทุกชนิด และจัดตารางการทำงานทั้งฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานกับฮาร์ดแวร์ทุกตัวซึ่งก็คือระบบปฏิบัติการ(Operating System:OS) นั่นเอง • ได้แก่ DOS, Windows, Linux, Mac OS, OS/2

  7. Application Software • เป็นโปรแกรมที่ถูกสร้างขึ้นเพื่อทำงานด้านต่างๆ ซึ่งก็ถูกเขียนขึ้นจากโปรแกรมภาษาต่างๆ • เช่น PowerDVD, Windows Media Player, Winamp, Word, Calculator, SPSS • สามารถแบ่งออกได้หลายประเภทดังนี้ • โปรแกรมพิมพ์งาน • โปรแกรมเกม • โปรแกรมยูทิลิตี้ • โปรแกรมมัลติมีเดีย • โปรแกรมสำหรับระบบ • โปรแกรมภาษาสำหรับพัฒนาซอฟต์แวร์

  8. 1.3 ภาษาคอมพิวเตอร์ • แบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ • ภาษาระดับต่ำ ได้แก่ ภาษาเครื่อง และภาษา Assembly • ภาษาระดับสูง ได้แก่ Basic, Pascal, Ada, C, Cobol, Fortran และอื่นๆ • ความแตกต่างระหว่างภาษาระดับสูงและระดับต่ำคือ ภาษาระดับต่ำ ควบคุมอุปกรณ์ฮาร์ดแวร์คอมพิวเตอร์ได้ดีกว่า แต่เขียนยาก และยาวมาก ส่วนภาษาระดับสูงเขียนง่ายเข้าใจง่ายกว่าเพราะใกล้เคียงภาษามนุษย์ แต่มีข้อจำกัดในการควบคุมฮาร์ดแวร์

  9. 1.4 โปรแกรมที่เขียนขึ้นจะทำงานได้อย่างไร ? • โปรแกรมที่เขียนขึ้นมา ไม่ว่าจะเขียนโดยใช้อิดิเตอร์(editor) อะไรก็ตาม จะได้ซอร์สโค้ด(source code) ซึ่งจะเก็บในรูปแฟ้มข้อมูล ซึ่งจะมีนามสกุลแตกต่างกันไปดังนี้ ภาษา นามสกุล ตัวอย่าง C .c hello.c C++ .cpp hello.cpp Pascal .pas hello.pas Perl .pl hello.pl PHP .php hello.php Java .java hello.java

  10. กระบวนการแปลโปรแกรม ---- ---- ---- ซอร์สโค้ด กระบวนการแปลโปรแกรม โปรแกรมที่สามารพทำงานได้ โดยไม่ต้องมี source code

  11. ตัวแปลภาษา • คอมไพเลอร์(compiler) • คอมไพเลอร์จะอ่านโปรแกรมทั้งหมดก่อน เมื่อเจอข้อผิดพลาดก็จะแจ้งให้แก้ไข แต่ถ้าไม่พบข้อผิดพลาดใดๆ ในโปรแกรม ก็จะแปลให้เป็นโปรแกรมที่พร้อมจะทำงานดังรูป

  12. ตัวแปลภาษา ขอตรวจสอบดูก่อน มีข้อผิดพลาด ไปแก้ไขมาใหม่ Main() { printf(“XX”); printf(“YY”); } ถูกต้อง ผ่านได้ กระบวนการแปลโปรแกรม

  13. ตัวแปลภาษา • อินเตอร์พรีเตอร์(interpreter) • อินเตอร์พรีเตอร์จะอ่านโปรแกรมมาทีละบรรทัดและทำตามคำสั่งแบบบรรทัดต่อบรรทัดถ้าเจอข้อผิดพลาดโปรแกรมจะหยุดและแจ้งให้ทราบว่าผิดพลาด • ตัวอย่างเช่นการแปลภาษา HTML

  14. 1.5 ไฟล์โปรแกรมที่ได้จากการแปลภาษา • เมื่อเขียนโปรแกรมเสร็จ ผ่านการแปลภาษาแล้วผลที่ได้ก็จะเป็นไฟล์โปรแกรมที่สามารถนำไปใช้ได้เลย โดยอาจก๊อปปี้ลงดิสก์ไปเปิดที่เครื่องอื่นๆ ได้ ซึ่งจะเป็นไฟล์โปรแกรมแยกจากตัวซอร์สโค้ดที่เราเขียน • ไฟล์โปรแกรมที่ได้นั้นเป็นไฟล์แบบเลขฐานสอง หรือไบนารีไฟล์(.exe)เรียกว่าเอ็กซีคิวเทเบิ้ลไฟล์(executable file)

  15. 1.6 ประวัติของภาษาซี • C มีต้นกำเนิดมาจากภาษาคอมพิวเตอร์ยูนิกซ์(UNIX) • นำเอาภาษาเครื่องมาใช้ในการพัฒนาโปรแกรมอื่นๆ และพัฒนาเป็นระบบปฏิบัติการ(OS) และได้สร้างภาษาบี(B) ขึ้นมา เพื่อช่วยให้การเขียนโปรแกรมทำได้ง่ายขึ้น ต่อมา Dennis Ritchie จาก Bell Lab ได้นำภาษานี้มาพัฒนาต่อและใช้ชื่อว่า C เพราะเป็นภาษาต่อจาก B ในยุคนั้นจะทำงานบนยูนิกซ์เป็นส่วนมาก

  16. จากภาษา C สู่ C++ • ภาษา C ได้มีการพัฒนาต่อโดยใช้แนวคิดโปรแกรมเชิงวัตถุ หรือ OOP(Object Oriented Programming) • เกิดภาษาใหม่เรียกว่า “ซี พลัส พลัส” (C++) • ภาษาซียังเป็นต้นฉบับให้กับอีกหลายๆ ภาษาในปัจจุบันเช่น Java, C# (อ่านว่าซีชาร์ป) • C# คือภาษาที่ออกแบบมาเพื่อทำงานบนแพลตฟอร์ม .NET

  17. 1.7 พัฒนาการของคอมไพเลอร์ภาษา C • DOS >> Turbo C • Windows >> • Microsoft Visual C++ • Borland C++ • Borland C++ Builder • Symantec C/C++

  18. 1.8 ระบบช่วยเหลือของคอมไพเลอร์ภาษา C • เมื่อติดตั้งคอมไพเลอร์ภาษา C แล้วจะมีระบบช่วยเหลือมาให้ด้วย • Visual C++ จะมีระบบช่วยเหลือที่ชื่อ MSDN(Microsoft Developer Network

  19. 1.9 สรุป • คอมไพเลอร์ภาษา C ที่ในปัจจุบันมีหลายตัว แต่มีพื้นฐานมาจากมาตรฐานเดียวกันคือ ANSI C ซึ่งจะเป็นมาตรฐานของการเขียนโปรแกรมภาษา C บนยูนิกซ์ Linux หรือ Windows โดยใช้คอมไพเลอร์ Visual C++, Borland C++, GNU C/C++ • ภาษาซีเป็นพื้นฐานของภาษา C++, Java, C# จบแล้วครับ ไม่ยากเลยใช่ไหม

  20. บทที่ 2 รหัสควบคุม และการคำนวณ

  21. มีอะไรบ้างในบทนี้ 2.1 รหัสควบคุมในภาษา C 2.2 ใส่คำอธิบาย(Comment) ลงในโปรแกรม 2.3 การคำนวณในภาษา C 2.4 นิพจน์การคำนวณ 2.5 การคำนวณทศนิยม 2.6 สรุป

  22. 2.1 รหัสควบคุมในภาษา C • \a ส่งเสียง Beep • \n ขึ้นบรรทัดใหม่ • \t แท็บในแนวนอน • \b ย้อนกลับไป 1 ตัวอักษร • \v แท็บในแนวตั้ง • \f ขึ้นหน้าใหม่ • \r รหัส Return • \’ แทนตัวอักษร Single Quote(’) • \’’ แทนตัวอักษร Double Quote(’’) • \\ แทนตัวอักษร Backslash(\) • \000 แทนตัวอักษรที่มีค่า ASCII เท่ากับ 000 ในระบบเลขฐานแปด • \xhh แทนตัวอักษรที่มีค่า ASCII เท่ากับ hh ในระบบเลขฐานสิบหก

  23. 2.1 รหัสควบคุมในภาษา C • #include<stdio.h> • Void main() • { • printf(“== Welcome == \n\n”); • printf(“Alert\a\n”); • print(“1 2 \b3 4\n”); • printf(“backslash \\ \n”); • printf(“show \” \n”); • printf(“show \ ‘hello\’ \n”); • printf(“ascii \123 \n”); • printf(“ascii \x2e \n”); • }

  24. 2.2 ใส่คำอธิบาย(comment)ลงในโปรแกรม • // ใช้ในการใส่คำอธิบายแบบบรรทัดเดียว โดยจะมีผลให้ข้อความใดๆ หลังจากเครื่องหมาย // ไปจนสุดบรรทัดนั้นๆ เป็นคำอธิบายทั้งหมด • /*..*/ ใช้ในการใส่คำอธิบายแบบหลายบรรทัด โดยจะมีผลให้ข้อความใดๆ ที่อยู่ระหว่าง /* และ */ กลายเป็นคำอธิบาย(อาจจะเป็น 1 บรรทัดหรือมากกว่าก็ได้) • เช่น • /* • Program by Sasalak Thongkhao • sasalak@riska.ac.th • */ • //include stdio.h for printf command • #include<stdio.h>

  25. 2.3 การคำนวณในภาษาซี • เครื่องหมายหรือโอเปอเรเตอร์(Operator) มีดังนี้ • + เครื่องหมายบวก(Addition) • - เครื่องหมายลบ(Subtraction) • * เครื่องหมายคูณ(Multiplication) • / เครื่องหมายหาร(Division) • % เครื่องหมายหารแบบเอาเศษเป็นคำตอบ(Mod)

  26. 2.3 การคำนวณในภาษาซี • ตัวอย่าง math1.c • #include<stdio.h> • void main() • { • Printf(“%d\n”,250+43); • } %d เป็นการกำหนดรูปแบบของผลลัพธ์เป็นจำนวนเต็มฐานสิบ และแทนที่ลงตรงตำแหน่ง %d 293 ผลลัพธ์ที่ได้

  27. 2.3 การคำนวณในภาษาซี • ตัวอย่าง math1update.c • #include<stdio.h> • void main() • { • printf(“Answer is %d.\n”,250+43); • printf(“%d %d\n”,5-3,10-2); • printf(“%d \n”,5*5); • printf(“%d \n”,7/3); • printf(“%d \n”,7%3); • } ผลลัพธ์ที่ได้ Answer is 293 2 -22 25 2 1

  28. 2.4 นิพจน์การคำนวณ • ลำดับการคำนวณนิพจน์ทางคณิตศาสตร์ • เครื่องหมายที่อยู่หน้าตัวเลข เช่น -2 • (...) วงเล็บ • *,/ เครื่องหมายคูณและหาร • +,- เครื่องหมายบวกและลบ

  29. 2.4 นิพจน์การคำนวณ • ตัวอย่าง math2.c • #include<stdio.h> • void main() • { • printf(“A = %d\n”,(10-5)*3+(2+10)/4); • } ผลลัพธ์ที่ได้ A = 18

  30. 2.4 การคำนวณทศนิยม • ใช้ %f (f ย่อมาจาก float) • #include<stdio.h> • void main() • { • printf(“Area = %f”,0.43*3*4); • } ผลลัพธ์ที่ได้ Area = 5.160000

  31. 2.4 การคำนวณทศนิยม • ตัวอย่าง math4.c • #include<stdio.h> • void main() • { • printf(“Average = %f\n”,(65.5+15.4+22.0)/3); • } ผลลัพธ์ที่ได้ Average = 34.300000

  32. 2.5 สรุป ในการคำนวณนั้น ไม่ว่าจะเป็นเลขจำนวนเต็มหรือ เลขทศนิยมก็ตาม เราสามารถใส่นิพจน์ให้กับการคำนวณได้ เช่น การใส่วงเล็บเพื่อให้ลำดับการคำนวณเป็นไปตามที่ ต้องการ และถ้าคาดว่าผลลัพธ์ที่ได้จากการคำนวณจะออกมา เป็นเลขทศนิยมเราจะต้องแสดงค่าโดยใช้ %f เพื่อให้ได้ค่า ที่ถูกต้อง จบแล้วครับ ไม่ยากเลยใช่ไหม

  33. บทที่ 3 ตัวแปรในภาษาซี

  34. มีอะไรบ้างในบทนี้ 3.1 การเก็บค่าในภาษาซี 3.2 กฎการตั้งชื่อตัวแปร 3.3 วิธีการสร้างตัวแปรและการกำหนดค่า 3.4 ภาษาซีกับตัวแปรแบบข้อความ 3.5 การแสดงค่าจากตัวแปร 3.6 การนำตัวแปรไปใช้ในการคำนวณ 3.7 การรับค่ามาเก็บไว้ในตัวแปร 3.8 ค่าคงที่ในภาษาซี 3.9 สรุป

  35. 3.1 การเก็บค่าในภาษา C • มี 2 ลักษณะคือ • เก็บค่าแบบค่าคงที่(constant) • เก็บค่าแบบตัวแปร(variable) • ค่าคงที่เมื่อสร้างขึ้นมาแล้วเราจะไม่สามารถเปลี่ยนแปลงแก้ไขค่าได้เลย เช่น a=20; • การเก็บค่าแบบตัวแปรสามารถเปลี่ยนแปลงค่าเป็นอะไรก็ได้ตามที่ต้องการ เช่น char ch;

  36. 3.1 การเก็บค่าในภาษา C • การสร้างตัวแปรจะต้องทราบว่าตัวแปรนั้นเก็บค่าอะไร เช่น เลขจำนวนเต็ม เลขทศนิยม ข้อความ หรือตัวอักษร เป็นต้นโดยแบ่งออกเป็นประเภทดังนี้ • Character Variable ตัวแปรที่ใช้เก็บอักขระ • Integer Variable ตัวแปรที่ใช้เก็บเลขจำนวนเต็ม • Float Variable ตัวแปรที่ใช้เก็บเลขจำนวนทศนิยม

  37. Character Variable • แบ่งออกเป็น 2 ลักษณะ คือ • Char เก็บค่า ASCII ของตัวอักษรได้ตั้งแต่ -128 ถึง 127 • Unsigned char เก็บค่า ASCII ของตัวอักษรได้ตั้งแต่ 0-255 • ตัวแปรแบบ character จะใช้ในกรณีที่เราต้องการเก็บอักขระ 1 ตัว เช่น a,b หรือ c เป็นต้น สิ่งที่เราเก็บก็คือ ตัวอักษร 1 ตัว ซึ่งมีค่า ASCII อยู่ระหว่าง 0 ถึง 255 ดังนั้นถ้าเราประกาศตัวแปรแบบ char เราจะใช้ตัวแปรนั้นเก็บข้อมูลได้เป็นค่าใดค่าหนึ่งในรหัส ASCII เท่านั้น

  38. Character Variable • วิธีประกาศตัวแปรแบบ Character เขียนได้ดังนี้ • char ch; • unsigned char c; • ส่วนมากแล้วมักไม่มีความแตกต่างระหว่าง char และ unsigned char ดังนั้นจึงมักประกาศเป็น char เป็นส่วนใหญ่ -128 ถึง127 0 ถึง 255

  39. Integer Variable • แบ่งออกเป็น 2 ประเภท คือ • int หรือ short เก็บเลขจำนวนเต็มตั้งแต่ -32,768 ถึง 32,767 • Long เก็บเลขจำนวนเต็มตั้งแต่ -2,147,483,648 ถึง 2,147,483,647 • วิธีการใช้คือถ้าต้องการตัวเลขจำนวนเต็มมากกว่า 32,767 เราจะต้องประกาศตัวแปรแบบ long ถ้าน้อยกว่าก็ประกาศแบบ int ดังตัวอย่าง

  40. Integer Variable • int a,b,c; • int age; • int height; • long salary,money; • เราประกาศตัวแปร a,b,c ageheight แบบ int เนื่องจาก ต้องการให้เก็บค่าที่อยู่ระหว่าง -32,768 ถึง 32,767 เท่านั้น แต่ salary และ money มีโอกาสจะมีค่ามากกว่า นั้นดังนั้นจึงต้องประกาศเป็น long

  41. Float Variable • แบ่งออกเป็น 3 ประเภท คือ • Float เก็บทศนิยมได้ 3.4E+/-38 (ทศนิยม 7 ตำแหน่ง) • Double เก็บทศนิยมได้ 1.7E+/-308 (ทศนิยม 15 ตำแหน่ง) • Long Double เก็บทศนิยมได้ 1.2E+/-4932 (ทศนิยม 19 ตำแหน่ง) float grade; double rate; long double longrate;

  42. กฎการตั้งชื่อตัวแปร • ต้องไม่มีอักษรพิเศษใดๆ ประกอบอยู่ด้วย เช่น ! @ # $ % ^ & * ( • สามารถใช้เครื่องหมาย underscore ( _ ) ได้ • ชื่อตัวแปรมีตัวเลขปนอยู่ได้ แต่ต้องไม่ขึ้นต้นด้วยตัวเลข • ห้ามมีช่องว่างระหว่างชื่อ • ใช้ได้ทั้งพิมพ์เล็ก และพิมพ์ใหญ่ • ชื่อเหมือนกันแต่เป็นพิมพ์เล็กพิมพ์ใหญ่ ถือว่าคนละชื่อกัน • ห้ามตั้งชื่อซ้ำกับคำสงวน เช่น char long while do

  43. #include<stdio.h> void main() { int age; char sex; float grade; age = 20; sex = ‘f’; grade = 3.14; } 3.3 วิธีการสร้างตัวแปรและการกำหนดค่า • #include<stdio.h> • void main() • { • int age = 20; • char sex = ‘f’; • float grade = 3.14; • }

  44. 3.4 ภาษาซีกับตัวแปรแบบข้อความ • นำตัวแปร char มาเรียงต่อกันเรียกว่าตัวแปรแบบสตริง(String) • การประกาศตัวแปรแบบสตริง จะต้องกำหนดขนาดด้วยตัวอย่าง • char name[15] = “Jacky Chan”; • ตัวแปรชื่อ name มีความยาว 15 ช่องตัวอักษร และเก็บข้อความ Jacky Chan เอาไว้ ซึ่งการประกาศตัวแปร 15 ช่องเอาไว้ ที่เหลือจะเป็นช่องว่างเฉยๆ ไม่มีตัวอักษรบรรจุอยู่ J a c k y C h a n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

  45. 3.5 การแสดงค่าจากตัวแปร ผลลัพธ์ที่ได้ • #include<stdio.h> • void main() • { int age = 20; char sex = ‘f’; float grade = 3.14; char name[10] = “malee”; printf(“You are %s\n”,name); printf(“You are %c\n”,sex); printf(“You are %d years old\n”,age); printf(“You grade is %f\n”,grade); • } You are malee You are f You are 20 years old Your grade is 3.140000

  46. ตารางแสดงสัญลักษณ์แสดงผลตารางแสดงสัญลักษณ์แสดงผล สัญลักษณ์ ใช้สำหรับ %d แสดงค่าที่เป็นเลขจำนวนเต็ม %s แสดงค่าที่เป็นสตริง %f แสดงค่าที่เป็นเลขทศนิยม %c แสดงค่าที่เป็นตัวอักษร 1 ตัว %o แสดงค่าของตัวเลขในรูปฐานแปด %x แสดงค่าของตัวเลขในรูปฐานสิบหก

  47. 3.6 การนำตัวแปรไปใช้ในการคำนวณ • #include<stdio.h> • void main() • { int a; int b; int c; int ans; a = 20; b = 40; c = 5; ans = (a+b)/c; printf(“Answer is %d\n”, ans); • } ผลลัพธ์ที่ได้ Answer is 12

  48. เครื่องหมายที่ใช้กับตัวแปรเครื่องหมายที่ใช้กับตัวแปร • ++ เพิ่มค่าขึ้น 1 • -- ลดค่าลง 1 • += เพิ่มค่าตามจำนวนที่ต้องการ • -= ลดค่าตามจำนวนที่ต้องการ • *= คูณค่าในตัวแปรด้วยจำนวนที่ต้องการ • /= หารค่าในตัวแปรด้วยจำนวนที่ต้องการ

  49. เครื่องหมายที่ใช้กับตัวแปรเครื่องหมายที่ใช้กับตัวแปร • int a = 5; • int b = 6; คำสั่ง มีผลเหมือนกับ ผลที่ได้ a+=4; a=a+4; บวกค่าอีก 4 b--; b=b-1; ลดค่าลงไป 1 a*=2; a=a*2; a คูณ 2 a/=2 a=a/2; a หารด้วย 2

  50. 3.7 การรับค่ามาเก็บไว้ในตัวแปร ผลลัพธ์ที่ได้ • ตัวอย่าง scanf1.c • #include<stdio.h> • void main() • { • int age; • printf(“How old are you ?\n”); • scanf(“%d”,&age); • printf(“You are %d years old.\n”,age); • } How old are you? 20 You are 20 years old.

More Related