งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 องค์ประกอบภาษา C Elements of C Language. 2 กระบวนการแปล The compilation process C program  group characters into tokens  translate to target code.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 องค์ประกอบภาษา C Elements of C Language. 2 กระบวนการแปล The compilation process C program  group characters into tokens  translate to target code."— ใบสำเนางานนำเสนอ:

1 1 องค์ประกอบภาษา C Elements of C Language

2 2 กระบวนการแปล The compilation process C program  group characters into tokens  translate to target code  translate to target code 6 types of tokens in ANSI C  คำหลัก (Keywords)  ค่าคงที่ (Constants)  ชื่อเฉพาะ (Identifiers)  ตัวดำเนินการ (Operators)  เครื่องหมายวรรคตอน (Punctuation)

3 3 องค์ประกอบภาษาซี Elements of C language สิ่งที่ก่อให้เกิดเป็นคำสั่งและระเบียบการใช้คำสั่ง เซตของตัวอักษร (Character set) เซตของตัวอักษร (Character set) ค่าคงที่ (Constants) ค่าคงที่ (Constants) คำหลัก (Keywords) คำหลัก (Keywords) ตัวแปร (Variables) ตัวแปร (Variables) ตัวดำเนินการ (Operators) ตัวดำเนินการ (Operators) นิพจน์ (Expression) นิพจน์ (Expression) คำสั่ง (Statements) คำสั่ง (Statements)

4 4 เซตของตัวอักขระ

5 5 รหัสควบคุม (Escape sequences) \aAlert (bell) \bBackspace \fForm feed \nNew line \rCarriage return \tTab \0Null character \’Single quotation mark \”Double quotation mark \\backslash \dddASCII character in octal notation \xxxASCII character in hexadecimal notation

6 6 ค่าคงที่ เลขจำนวนเต็ม (Integer constants) เลขจำนวนเต็ม (Integer constants) เลขมีจุดทศนิยม (Floating-point constants) เลขมีจุดทศนิยม (Floating-point constants) อักขระ (Character constants) อักขระ (Character constants) สายอักขระ (String constants) สายอักขระ (String constants)

7 7 ค่าคงที่เลขจำนวนเต็ม รูปแบบ รูปแบบ 1. Digits (เลขฐานสิบ) 1. Digits (เลขฐานสิบ) 2. 0octaldigits 3. 0Xhexadecimaldigits 0xhexadecimaldigits 0xhexadecimaldigits ตัวอย่าง ตัวอย่าง ค่าคงที่ในรูปฐาน 10 ฐาน 8 ฐาน 16 ค่าคงที่ในรูปฐาน 10 ฐาน 8 ฐาน xa หรือ 0XA xa หรือ 0XA x7fcf หรือ 0X7FCF x7fcf หรือ 0X7FCF 32768U U 0x8000U 32768U U 0x8000U

8 8 ค่าคงที่เลขมีจุดทศนิยม รูปแบบ รูปแบบ [+|-][digits]. [digits][E|e [+|-] digits] [+|-][digits]. [digits][E|e [+|-] digits] ตัวอย่าง ตัวอย่าง e1 1575E e1 1575E e2.0025E e2.0025E e E e E L 1.25L

9 9 ค่าคงที่อักขระ รูปแบบ รูปแบบ ‘อักขระ’ ‘อักขระ’ ‘รหัสควบคุม’ ‘รหัสควบคุม’ ตัวอย่าง ตัวอย่าง ค่าคงที่ภาษา C ค่าอักขระ ค่าคงที่ภาษา C ค่าอักขระ ‘a’ a ‘a’ a ‘\a’ การส่งเสียงบี๊บ(alert) ‘\a’ การส่งเสียงบี๊บ(alert) ‘\\’ \ (backslash) ‘\\’ \ (backslash) ‘\x1b’ Esc ‘\x1b’ Esc

10 10 ค่าคงที่สายอักขระ รูปแบบ รูปแบบ “ข้อความ” [“ ข้อความ ”] “ข้อความ” [“ ข้อความ ”]ตัวอย่าง ค่าคงที่ภาษา C ภาพจำลองหน่วยความจำ ค่าคงที่ภาษา C ภาพจำลองหน่วยความจำ “This is a string literal.” “This is a string literal.” “Hello” “world” H e l l o w o r l d \0 “Hello” “world” H e l l o w o r l d \0 “a” ไม่เท่ากับ ‘a’ “a” ไม่เท่ากับ ‘a’ T h i s i s a s t r i n g l i t e r a l. \0

