Chapter1

2,136 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,136
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Chapter1

  1. 1. โครงสร้างภาษาซีเบื้องต้น ครูอัครเดช โพธิญาณ์ โรงเรียนศรี บุญเรืองวิทยาคาร
  2. 2. โปรแกรมภาษา ในการเขียนโปรแกรมคอมพิวเตอร์ ด้ วยภาษาระดับต่าหรือ ระดับสูง จะต้ องเปลี่ยนภาษานั้นให้ เป็ นภาษาเครื่อง เพื่อให้ เครื่อง คอมพิวเตอร์ทางานได้ โปรแกรมต้ นฉบับ (Source Program) โปรแกรมที่เครื่องทางานได้ (Executable Program)  การเขียนโปรแกรมด้ วยแอสเซมบลี (ภาษาระดับต่า) เป็ นภาษาเครื่อง ขั้นตอนการแปลงภาษาแอสเซมบลีเป็ นภาษาเครือง ่
  3. 3. โปรแกรมภาษา  การเขียนโปรแกรมด้ วยภาษาระดับสูงเป็ นภาษาเครื่อง  อินเทอร์พรีเตอร์ (Interpreter) interpreter  คอมไพเลอร์ (Compiler) compiler ขั้นตอนการแปลภาษาโปรแกรม
  4. 4. ขันตอนพัฒนาโปรแกรม ้ การเขียนโปรแกรมคอมพิวเตอร์ ให้ทางานได้ตามเราต้องการ ผูเ้ ขียน ่ โปรแกรมจะต้องรู ้วาจะให้โปรแกรมทาอะไร มีขอมูลอะไร และต้องการอะไร ้ จากโปรแกรม รวมทั้งรู ปแบบการแสดงผลด้วย โดยทัวไปจะมีข้ นตอนการ ่ ั พัฒนาโปรแกรม ดังนี้  การกาหนดและวิเคราะห์ปัญหา  การเขียนผังงานและซูโดโค๊ด  การเขียนโปรแกรม  การทดสอบและแก้ไขโปรแกรม  การทาเอกสารและบารุ งรักษาโปรแกรม
  5. 5. แนะนาภาษาซี ภาษาที่เป็ นโครงสร้ าง คาสั่งประกอบด้ วยพจน์ (term) ซึ่งจะมีลักษณะเหมือนกับนิพจน์ทางพีชคณิต มีส่วนขยายเป็ นคาหลัก (keyword) ในภาษาอังกฤษ เช่น if, else, for, do และ while สามารถใช้ งานในระดับต่า (low-level) ได้ สามารถใช้ กับงานด้ านโปรแกรมระบบ (system programming) เช่ น เขียนโปรแกรม ระบบปฏิบตการ (operating system) หรือใช้ กบงานทั่ว ๆ ไป ั ิ ั สามารถย้ ายไปทางานในเครื่องอื่นได้
  6. 6. ประวัติภาษาซี ภาษาซีพัฒนาขึ้นมาในปี 1970 โดย Dennis Ritchie แห่ ง Bell Telephone Laboratories, Inc. (ปัจจุบันคือ AT&T Bell Laboratories) ต้ นกาเนิดมาจากภาษา 2 ภาษา คือ ภาษา BCPL และ ภาษา B ภาษาซีน้ันถูกใช้ งานอยู่ เพียงใน Bell Laboratories จนกระทั่งปี 1978 Brian Kernighan และ Ritchie นั้นเป็ นที่ร้ ูจักกันในชื่อของ "K&R C" ในกลางปี 1980 ภาษาซีกกลายเป็ นภาษาที่ได้ รับความนิยม ็
  7. 7. โครงสร้างโปรแกรมภาษาซี void main(void) Preprocessor directive { Global Declarations Local Declarations main function Statements ; User define functions } int function () { User define functions Local Declarations Statements ;โครงสร้ างภาษาซีประกอบด้ วยหลายส่ วน แต่ในการเขียนไม่ จาเป็ นจะต้ องเขียนทุกส่ วน }
  8. 8. การใช้ Preprocessor Directive ทุกโปรแกรมต้องมี ใช้เรี ยกไฟล์ที่โปรแกรมใช้ในการทางานร่ วมกัน ั ใช้กาหนดค่าคงที่ให้กบโปรแกรม เริ่ มต้นด้วยเครื่ องหมาย # ั ที่เราจะใช้กนมี 2 directives คือ  #include ใช้สาหรับเรี ยกไฟล์ที่โปรแกรมใชในการทางาน  ั #define ใช้สาหรับกาหนดมาโครที่ให้กบโปรแกรม #include #define #undef #if #ifdef #ifndef #else #elif #endif #line #error #pragma
  9. 9. การใช้ #include วิธีการใช้งาน #include <ชื่อไฟล์> หรื อ #include ‚ชื่อไฟล์‛ ตัวอย่าง #include <stdio.h> (เป็ นการเรี ยกใช้ไฟล์ stdio.h เข้ามาในโปรแกรม) #include <mypro.h> (เป็ นการเรี ยกใช้ไฟล์ mypro.h เข้ามาในโปรแกรม) < > จะเรี ยกไฟล์ใน directory ที่กาหนดโดยตัวคอมไพล์เลอร์ ่ “ ” จะเรี ยกไฟล์ใน directory ทีทางานอยูในปั จจุบน ั
  10. 10. การใช้ #define วิธีการใช้งาน #define ชื่อ ค่าที่ตองการ ้ ตัวอย่าง #define START 10 (กาหนดค่า START = 10) #define A 3*5/4 (กาหนดค่า A=3*5/4) #define pi 3.14159 (กาหนดค่า pi = 3.14159) #define sum(a,b) a+b (กาหนดค่า sum(ตัวแปรที่1, ตัวแปรที่2) = ตัวแปรที่1+ตัวแปรที่2
  11. 11. ส่วนประกาศ (Global Declarations) เป็ นการประกาศตัวแปรเพื่อใช้ งานในโปรแกรม โดยตัวแปรนั้นสามารถใช้ ได้ ในทุก ที่ในโปรแกรม เป็ นส่วนที่ใช้ ในการประกาศ Function Prototype ของโปรแกรม ส่วนนี้ในบางโปรแกรมอาจจะไม่มีกได้ ็ ตัวอย่างint summation(float x, float y) ; (ประกาศ function summation)int x,y ; (กาหนดตัวแปร x,y เป็ นจานวนเต็ม)float z=3; (กาหนดตัวแปร z เป็ นจานวนจริ ง)
  12. 12. ส่วนประกาศ (Global Declarations)ตัวอย่าง #include <stdio.h> int feet,inches; main() { feet = 6; inches = feet * 12; printf("Height in inches is %d",inches); } ผลการทางาน Height in inches is 72
  13. 13. ฟั งก์ชนหลักของโปรแกรม (Main Function) ั ส่ วนนี้ ทุกโปรแกรมจะต้องมี โดยโปรแกรมหลักจะเริ่ มต้นด้วย main() และ ตามด้วยเครื่ องหมายปี กกาเปิ ด ‘{’ และปี กกาปิ ด ‘}’ ระหว่างปี กกาจะประกอบไปด้วยคาสั่ง(Statement) ต่างๆ ที่ จะให้โปรแกรม ทางาน แต่ละคาสั่งจะต้องจบด้วยเซมิโคลอน ‘;’ (Semicolon) #include <stdio.h> Main() { ... Statement ; }
  14. 14. ฟั งก์ชนหลักของโปรแกรม (Main Function) ัตัวอย่าง #include <stdio.h> int feet,inches; main() { feet = 6; inches = feet * 12; printf("Height in inches is %d",inches); } ผลการทางาน Height in inches is 72
  15. 15. การสร้างฟั งก์ชนใช้งานเอง (User Define Function) ั สร้างฟังก์ชนหรื อคาใหม่ ขึ้นมาใช้งานตามที่เราต้องการ ั ระหว่างปี กกาจะประกอบด้วยคาสั่ง(Statement) ต่างๆ ที่จะให้ฟังก์ชนทางาน ั สามารถเรี ยกใช้ภายในโปรแกรมได้ทุกที่ #include <stdio.h> int function() main(void) { ... Statement ; } int function() { Statement ; ... return (int value); }
  16. 16. การสร้างฟั งก์ชนใช้งานเอง (User Define Function) ัตัวอย่าง #include <stdio.h> int Feet2Inch(int); int feet,inches; main() { feet = 6; inches = Feet2Inch(feet); printf("Height in inches is %d",inches); } int Feet2Inch(int f) { return f*12; ผลการทางาน } Height in inches is 72
  17. 17. การใช้คาอธิบาย (Program Comments) ใช้เขียนส่ วนอธิ บายโปรแกรม (คอมเมนต์) ช่วยให้ผศึกษาโปรแกรมภายหลังเข้าใจการทางานของโปรแกรม ู้ ส่ วนของคาอธิ บายจะถูกข้ามเมื่อคอมไพล์โปรแกรม การเขียนส่ วนอธิบายโปรแกรม (comments)ทาได้ 2 วิธีคือ // สาหรับคาอธิบายไปจนถึงท้ายบรรทัด และ /* คาอธิบาย */ ลักษณะการใช้เหมือนวงเล็บนั้นเอง
  18. 18. การใช้คาอธิบาย (Program Comments)ตัวอย่าง #include <stdio.h> // Change Feet to Inches main() // main function { // Start int feet,inches; feet = 6; // feet  6 inches = feet * 12; // inches  feet * 12 printf("Height in inches is %d", inches); // write inches } // Stop ผลการทางาน Height in inches is 72
  19. 19. การใช้ printf() เป็ นคาสั่งที่ใช้ในการแสดงผลออกทางจอภาพ โดยมีรูปแบบการใช้งานดังนี้printf(“control หรือ format string”, variable list …);control หรือ format string เป็ นส่ วนที่ ใ ส่ ข้ อ ความที่ จ ะแสดงผล และส่ วนควบคุ ม ลั ก ษณะการแสดงผล รวมทั้งบอกตาแหน่ งที่ตวแปรจะแสดงผล ัvariable list เป็ นตัวแปรที่ต้องการจะแสดงผล ในกรณี ที่ต้องการแสดงข้ อ ความ ไม่จาเป็ นต้ องมีส่วนนี้
  20. 20. โปรแกรมที่ 1 สร้ าง folder ชื่อ source C สร้ างไฟล์ hello.c โดยให้ พิมพ์คาว่า hello world การใช้ งาน turbo c F2 Save Alt+F9 Compile Ctrl+F9 Compile & Run Alt+F5 Output พิมพ์ช่ ือตัวเองเพิ่มอีกหนึ่งบรรทัด
  21. 21. ตัวอย่ างโปรแกรมโปรแกรม#include <stdio.h> Backslash nmain() { ขึ้นบรรทัดใหม่ printf(“Hello worldn"); printf(“Welcome to Computer Programming 1");}ผลการทางานHello worldWelcome to Computer Programming 1
  22. 22. คาแนะนาโปรแกรม#include <stdio.h>main (){ clrscr(); เคลียร์หน้าจอ …. getch(); รอรับค่าจากคียบอร์ ด ์}
  23. 23. การใช้ Control ด้วย Backslash ่จากตัวอย่ างที่ 3 จะเห็นได้วาหากต้องการให้แสดงผลข้ามบรรทัดจะต้องเพิ่ม nลงไป เรี ยกว่า backslash นอกจากนี้ยงมีตวอื่นๆ เช่น ั ั n ขึ้นบรรทัดใหม่ t เว้นระยะ 1 tab ใส่ ตวอักษร hh เมื่อ hh เป็ นเลขฐานสิ บหก ั xhh เช่น 41 = A, 42 = B a ส่ งเสี ยงปิ้ บ แสดง " แสดง "
  24. 24. ตัวอย่างโปรแกรมโปรแกรม #include <stdio.h> main() { printf("%d %5.2f %s", 12, 20.3, "Example"); } ผลการทางาน 12 20.30 Example %d %5.2f %s คือ รหัสควบคุม
  25. 25. รหัสควบคุมลักษณะ (Format String) %d พิมพ์จานวนเต็มฐานสิ บ %u พิมพ์เลขไม่มีเครื่ องหมาย %f พิมพ์เลขทศนิยม %e พิมพ์ในรู ปจานวนจริ งยกกาลัง %c พิมพ์ตวอักษรตัวเดียว ั %s พิมพ์ชุดตัวอักษร (String) %% พิมพ์เครื่ องหมาย % %o พิมพ์เลขฐานแปด %x พิมพ์เลขฐานสิ บหก
  26. 26. ตัวอย่างโปรแกรมโปรแกรม #include <stdio.h> #define x 65 main() { printf("%d %c %o %xn", x, x, x, x); printf(“x = %d”, x); } ผลการทางาน 65 A 101 41 X = 65
  27. 27. การจัดการหน้าจอด้วยรหัสควบคุมลักษณะในกรณี ที่ ต ้ อ งการจั ด การหน้ า จอแสดงผลสามารถใช้ ต ั ว เลขร่ วมกั น กั บรหัสควบคุมได้ เช่น %5d หมายถึง แสดงตัวเลขจานวนเต็ม 5 หลักอย่างต่า %5.2f หมายถึง แสดงตัวเลขจานวนจานวน 5 หลักอย่างต่า และ ทศนิยม 2 ตาแหน่ง ค่ า %d %5d ค่ า %f %5.2f 12 12 ___12 1.2 1.200000 _1.20 123 123 __123 1.234 1.234000 _1.23 1234 1234 _1234 12.345 12.345000 12.3512345 12345 12345 123.456 123.456000 123.46
  28. 28. X in decimal = 65 X in octadecimal = 101โปรแกรมที่ 2 X in Hexadecimal = 41 Y = 1.234 สร้ างไฟล์ print.c โดย Y = 1.23e+00 กาหนด #define ดังต่อไปนี ้ CH = %C  จานวนเต็ม X มีคา 65 ่ SRW =  จานวนจริ ง Y มีคา 1.23456 ่ “Sriboonrungwittayakar n School”  ตัวอักษร CH มีคา ‘C’ ่  ชุดตัวอักษร SRW มีคา ‚Sriboonrungwittayakarn School‛ ่ พิมพ์คาต่างๆ ที่กาหนด ให้ แสดงผลดังรูป ่
  29. 29. การเก็บค่าในภาษา C ทาได้ 2 ลักษณะ คือ  แบบค่าคงที่ (Constant)  แบบตัวแปร (Variable) การสร้ างตัวแปร  ต้ องรู้ว่าจะใช้ ตัวแปรเก็บค่าอะไร  ประกาศตัวแปรให้ เหมาะสมกับค่าที่จะเก็บ ชนิดของตัวแปรหลักในภาษา C  ตัวแปรที่ใช้ เก็บอักขระ (Character variable)  ตัวแปรที่ใช้ เก็บเลขจานวนเต็ม (Integer variable)  ตัวแปรที่ใช้ เก็บเลขจานวนจริง (Float variable)
  30. 30. การประกาศตัวแปรรู ปแบบของการประกาศตัวแปร ชนิดตัวแปร ชื่อตัวแปร; int i; ประกาศ i ให้ชนิดเป็ น integer float realnum; ประกาศ realnum ให้มีชนิดเป็ น float char ch; ประกาศ ch ให้ชนิดเป็ น character
  31. 31. ชนิดของตัวแปร ขนาดประเภทข้ อมูล คาอธิบาย ค่ าที่เก็บได้ (ไบต์ ) char ตัวอักษร 1 ตัว -128 ถึง 127 1 short ตัวเลขจานวนเต็ม -128 ถึง 127 1 ตัวเลขจานวน int เต็ม -32768 ถึง 32767 2 long ตัวเลขจานวนเต็ม -232 ถึง 232-1 4 float ตัวเลขทศนิยม 3.4E+/-38 (7 ตาแหน่ง) 4 1.7E+/-308 (15 double ตัวเลขทศนิยม ตาแหน่ง) 8
  32. 32. การประกาศตัวแปรชนิดเดียวกัน เราสามารถประกาศตัวแปรหลายๆตัว ที่มชนิดเดียวกันโดยใช้เพียง ี ประโยค(statement) เดียวได้ โดยใช้รูปแบบ 1. การประกาศทีละตัว เช่ น int i; int j; int k; 2. การประกาศพร้ อมกันหลายตัว เช่ น int i, j, k;
  33. 33. การประกาศตัวแปรพร้อมให้ค่าเริ่มต้น ในภาษา C ประโยค (statement) ของการประกาศตัวแปร สามารถ กาหนดค่าเริ่มต้ นให้ กบตัวแปรได้ ทนที ั ั โดยใช้ รูปแบบ ชนิดตัวแปร ชื่อตัวแปร = ค่ าเริ่มต้ น; เช่น int i = 5; นอกจากนี ้ยังสามารถประกาศ หลายๆ ตัวแปรในบรรทัดเดียว กันได้ อีก เช่น int i = 5, k = 3, y;
  34. 34. หลักการตังชื่อ (Identifier) ้ชื่อ (Identifier) ไอเดนติฟายเออร์ เป็ นชื่อที่ผ้ ูใช้ กาหนดขึ้นในโปรแกรม เช่น ชื่อค่าคงที่ ชื่อตัว แปร ชื่อฟังก์ชัน เป็ นต้ น  ต้ องขึ้นต้ นด้ วยตัวอักษรภาษาอังกฤษ (ตัวใหญ่หรือเล็กก็ได้ ) หรือขีดล่าง ‘_’  ตามด้ วยตัวอักษรภาษาอังกฤษ ตัวเลข หรือขีดล่าง (Underscore) ‘_’  ไม่มีช่องว่างหรือตัวอักษรพิเศษอื่นๆ เช่น ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’ เป็ นต้ น  ตัวพิมพ์ใหญ่และเล็กจะเป็ นคนละตัวกันเช่น NAME, name, Name, NamE  ห้ ามซากับคาสงวน Reserve Words ของภาษา C ้  ห้ ามตั้งชื่อซากับ Function ที่อยู่ใน Library ของภาษา C ้
  35. 35. คาสงวน Reserve Words ของภาษา C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static While asm _cs _ds _es _ss cdecl far huge interrupt near pascal _export
  36. 36. วีธการสร้างตัวแปรและกาหนดค่า ี#include <stdio.h> #include <stdio.h>main () main (){ { int age; int age = 20; char sex; char sex = ‘ f ’; float grade; float grade = 3.14; char name[10] = “malee” age = 20; sex = ‘ f ’; printf(“you are %sn”,name); grade = 3.14; ...} }
  37. 37. นิพจน์ นิพจน์อาจประกอบด้วย  ตัวแปร a + b  ค่าคงที่ x = y c = a + b  การเรียกใช้ฟังก์ชน ั x == y  หรือมีตวดาเนินการร่วมอยู่ก็ได้ ั ++i
  38. 38. ตัวดาเนินการ กลุ่มของตัวดาเนินการ ตัวดาเนินการลาดับความสาคัญมาก ตัวดาเนินการยูนารี - ++ -- ! sizeof (type) คูณ าร และ าเศษเ ลือ * / % บวกและลบ + - ตัวดาเนินการเปรี ยบเทียบ < <= > >= ตัวดาเนินการเทียบเท่ า == != AND && OR || ตัวดาเนินการเงื่อนไข ?:ลาดับความสาคัญน้อย ตัวดาเนินการกา นดค่ า = += -= *= /= %=
  39. 39. การใช้ scanf() เป็ นคาสั่งที่ใช้ในการรับค่า โดยมีรูปแบบการใช้งานดังนี้ scanf(“format string”, address list …);format string เป็ นส่ วนทีใช้ ในการใส่ รูปแบบของการรับข้ อมูล ่address list เป็ นตาแหน่ งของตัวแปรทีต้องการจะเก็บข้ อมูล ่
  40. 40. ตัวอย่างโปรแกรม โปรแกรม #include <stdio.h> main() { int x ; scanf("%d",&x); printf("%d %c", x, x); } ผลการทางาน 66 65 66 B 65 A
  41. 41. ตัวอย่างโปรแกรม โปรแกรม #include <stdio.h> main() { char s1[80], s2[80] ; scanf("%[0-9]%[a-zA-Z]", s1, s2); printf("%s %s", s1, s2); } ผลการทางาน 1234test test1234 1234 test test
  42. 42. โปรแกรมที่ 3 สร้ างไฟล์ triangle.c โดยให้  รับค่าฐานเป็ นเลขจานวนจริง  รับค่าความสูงเป็ นเลขจานวนจริง  คานวนหาค่าพื้นที่ของสามเหลี่ยม  Area = ½ * ฐาน * สูง
  43. 43. ตัวอย่างโปรแกรมInput Base = 12.0 Input Base = 3.2Input Height = 6.0 Input Height = 1.2Area of triangle is 36.00 Area of triangle is 1.92#include <stdio.h>main() { float b,h,area ; printf("Input Base = "); scanf("%f",&b); printf("Input Height = "); scanf("%f",&h); area = 0.5*b*h ; printf("Area of triangle is %5.2f",area);}
  44. 44. โปรแกรมที่ 4 สร้ างไฟล์ circle.c โดยให้  รับค่ารัศมีเป็ นเลขจานวนจริง  กาหนดค่าคงที่ PI มีค่า 3.14159  คานวนหาค่าพื้นที่ของวงกลม  Area = PI* (รัศมี)2
  45. 45. ตัวอย่ างโปรแกรมInput Radias = 12.0Area of circle is 452.39/* program to calculate area of a circle */#include <stdio.h>#define PI 3.14159main(){ float radius, area; printf(“Input Radius = ?"); scanf("%f", &radius); area = PI * radius * radius; printf("Area of circle is %7.2f ", area);}
  46. 46. โปรแกรมที่ 5 สร้ างไฟล์ donut.c โดยให้  รับค่ารัศมีของวงกลม 2 วง  กาหนดค่าคงที่ PI มีค่า 3.14159  คานวนหาค่าพื้นที่ของวงกลมส่วนสีเทา
  47. 47. ตัวอย่างโปรแกรม#include <stdio.h>#define PI 3.14159main(){ float radius1,radius2, area1, area2; printf("Input outer radius ="); scanf(%f, &radius1); printf("Input inner radius ="); scanf(%f, &radius2); if (radius2 < radius1) { area1 = PI * radius1 * radius1; area2 = PI * radius2 * radius2; printf("Area of donut is %5.2f", area1-area2); }}
  48. 48. จบโครงสร้างภาษาซีเบืองต้น ้

×