226111 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
Advertisements

Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
โปรแกรม Microsoft Excel มี ความสามารถเด่นในด้านการคำนวณ ซึ่งมี ลักษณะการคำนวณ 2 รูปแบบใหญ่ๆ ได้แก่ การคำนวณด้วยสูตร (Formula) การคำนวณด้วยฟังก์ชันสำเร็จรูป.
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
การใช้งานโปรแกรม SPSS
Operator of String Data Type
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
บทที่ 4 คำสั่งควบคุม โปรแกรม. คำสั่งควบคุมโปรแกรมออกได้เป็น 2 ประเภท คือ คำสั่งแบบกำหนดเงื่อนไข (Conditional Statement) คำสั่งแบบทำงานซ้ำ (Repetitive.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 6 แถวลำดับ (Array)
การใช้งาน Microsoft Excel
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
เกม คณิตคิดเร็ว.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ข้อมูลและการดำเนินการกับข้อมูล
บทที่ 5 อินพุตและเอาต์พุต
IP-Addressing and Subneting
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ
Number system (Review)
IP-Addressing and Subneting
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 3 ชนิดข้อมูลและการแทนชนิดข้อมูลการประกาศตัวแปร.
การประยุกต์ Logic Gates ภาค 2
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
ตัวแปรและชนิดของข้อมูล
BC320 Introduction to Computer Programming
START INPUT R = 1 R = R Yes R*R <=2 No R = R PROCESS
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 13 การจัดการไฟล์ (File Management)
ตัวแปรกับชนิดของข้อมูล
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
Data storage II Introduction to Computer Science ( )
Chapter 2 ตัวดำเนินการ และนิพจน์.
บริษัท พัฒนาวิชาการ (2535) จำกัด
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
อาจารย์อภิพงศ์ ปิงยศ Lab 06 : Microsoft Excel (Part2) ทท101 เทคโนโลยีสารสนเทศและนวัตกรรมการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 7 การประมวลผลอาร์เรย์
OPERATOR ภาษาปาสคาล (Pascal)
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array: One Dimension Programming I 9.
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Decision: Single and Double Selection (if and if-else statement)
พอยเตอร์ #include <stdio.h> void main() { int age; int *pointer;
Computer Game Programming
ใบสำเนางานนำเสนอ:

226111 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์ (Logic and Expression)

Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p Precedence of Operators 5 Assignments

objectives เพื่อให้นิสิตรู้และเข้าใจในเครื่องหมายและการดำเนินการทางตรรกศาสตร์อันเป็นพื้นฐานในการประมวลผลเบื้องต้นของภาษาคอมพิวเตอร์ เครื่องหมาย การคำนวณทางคณิตศาสตร์ และลำดับความสำคัญของเครื่องหมายในการคำนวณ เครื่องหมายและการดำเนินการเปรียบเทียบ เครื่องหมายและการดำเนินการทางตรรกศาสตร์ เพื่อเตรียมความพร้อมให้นิสิตสามารถเลือกใช้ตรรกะเพื่อแก้ปัญหาโจทย์ทางตรรกศาสตร์เบื้องต้นได้

Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p Precedence of Operators 5 Assignments

Data Type of Variables ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็มได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์ ข้อมูลชนิดจำนวนเต็ม (Integer) คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์ ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) คือข้อมูลที่มีเลขเป็นจำนวนเต็ม ใช้พื้นที่ 4 ไบต์ ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลที่เป็นเลขทศนิยมใช้พื้นที่ในการเก็บขนาด 4 ไบต์ ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) คือข้อมูลที่เป็นเลขทศนิยมใช้พื้นที่ในการเก็บ 8 ไบต์

Size of Variables ชนิดของตัวแปร ขนาด ค่าต่ำสุด ค่าสูงสุด unsigned char 8 bit 255 char -128 127 unsigned int 16 bit 32 bit 65,535 4,294,967,295 short int -32,768 32,767 int -2,147,483,648 2,147,483,647 unsigned long long float 3.410-38 3.4 1038 double 64 bit 1.7 10-308 1.710308 long double 80 bit 3.4 10-4932 3.4104932

Size of Variables & Memory Size char short int unsigned int long unsigned long float double long double Maximum Minimum