11 11 คำหลัก คำที่ตัวแปลภาษากำหนดหน้าที่และความหมายเฉพาะ คำที่ตัวแปลภาษากำหนดหน้าที่และความหมายเฉพาะ auto breakcasecharconst continuedefaultdodoubleelse enumexternfloatforgoto ifintlongregisterreturn shortsignedsizeofstaticstruct switchtypedefunionunsignedvoid volatilewhile The additional keywords in Turbo C The additional keywords in Turbo C asm cdecl far huge interrupt near pascal

12 12 ตัวแปร (variables) ตัวแปร ประกอบด้วย ๒ ส่วนสำคัญ ตัวแปร ประกอบด้วย ๒ ส่วนสำคัญ ชื่อ ข้อมูล ซึ่งเรียกว่าเป็น ค่าของตัวแปร ชื่อตัวแปร  ตัวอักษร ตัวเลข _ (เครื่องหมาย underscore) ชื่อตัวแปร  ตัวอักษร ตัวเลข _ (เครื่องหมาย underscore) กฏการตั้งชื่อตัวแปร ไม่ตรงหรือซ้ำกับคำหลัก อักขระตัวแรกของชื่อต้องเป็นตัวอักษร หรือ _ เท่านั้น ห้ามใช้อักขระอื่น นอกจาก ตัวอักษร ตัวเลข และ _ เป็น ส่วนหนึ่งของชื่อตัวแปร ความยาวของชื่อไม่จำกัด แต่ถือเพียง 31 ตัวแรกเป็น นัยสำคัญ acc _ok S_date addr1 ChiangMaiUniversity acc _ok S_date addr1 ChiangMaiUniversity  Don’t #account char 707james

13 13 ตัวแปร การประกาศตัวแปร การประกาศตัวแปร [=ค่าเริ่มต้น][, ตัวแปร[=ค่าเริ่มต้น]]; [=ค่าเริ่มต้น][, ตัวแปร[=ค่าเริ่มต้น]]; ชนิดข้อมูล ชนิดข้อมูล char signed charunsigned char short int long unsigned short unsignedunsigned long floatdoublelong double ตัวอย่าง ตัวอย่าง charc, msg[] = “Your welcome!”; inti, x = 5; unsigned u=32768;

14 14 ตัวดำเนินการ (Operators) (Arithmetic operators) ตัวดำเนินการเชิงคำนวณ (Arithmetic operators) Assignment operators) ตัวดำเนินการเพื่อกำหนดค่า (Assignment operators) ตัวดำเนินการเปรียบเทียบ (Relational operators) ตัวดำเนินการเปรียบเทียบ (Relational operators) ตัวดำเนินการตรรกะ (Logical operators) ตัวดำเนินการตรรกะ (Logical operators) ตัวดำเนินการพิเศษ (Special operators) ตัวดำเนินการพิเศษ (Special operators) Increment operator ++ Increment operator ++ Decrement operator -- Decrement operator -- Address operator & Address operator & Indirection operator * Indirection operator * Conditional operator ? : Conditional operator ? :

15 15 Arithmetic Operators) สัญลักษณ์ ความหมาย ตัวอย่าง สัญลักษณ์ ความหมาย ตัวอย่าง - Negation -x - Negation -x * คูณ x * 2 * คูณ x * 2 / หาร x / 2 / หาร x / 2 % หารเก็บเศษ x % 2 % หารเก็บเศษ x % 2 + บวก x บวก x ลบ x ลบ x - 2

16 16 ลำดับความสำคัญของตัว ดำเนินการ ตัวดำเนินการ ลำดับดำเนินการ ( ) ซ้ายไปขวา + (unary) -(unary) ขวาไปซ้าย * / % ซ้ายไปขวา + - ซ้ายไปขวา

17 17 Arithmetic operators int a=1, b=2,c=3, d=4; การประกาศตัวแปรและกำหนดค่าเริ่มต้น นิพจน์ นิพจน์เทียบเท่า ค่าของนิพจน์ a * b / c a + b % c * d / b + c (a * b) / c 0 a + ((b % c) * 1) 3 (8 - ((-d) / b)) + c 13

