1.06k likes | 1.27k Views
C Programming. By Mr. Sanae Sukprung. คำอธิบายรายวิชา. หลักการเขียนโปรแกรมภาษาซี ชนิดของข้อมูล คำสั่งควบคุม คำสั่งลูป ฟังก์ชั่น แมคโคร พอยต์เตอร์ อะเรย์ สตริง การจัดการแฟ้มข้อมูล ข้อมูลแบบโครงสร้าง และการเขียนโปรแกรมภาษาซีกับงานประยุกต์. รู้จักกับภาษา C.
E N D
C Programming By Mr. Sanae Sukprung
คำอธิบายรายวิชา หลักการเขียนโปรแกรมภาษาซี ชนิดของข้อมูล คำสั่งควบคุม คำสั่งลูป ฟังก์ชั่น แมคโคร พอยต์เตอร์ อะเรย์ สตริง การจัดการแฟ้มข้อมูล ข้อมูลแบบโครงสร้าง และการเขียนโปรแกรมภาษาซีกับงานประยุกต์ C Programing
รู้จักกับภาษา C ภาษา C เป็นภาษาที่เก่าแก่ ซึ่งถูกพัฒนาเพื่อให้เป็นภาษาสำหรับการสร้างระบบปฏิบัติการ UNIX เพราะของเดิมนั้นเขียนด้วยภาษา Assembly ซึ่งเป็นภาษาที่ยึดติดกับ H/W จึงทำให้ย้ายระบบปฏิบัติการไปทำงานกับเครื่องอื่น ๆ เป็นเรื่องที่เป็นไปไม่ได้ C Programing
ดังนั้น ภาษา C จึงเป็นภาษาที่ไม่ยึดติดกับ H/W และในปัจจุบันยังไม่ยึดติดกับการสร้างระบบปฏิบัติการเท่านั้น แต่ยังนำไปสร้างโปรแกรมเพื่องานทุกประเภทได้ C Programing
จุดเด่นของภาษา C • เป็นภาษาที่มีการกำหนดมาตรฐานสำหรับเครื่องคอมพิวเตอร์ทุกรุ่น • เป็นภาษาที่ระบบปฏิบัติการทุกตัวยอมรับ • เป็นภาษาที่มีโครงสร้างที่ดี และความชัดเจนของเครื่องหมายสำหรับดำเนินการ C Programing
สามารถเขียนคำสั่งภาษา C เพื่อควบคุมการทำงานของอุปกรณ์ H/W บางส่วนได้ • มี Function สำเร็จรูป สำหรับงานประเภทต่าง ๆ ให้เลือกใช้มากมาย C Programing
การสั่งงานคอมพิวเตอร์ด้วยภาษาโปรแกรมการสั่งงานคอมพิวเตอร์ด้วยภาษาโปรแกรม MUL R1, D STO R1, TEMP1 LOD R1 ,B ADD R1,TEMP1 11001010 10011001 00100110 11001011 01001101 10001101 01101100 11000101 ตัวกลางสำหรับแปลภาษา ไปเป็นภาษาเครื่อง C Programing
การแบ่งระดับตามลักษณะและการทำงานการแบ่งระดับตามลักษณะและการทำงาน 1. ภาษาระดับต่ำ (LOW LEVEL Language)เป็นภาษที่ใกล้เคียงกับภาษาเครื่องมากที่สุด สามารถเขียนคำสั่งเพื่อติดต่อสั่งงานกับอุปกรณ์ H/W ได้โดยตรง ซึ่งได้แก่ ภาษา Assambly ตัวอย่าง ของ Assambly MUL R1, D STO R1, TEMP1 LOD R1 ,B ADD R1,TEMP1 C Programing
การแบ่งระดับตามลักษณะ และการทำงาน (ต่อ) 2. ภาษาระดับสูง (High Level Language) เป็นภาษาที่ใกล้เคียงกับภาษามนุษย์มากที่สุด คำสั่งต่าง ๆ จึงมักเป็นภาษาอังกฤษ ทำให้จดจำและเขียนได้ง่าย เช่น ภาษา Pascal, Cobol, Fortran หรือ Basic เป็นต้น C Programing
การแบ่งระดับตามลักษณะ (ต่อ) 3. ภาษาระดับกลาง (Middle Level language) ภาษา C ถูกพัฒนาขึ้นโดยเอาข้อดีและข้อเสียของ 2 ระดับมาใช้ คือ คำสั่งของภาษา C เป็นคำสั่งที่มีความหมายใกล้เคียงกับภาษามนุษย์ และยังสามารถติดต่อกับ H/W ได้รวดเร็ว ดังนั้นภาษา C จึงถูกจัดให้เป็นภาษาระดับกลาง C Programing
Hello Link หลักในการแปลภาษา แบ่งได้ 2 วิธี คือ 1. แปลทีละคำสั่ง ตัวแปลลักษณะนี้จะเรียกว่า Interpreterโดยจะทำงานแบบเป็นคำสั่งต่อคำสั่ง นั่นคือจะอ่านคำสั่งจากโปรแกรมมา 1 คำสั่ง และทำงานตามคำสั่งนั้นทันที Print “Hello Link \n ”; print “How are you?”; Interpreter C Programing
หลักในการแปลภาษา (ต่อ) 2. แปลทีเดียวตั้งแต่ต้นจนจบ ตัวแปลลักษณะนี้จะเรียกว่า Compiler หลักการทำงานเริ่มจากคอมไพล์เลอร์จะทำการตรวจสอบคำสั่งทั้งหมดของโปรแกรม เพื่อดูว่ามีส่วนใดผิดจากหลักการของภาษานั้นหรือไม่ ถ้าไม่พบข้อผิดพลาดคอมไพเลอร์จะทำการแปลคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่องแล้วจึงทำงาน Hello Link How are You Print “Hello Link \n ”; print “How are you?”; Compiler C Programing
ฟังก์ชั่นจากไลบรารี ในภาษา C ไฟล์ชื่อ Test.c #Include (stdio.h) main() { printf(“Hello World\n”); } Object File .obj test.obj Binary File .exe test.exe Linker C Compoler คอมไพล์ ลิงค์ ขั้นตอนการทำงานของ ภาษา C C Programing
การนำภาษา C ไปใช้งาน • สร้างระบบปฏิบัติการ • งานทางด้านการควบคุมอุปกรณ์ H/W • สร้างโปรแกรมสำหรับจัดพิมพ์เอกสาร C Programing
ต่อ • สร้างตัวแปรภาษาอื่น ๆ • สร้างโปรแกรมเพื่อใช้สำหรับงานทั่ว ๆ ไป • เป็นรากฐานที่สำคัญของภาษาใหม่จำนวนมาก C Programing
แบบฝึกหัด 1 • ภาษา C คืออะไร ? • ภาษา C มีจุดเด่นอะไรบ้าง ? • ภาษาการเขียนโปรแกรมแบ่งระดับตามลักษณะและการทำงาน? มีทั้งหมดกี่ระดับ ? อธิบายมาพอใจ • หลักในการแปลภาษามีอะไรบ้าง ? • ภาษา C มีขั้นตอนวิธีการทำงานอย่างไร ? C Programing
โครงสร้างของภาษา C จะแบ่งออกเป็น 2 ส่วนดังนี้ ส่วนหัวของโปรแกรมซึ่งเป็นส่วนของ การกำหนดค่าเริ่มต้น และประกาศตัวแปร 1 ส่วนของตัวโปรแกรมซึ่งเริ่มจาก Main() ซึ่งอาจจะมีการเรียกใช้ Function อื่น ๆ ก็ได้ 2 C Programing
ตัวอย่าง การเขียนโปรแกรมภาษา C #include <stdio.h> main() { printf(“Hello World\n”); } Head Body C Programing
ส่วนหัวของโปรแกรม ส่วนหัวของโปรแกรมจะเริ่มต้นตั้งแต่บรรทัดแรกของโปรแกรมจนมาสิ้นสุดที่บรรทัดก่อน Main() จะแบ่งออกเป็น 2 ส่วนดังนี้ 1. คำสั่งพิเศษ (Preprocessor Directive) 2. การประกาศตัวแปร (Declaration) C Programing
#include <stdio.h> int x =4; main() { printf(“Hello World\n”); } 1 2 C Programing
Preprocessor directive เป็นคำสั่งรูปแบบหนึ่งของภาษา C ที่มีความพิเศษ โดยในขั้นตอนการแปลความหมายของโปรแกรม ถ้าตัวแปลภาษา C ตรวจพบว่ามีการใช้ Preprocessor ภายในโปรแกรม ก็จะถูกแปลความหมายเป็นลำดับแรกก่อนคำสั่งอื่น ๆ รูปแบบของการเขียน Preprocessor จะต้องขึ้นต้นเครื่องหมาย # แต่ไม่ต้องลงท้ายด้วยเครื่อง ; เหมือนคำสั่งอื่น ๆ ทั่วไป C Programing
#Include #Define #Error #if #Endfi #Elid #Else #ifdef #ifndef #undef #Line #Pragma Preprocessor directive (ต่อ) คำสั่งที่จัดอยู่ในกลุ่มของ Preprocessor Directive C Programing
การประกาศตัวแปร #include <Stdio.h> int a= 5; int b= 10; int c; main() { c= a+b; printf (“sum = %d\n”, c); } ตัวแปรจำนวนเต็ม หาผลบวก แสดงผลบวก C Programing
รูปแบบการเขียนคำสั่งภาษา C • คำสั่งในภาษา C จะต้องเขียนด้วยตัวอักษรพิมพ์เล็ก • ทุกคำสั่งต้องลงท้ายด้วย ; • สามารถเขียนคำสั่งได้อย่างอิสระ เช่น int a = 5; int b = 10; printf (Sum = %d\n”, a+b); C Programing
คำบรรยายแทรก (Comment) การเขียนคำบรรยายแทรก หรือที่เรียกว่า comment ไว้ภายในโปรแกรมจะช่วยเพิ่มความเข้าใจของตัวเรา หรือเพื่อให้คนที่มาอ่านโปรแกรมเข้าใจในสิ่งที่เราเขียนได้มากขึ้น ซึ่ง รูปแบบจะใช้เครื่องหมาย /* */ ครอบคำบรรยายที่เราต้องการแทรกลงไปในโปรแกรม C Programing
#include <stdio.h> main() { printf (“Hello World\n”); /* Display message Hello world to the Monitor */ } C Programing
ชนิดของข้อมูลในภาษา C • ข้อมูลเลขจำนวนเต็ม (Integer) • ข้อมูลเลขทศนิยม (Float) • ข้อมูลชนิดเลขฐานแปด (Octal) • ข้อมูลชนิดเลขฐานสิบหก (Hexadecimal) • ข้อมูลชนิดตัวอักขระ (Character) • ข้อมูลชนิดข้อความ (String) C Programing
ตัวแปรและหน้าที่ของตัวแปรตัวแปรและหน้าที่ของตัวแปร ตัวแปร (Variable) คือ การจองที่เก็บข้อมูลในหน่วยความจำหลัก (RAM) ของเครื่องคอมพิวเตอร์ พร้อมกับกำหนดชื่อเรียกแทนหน่วยความจำในตำแหน่งนั้น อย่างเช่น ถ้าเราสร้างตัวแปรขึ้นมา 1 ตัวโดยใช้ชื่อ num สำหรับเก็บค่าของตัวเลข 16 เมื่อต้องการนำค่า 16 มาใช้ เราก็เพียงแต่เรียกชื่อ num ซึ่งภาษา C จะแปลความหมายได้ถูกต้องว่ามีค่าเท่ากับ 16 C Programing
ชนิดของตัวแปรในภาษา C สามารถแบ่งได้ 2 ประเภทใหญ่ ๆ คือ 1. ตัวแปรแบบพื้นฐาน (Scalar) ซึ่งหมายถึงที่เก็บข้อมูลได้เพียงค่าเดียวเช่น C Programing
รูปแบบการประกาศตัวแปรรูปแบบการประกาศตัวแปร Type variable; type :ชนิดของตัวแปรที่จะสร้างขึ้น variable :ชื่อของตัวแปรที่ต้องการจะใช้ int num; float y; char c; double salary; ตัวอย่าง C Programing
รูปแบบการประกาศตัวแปร (ต่อ) Type variable = value; long million = 1000000; int oct = 0234; int hex = 0x45; float temp = 15.236; double stat = 1.25e-02; char ch =‘#’; ตัวอย่าง C Programing
รูปแบบการประกาศตัวแปร (ต่อ) Type variable-1, variable-2,... variable-n; type :ชนิดของตัวแปรที่จะสร้างขึ้น variable-1... Variable-n :ชื่อของตัวแปรที่ต้องการจะใช้ int num1,num2,num3; float point1, point2,point3 = 12.00; char a,b = ‘B’, c,d =‘D’; ตัวอย่าง C Programing
หลักการตั้งชื่อตัวแปรหลักการตั้งชื่อตัวแปร • ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _ เท่านั้น • ความยาวต้องไม่เกิน 32 ตัวอักษร • ภายในชื่อตัวแปรให้ใช้ตัวอักษร A-Z หรือ a-z หรือ 0-9 หรือ _ • ห้ามเว้นช่องว่างภายในตัวแปร หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2 • การใช้ตัวอักษรตัวใหญ่ และตัวเล็ก มีความแตกต่างกัน • ห้ามตั้งชื่อตัวแปรซ้ำกับคำสงวน (Reserved Word) C Programing
คำสงวน (Reserved Word) auto break case char const continue default do double else if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while C Programing
ตัวอย่างการตั้งชื่อตัวแปรตัวอย่างการตั้งชื่อตัวแปร class_room hi-tech 9number _hello123 age# right! last name ถูกต้อง ไม่ถูกต้อง ไม่ถูกต้อง ถูกต้อง ไม่ถูกต้อง ไม่ถูกต้อง ไม่ถูกต้อง C Programing
ตัวแปรสำหรับข้อมูลชนิดข้อความตัวแปรสำหรับข้อมูลชนิดข้อความ char variable[n]; n : คือจำนวนของตัวแปรชนิดอักขระ (Char) ที่จะสร้างขึ้น โดยถ้าข้อความมีอักขระทั้งหมด 10 ตัว จะต้องใส่จำนวนเป็น 11 เนื่องจากภาษา C มีข้อกำหนดว่าจะเก็บข้อมูลชนิดข้อความ ตัวสุดท้ายต้องเป็นอักขระว่าง ซึ่งจะเขียนแทนด้วย \0 เพื่อบอกให้รู้ว่าเป็นข้อความ Variable :ชื่อของตัวแปร โดยต้องตั้งชื่อให้ถูกต้องตามหลักการตั้งชื่อ char name [10]; C Programing
คำสั่งที่ใช้ในการแสดงผล และการรับข้อมูล printf() รูปแบบ printf (“ control”,value); C Programing
control : ส่วนที่ใช้ควบคุมการแสดงผล ซึ่งมีอยู่ 3 แบบด้วยกัน คือ ข้อความธรรมดา รหัสควบคุมรูปแบบ (เช่น %d, %f) และอักขระควบคุมการแสดงผล(เช่น \n) โดยส่วนที่ใช้ควบคุมการแสดงผลเหล่านี้จะต้องเขียนไว้ภายใน “ “ value:คือ ค่าของเครื่องหมาย นิพจน์ หรือมาโครที่ต้องการแสดงผล โดยถ้ามีมากกว่าหนึ่งตัวให้ใช้เครื่องหมาย , (comma) คั่นระหว่างแต่ละตัว C Programing
ตัวอย่าง /*Ex1 */ #include <stdio.h> main() { printf (“Nice to meet you!”); } C Programing
ตัวอย่าง /*Ex2 */ #include <stdio.h> int num = 32; main() { printf (num); } C Programing
รหัสรูปแบบ (Format Code) • %d สำหรับการแสดงผลตัวเลขจำนวนเต็ม • %u สำหรับการแสดงผลตัวเลขจำนวนเต็มบวก • %o สำหรับการแสดงผลออกมาในรูปแบบของเลขฐานแปด • %x สำหรับการแสดงผลออกมาในรูปแบบของเลขฐานสิบหก • %f สำหรับการแสดงผลตัวเลขทศนิยม • %e สำหรับการแสดงผลตัวเลขทศนิยมออกมาในรูปแบบ E • %c สำหรับแสดงผลอักขระ 1 ตัว • %s สำหรับแสดงผลข้อความ • %p สำหรับการแสดงผลตัวชี้ตำแหน่ง C Programing
ตัวอย่าง /* EX 3 */ #intclude <Stdio.h> int x1 = 43, x2 = 0x77, x3 = 0573; float y1 = -764.512, y2 = 1.25e02; char z = ‘A’; char name[11] = “Sriwattana” main() { printf (“%d“, x1); printf (“%x %o “,x2, x3); printf (“%f %e “, y1,y2); printf (“%c %s “, z, name); } C Programing
อักขระควบคุมการแสดงผลอักขระควบคุมการแสดงผล • \n ขึ้นบรรทัดใหม่ • \t เว้นช่องว่างเป็นระยะ 1 Tab (6 ตัวอักษร) • \r กำหนดให้ Cursor ไปอยู่ต้นบรรทัด • \f เว้นช่องว่างเป็นระยะ 1 หน้าจอ • \b ลบอักขระตัวท้ายสุดออก 1 ตัว C Programing
ตัวอย่าง #include <stdio.n> #define PUBLISH “infopress” int x1 =14, x2 = 5; main() { printf (“This is the book from %s\n”, PUBLISH); printf(“Sum of %d + %d =\t%d\n”,x1, x2, x1+x2); } C Programing
รับข้อมูลจาก Keyboard ด้วย scanf() Scanf ( ) รูปแบบ scanf (“ format “ , &variable); C Programing
format : เป็นการกำหนดรูปแบบ ของข้อมูลที่จะรับเข้ามา โดยจะใช้รหัสรูปแบบเหมือนกับ printf () variable :ตัวแปรที่ใช้สำหรับรับข้อมูลเข้ามา โดยจะต้องเขียนนำหน้าด้วยเครื่องหมาย & ยกเว้นตัวแปรที่จะเก็บข้อความเท่านั้น C Programing
ตัวอย่าง /* EX 4 */ #include <stdio.h> int age; main () { clrscr( ); printf (“How Old are you?”); scanf (“%d”,&age); printf (“You are %d years old. \n”,age); } C Programing