Variable การเก็บค่าของตัวแปรทำได้ 2 ลักษณะ คือ แบบตัวแปรที่เก็บค่าคงที่ (Constant) - ค่าคงที่ แบบตัวแปรที่เก็บค่าทั่วไป (Variable) - ตัวแปร การสร้างตัวแปร ต้องรู้ว่าจะใช้ตัวแปรเก็บข้อมูลอะไร ประกาศตัวแปรให้เหมาะสมกับข้อมูลที่จะเก็บ(ชนิดของข้อมูล) ชนิดของตัวแปรหลักในภาษา C ตัวแปรที่ใช้เก็บอักขระ (Character variable) ตัวแปรที่ใช้เก็บเลขจำนวนเต็ม (Integer variable) ตัวแปรที่ใช้เก็บเลขจำนวนจริง (Float variable) ตัวแปรที่ใช้เก็บอักขระแบบสตริง (String variable)

Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p Precedence of Operators 5 Assignments

Variable & Expression ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เช่น a, B, Name นิพจน์  (Expression) คือ การนำข้อมูลและตัวแปรมาดำเนินการด้วยตัวดำเนินการ เช่น เครื่องหมายทางคณิตศาสตร์   ตรรกศาสตร์ หรือเครื่องหมายเปรียบเทียบ ดังตัวอย่างเช่น 15a, 4ab+5c

Operand ตัวที่ 1 (ตัวแปร) Operand ตัวที่ 2 (ค่าคงที่) Operator Operator & Operand N - 1 นิพจน์ (Expression) Operand ตัวที่ 1 (ตัวแปร) Operand ตัวที่ 2 (ค่าคงที่) Operator 5 * ( a * b – 3 )

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Arithmetic Operators เครื่องหมาย การทำงาน ตัวอย่าง + บวก ans = a + b; - ลบ ans = a - b; * คูณ ans = a * b; / หาร ans = a / b; % โมดูลัส (modulo) ans = a % b;

Results of Arithmetic Operators +, -, *, / ใช้แทนการดำเนินการ บวก ลบ คูณ หาร ตามลำดับ ผลลัพธ์ที่ได้จะขึ้นอยู่กับ operand ที่มากระทำกัน โดยจะถูกแปลงเป็น operand ที่มีขนาดใหญ่กว่าก่อน จำนวนเต็ม +, -, *, / จำนวนเต็ม => จำนวนเต็ม จำนวนเต็ม +, -, *, / จำนวนจริง => จำนวนจริง จำนวนจริง +, -, *, / จำนวนเต็ม => จำนวนจริง จำนวนจริง +, -, *, / จำนวนจริง => จำนวนจริง

Examples of Arithmetic Operators Type 1 Operator Type 2 Result Example int +,-,*,/ 3*3 9 19/2 float 3*3.0 9.000000 19/2.0 9.500000 3.0*3 19.0/2 3.0*3.0 19.0/2.0 % 7%4 3 8%4

The Difference of Modulus & Divide ผลลัพธ์ที่ได้จะเป็นเศษของการหาร เช่น 0 % 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 0 1 / 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 1 2 % 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 2 3 / 3 => ผลหารได้ 1 ครั้ง เหลือเศษ 0 4 % 3 => ผลหารได้ 1 ครั้ง เหลือเศษ 1

Arithmetic Operators Example /* Program to demonstrate the working of arithmetic operators in C. */ #include <stdio.h> int main(){ int a=9,b=4,c; c=a+b; c=a-b; c=a*b; c=a/b; c=a%b; return 0;}

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Relational Operators เครื่องหมาย การเปรียบเทียบ ตัวอย่าง == เท่ากับ x == y != ไม่เท่ากับ x != y > มากกว่า x > y >= มากกว่าหรือเท่ากับ x >= y < น้อยกว่า x < y <= น้อยกว่าหรือเท่ากับ x <= y

Examples of Relational Operators การเปรียบเทียบ ผลที่ได้ 7 == 9 False 7 != 9 True 8 > 8 8 >= 8 (10+9)<7 4 <= 3 การเปรียบเทียบ ผลที่ได้ 22 == 22 True (3+5)!=8 False 9 > 7 7 >= 9 7<(10+9) 3 <= 4 ไม่ควรใช้เครื่องหมายเท่ากับ == หรือไม่เท่ากับ != สำหรับข้อมูลทศนิยม

Relational Operators Example int a = 21; int b = 10; int c ; if( a == b ) { printf("Line 1 - a is equal to b\n" ); } else { printf("Line 1 - a is not equal to b\n" ); } if ( a < b ) { printf("Line 2 - a is less than b\n" ); } else { printf("Line 2 - a is not less than b\n" ); } if ( a > b ) { printf("Line 3 - a is greater than b\n" ); } else { printf("Line 3 - a is not greater than b\n" ); }

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Logical Operators (1) เครื่องหมาย ความหมาย ตัวอย่าง && และ (and) x && y || หรือ (or) x || y ! ไม่ หรือ ตรงกันข้าม (not) !x