18 18 Assignment Operators รูปแบบ รูปแบบ ตัวแปร = นิพจน์ ตัวแปร op= นิพจน์ ตัวแปร = (ตัวแปร op (นิพจน์)) สัญลักษณ์ ตัวอย่าง ความหมาย สัญลักษณ์ ตัวอย่าง ความหมาย = Simple assignment x = 2 x = 2 = Simple assignment x = 2 x = 2 *= Addition assignmentx *= 2 x = x*2 *= Addition assignmentx *= 2 x = x*2 /= Division assignment x /= 2 x = x/2 /= Division assignment x /= 2 x = x/2 %= Remainder assignment x %= 2 x = x%2 %= Remainder assignment x %= 2 x = x%2 +=Addition assignmentx += 2 x = x+2 +=Addition assignmentx += 2 x = x+2 -= Subtraction assignment x -= 2 x = x-2 -= Subtraction assignment x -= 2 x = x-2

19 19 ลำดับความสำคัญของตัว ดำเนินการ ตัวดำเนินการ ลำดับดำเนินการ ( ) ซ้ายไปขวา + (unary) -(unary) ขวาไปซ้าย * / % ซ้ายไปขวา + - ซ้ายไปขวา = += -= *= /= %= ขวาไปซ้าย

20 20 Assignment operators int a=1, b=2,c=3, d=4; การประกาศตัวแปรและกำหนดค่าเริ่มต้น นิพจน์ นิพจน์เทียบเท่า ค่าของนิพจน์ a += b + c b *= c = d + 5 a = (a + (b + c)) 6 b = (b * (c = (d + 5))) 18

21 21 Math library #include #include Function prototype description Function prototype description double sqrt (double) หาค่ารากที่สอง double sqrt (double) หาค่ารากที่สอง double exp (double) หาค่า e x double exp (double) หาค่า e x double log (double) หาค่า log ฐาน e double log (double) หาค่า log ฐาน e double sin (double) Sine double sin (double) Sine double cos (double) Cosine double cos (double) Cosine double tan (double) Tangent double tan (double) Tangent double pow (double, double) หาค่า x y double pow (double, double) หาค่า x y int rand () หาค่าเลขสุ่ม int rand () หาค่าเลขสุ่ม

22 22 นิพจน์ รูปแบบ รูปแบบ [ค่าคงที่] [ตัวดำนินการ] ค่าคงที่ [ค่าคงที่] [ตัวดำนินการ] ตัวแปร [ค่าคงที่] [ตัวดำนินการ] ตัวแปร ตัวแปร ตัวดำนินการ ค่าคงที่ ตัวแปร ตัวดำนินการ ค่าคงที่ ตัวแปร ตัวดำนินการ ตัวแปร ตัวแปร ตัวดำนินการ ตัวแปร ชนิดข้อมูล ชนิดข้อมูล ชนิดข้อมูลของนิพจน์ขึ้นอยู่กับชนิดข้อมูลของค่าคงที่ หรือตัวแปรในนิพจน์ หากค่าคงที่หรือตัวแปรมีชนิดข้อมูล ต่างกัน ค่าของนิพจน์จะมีชนิดข้อมูลตามชนิดที่มีขนาด ใหญ่ ชนิดข้อมูลของนิพจน์ขึ้นอยู่กับชนิดข้อมูลของค่าคงที่ หรือตัวแปรในนิพจน์ หากค่าคงที่หรือตัวแปรมีชนิดข้อมูล ต่างกัน ค่าของนิพจน์จะมีชนิดข้อมูลตามชนิดที่มีขนาด ใหญ่ ขนาดของชนิดข้อมูล ขนาดของชนิดข้อมูล char < short < int < long < float < double < long double

23 23 ตัวอย่าง #include #include void main() { int a = 1, b = 2, c = 3; int a = 1, b = 2, c = 3; x = a + b; x = a + b; print(“x = %d\n”, x); print(“x = %d\n”, x);} เมื่อทำการ compile โปรแกรมนี้จะมีข้อผิดพลาดปรากฎดังนี้ Error EX1.C 7: Undefined symbol ‘x’ in function main Warning EX1.C 9: ‘c’ is assigned a value that is never used


ดาวน์โหลด ppt 1 องค์ประกอบภาษา C Elements of C Language. 2 กระบวนการแปล The compilation process C program  group characters into tokens  translate to target code.

งานนำเสนอที่คล้ายกัน


Ads by Google