Logical Operators (2) การดำเนินการ ผลที่ได้ การดำเนินการ ผลที่ได้ T && T T T && F F F && T F && F การดำเนินการ ผลที่ได้ T || T T T || F F || T F || F F การดำเนินการ ผลที่ได้ !T F !F T

Logical Operators Example (i < 10) && (j > 0) -> i = 9, j = 2 ; i = 11, j = -10; ((x + y) <= 15) || (i == 5) -> x = 7, y = 8; i = 5; x = 10, y = 7, i = 6; !((i >= 10) || (j <= 0)) -> i = 12, j = 0; i = 8, j = 4; (i < 10) && 0 i = 7; i = 20;

Example of Using the Operators int num1 = 10, num2 = 20, num3 = 30; num1 == num2 False num1 > num2 False (num1<num2) && (num2<num3) True (num1>num2) || (num1>num3) False (num1>num2) || (num2<num3) True

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Bitwise Operators

Example of Bitwise Operators (1) Left shift a<< 1 (a = 12 = 0000 1100) 7 6 5 4 3 2 1 12 24 ข้อสังเกต การเลื่อนบิตทางซ้ายมีค่าเท่ากับการคูณด้วย 2

Example of Bitwise Operators (2) Right shift 127 >> 1 (a = 127 = 0111 1111) 7 6 5 4 3 2 1 127 63 ข้อสังเกต การเลื่อนบิตทางขวามีค่าเท่ากับการหารด้วย 2 (เศษทิ้ง)

Example of Bitwise Operators (3)

Logical & Bitwise Operator ตัวอย่าง 10 = 0000 10102 ; 1 = 0000 00012 Logical Bitwise 3232

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Assignment Operators คือ ตัวดำเนินการเพื่อใช้ในการกำหนดค่าข้อมูล รูปแบบ assignment expression คือ variable = expression กำหนดค่าให้ตัวแปรหนึ่งตัว เช่น x = 2, x = y+2; รูปแบบ Multiple assignment expression คือ variable#1 = variable#2 =… = variable#k = expression กำหนดค่าให้ตัวแปรหลายตัวในคราวเดียวกัน เช่น x = z = w = y + 2

Assignment Operators คือ ตัวดำเนินการเพื่อใช้ในการกำหนดค่าข้อมูล รูปแบบ assignment expression คือ variable = expression กำหนดค่าให้ตัวแปรหนึ่งตัว เช่น x = 2, x = y+2; รูปแบบ Multiple assignment expression คือ variable#1 = variable#2 =… = variable#k = expression กำหนดค่าให้ตัวแปรหลายตัวในคราวเดียวกัน เช่น x = z = w = y + 2

Example of Assignment Operators ตัวอย่าง assignment expression และ multiple assignment expression int i; float x,y; x=i=y=24.3; ค่าที่ได้ x = 24.0 , i = 24 , y = 24.3 หมายเหตุ: ค่าของการ assign ขึ้นอยู่กับชนิดของตัวแปรที่รับค่าและตัวแปรที่อยู่ทางด้านขวา (ทำจากด้านขวามาซ้าย)

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Composition Operator (1) เครื่องหมาย ตัวอย่างการใช้งาน ตัวอย่างรูปแบบเต็ม += y += x; y = y + x; -= y -= x; y = y - x; *= y *= x; y = y * x; /= y /= x; y = y / x; %= y %= x; y = y % x;

Composition Operator (2) คือตัวดำเนินการที่ประกอบไปด้วยตัวดำเนินการประเภทอื่นประกอบกับระหว่างตัวดำเนินการกำหนดค่า

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Increment-Decrement Operator คือตัวดำเนินการเพื่อใช้เพิ่มค่าหรือลดค่าข้อมูล จำนวนเต็ม หรือ Char มี 2 ตัวคือ ++ และ –- (คล้าย X = X +/- 1) รูปแบบอยู่หลังตัวถูกกระทำ (X++, X--) นำค่าไปใช้ก่อนแล้วเพิ่มค่าตัวถูกกระทำ รูปแบบอยู่หน้าตัวถูกกระทำ (++X, --X) เพิ่มค่าก่อนแล้วนำตัวแปรไปใช้ มีใช้เฉพาะภาษาซี

Meaning of Increment & Decrement เครื่องหมาย การทำงาน ตัวอย่าง ขั้นตอนการทำงาน ++ เพิ่มค่าทีละ 1 (Increment) x++; ++x; เพิ่มค่า x ขึ้น 1 y = ++x; กำหนดค่าให้ y y = x++; -- ลดค่าทีละ 1 (Decrement) x--; --x; ลดค่า x ลง 1 y = --x; y = x--;

Example of Increment-Decrement Operator ตัวอย่าง

Test of Increment-Decrement Operator #include<stdio.h> main( ) { int a = 9, b = 6, c = 0; c = (a++) + (++b); printf(“%d %d %d\n”, a, b, c); c = (--a) + (--b); c = ++a; c = c – b--; c = c + --a; c = c - ++b; }

Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators) ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

Type Cast Operators คือ ตัวดำเนินการเพื่อใช้ในการแปลงชนิดค่าข้อมูล มีรูปแบบเป็น (type_specifier) expression type_specifier คือ ชนิดของข้อมูลที่ต้องการแปลง expression คือ นิพจน์ใดๆ ในภาษาซี การแปลงชนิดข้อมูลแบบนี้เราเรียกว่า Explicit type conversion หรือ Explicit type casting หรือ Casting

Example of Type Cast Operators ตัวอย่าง a = 12.4 , b = 5.3 มี float c; c = (int) a + b; แปลงชนิดข้อมูลของตัวแปร a เป็นชนิด int แล้วจึงนำไปบวกกับตัวแปร b : ได้ค่า c = 17.3 c = (int) (a + b); แปลงผลลัพธ์ที่ได้จากการบวกตัวแปร a + b เป็นชนิด int : ได้ค่า c = 18.0

Implicit Type Conversion(1) เป็นการแปลงข้อมูลโดยอัตโนมัติ operator ที่เป็นตัวกระทำระหว่าง operand สองตัวจำเป็นจะต้องเป็น operand ที่เป็นชนิดข้อมูลเดียวกัน ถ้าไม่ใช่แปลงชนิดข้อมูลชนิดใช้เนื้อที่การเก็บน้อยกว่าเป็นใหญ่กว่า char -> short -> int -> long -> float -> double

Implicit Type Conversion(2) ตัวอย่าง กำหนด char ch; int i; float f; double d;

The Other Operators of C Language ( ) parentheses operator คือ เครื่องหมายวงเล็บเพื่อแยกการทำงานของ operator อื่นๆ ออกจากกัน เช่น 2*(3+4) [ ] array subscript operator คือ เครื่องหมายเพื่อกำหนดขนาดของตัวแปรชนิด array เช่น int i [4]; . -> selection (structure-access) operator คือเครื่องหมายเพื่ออ้างถึงข้อมูลในตัวแปรแบบ structure เช่น s.m , s->m *(dereference) &(address) คือ เครื่องหมายที่ใช้ในการอ้างถึง address และข้อมูล (ส่วนใหญ่ใช้กับตัวแปรประเภท pointer) Operator อื่น ๆ เช่น , # ## sizeof

Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p Precedence of Operators 5 Assignments

Precedence of the Operator(1) ลำดับการดำเนินการของตัวดำเนินการต่างๆ หากมีการเขียนต่อกัน คล้ายกันกับการกำหนดความสำคัญของ operator ทางคณิตศาสตร์ a + b * c – d / e (a + (b * c)) – (d / e) 5252

Precedence of the Operator(2)

Precedence of the Operator(3)

Precedence of the Operator(4) ใส่ลำดับก่อน avg = min + max / 2; ลำดับไม่เป็นไปตามต้องการ avg = (min + (max / 2) ); avg = (min + max) / 2;

Precedence of the Operator(5) ตัวอย่าง x = 1 + 6 * 5 – 4 / 2 % 3; x = 1 + 30 – 4 / 2 % 3; x = 1 + 30 – 2 % 3; x = 1 + 30 – 2; x = 31 – 2; x = 29; result = 29

Test of Precedence of the Operator (X= ?)

Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p Precedence of Operators 5 Assignments

Assignment 1 X = 15 + 7 – 5 + (14/2) * 8%5; X = 3 * 15 % 7 - 9 + 11;

Assignment 2 กำหนดให้ A = 1010 01112 , B = 0100 11102 นิพจน์ ผลลัพธ์

Assignment 3 การเปรียบเทียบ ผลที่ได้ การเปรียบเทียบ ผลที่ได้ 6 == 9 7 != 9 8 > 17 9 >= 8 (10+4)<7 5 <= 3 การเปรียบเทียบ ผลที่ได้ 24 == 24 (3+2)!=8 4 > 7 12 >= 9 7<(3+4) 5 <= 4

Assignment 4 กำหนดให้ S = 8, T = 15 นิพจน์ ผลลัพธ์ S += 2 T -= 10