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

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

รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม

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


งานนำเสนอเรื่อง: "รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม"— ใบสำเนางานนำเสนอ:

1 รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
Operator & Expression รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม

2 นิพจน์ นิพจน์ (expression) คือ การดำเนินการที่ประกอบด้วยตัวดำเนินการ(operator) และตัวถูกดำเนินการ (operand) ตัวดำเนินการ (operator) คือ สัญลักษณ์ที่ใช้ในการแทนการกระทำอย่างใดอย่างหนึ่งกับข้อมูล เช่น * / % = > < ตัวถูกดำเนินการ (operand) คือ ข้อมูลที่ถูกกระทำโดยตัวดำเนินการ ซึ่งตัวถูกดำเนินการอาจอยู่ในรูปของ ตัวแปร (variable) , ค่าคงที่ (constant) , ค่าที่ได้รับจากฟังก์ชัน (return function) หรือแม้กระทั่งนิพจน์ (expression) เองก็เป็นตัวถูกดำเนินการได้ เช่น a+b , x++ , a != b , x = (a + b) / 2

3 operand #2 (Expression)
5 * ( a * b ) operand #2 (Expression) operator (*) operand #1 (constant) operand ( a * b ) operator

4 ตัวดำเนินการชนิดต่างๆ ที่ใช้บ่อย
+ / * / % ใช้เพื่อกระทำการทางคณิตศาสตร์กับข้อมูลที่เป็นตัวเลข +, -, * , / แทนการ บวก, ลบ, คูณ, หาร ตามลำดับ % แทนการหารเอาเศษ (modulo, mod) ใช้กับข้อมูลชนิดจำนวนเต็มทั้งตัวตั้งและตัวหาร ผลลัพธ์คือ เศษของการหาร 0 % 3 => หารได้ 0 ครั้ง เหลือเศษ 0 1 % 3 => หารได้ 0 ครั้ง เหลือเศษ 1 2 % 3 => หารได้ 0 ครั้ง เหลือเศษ 2 3 % 3 => หารได้ 1 ครั้ง เหลือเศษ 0 4 % 3 => หารได้ 1 ครั้ง เหลือเศษ 1 ผลลัพธ์จะมีค่าตั้งแต่ 0 ถึง ตัวที่นำมาหาร - 1

5 Implicit type conversion
สำหรับภาษาซี operand ที่จะนำมาดำเนินการกันผ่าน operator ใดๆ ต้องเป็นข้อมูลชนิดเดียวกัน และผลลัพธ์ที่ได้ เป็นข้อมูลชนิดเดียวกันด้วย เช่น ถ้าจะหาผลลัพธ์ของ a / b , a และ b ต้องเป็นข้อมูลชนิดเดียวกันจึงจะนำมาหารกันได้ ถ้า a และ b เป็นข้อมูลชนิด int ผลลัพธ์ที่ได้ก็จะเป็น int ด้วย ถ้า a และ b ไม่ใช่ข้อมูลชนิดเดียวกัน ภาษาซีจะแปลงให้เป็นข้อมูลชนิดเดียวกันก่อนคำนวณ โดยอัตโนมัติ

6 Implicit type conversion
แปลงจากชนิดข้อมูลที่ใช้เนื้อที่ในการจัดเก็บลงหน่วยความจำน้อยกว่าไปเป็นชนิดข้อมูลที่ใช้เนื้อที่ในการจัดเก็บลงหน่วยความจำมากกว่า แปลงจากข้อมูลที่เป็นเลขจำนวนเต็มไปเป็นข้อมูลชนิดเลขจำนวนจริง ลำดับการแปลง char , short , int , long , float , double ถ้าในโปรแกรมข้อมูลที่นำมาคำนวณเป็นตัวเลข เลข 5 => ข้อมูลชนิดจำนวนเต็ม เลข 5.0 => ข้อมูลชนิดจำนวนจริง

7 Implicit type conversion: ตัวอย่าง
กำหนดให้ char ch ; int i ; float f ; double d ; result = ( ch / i ) ( f * d ) - ( f i ) ; int double float int double float double double double double

8 float float float int float float float float float
จากสูตร C = ( 5 / 9 ) * ( F – 32 ) ในภาษาซีต้องเขียนว่า float degC , degF ; degC = ( 5.0 / 9.0 ) * ( degF – 32 ) ; float float float int float float float float float

9 ลำดับความสำคัญของตัวดำเนินการ (operator)
ตัวดำเนินการแต่ละตัวในภาษาซีต่างก็มีลำดับความสำคัญแตกต่างกันเหมือนกับตัวดำเนินการทางคณิตศาสตร์ เช่น a + b * c – d / e ( a + ( b * c ) ) – ( d / e ) 5.0 / 9.0 * F – 32 ( ( 5.0 / 9.0 ) * F ) - 32 ลำดับ Operators การกระทำ 1 ( ) ซ้ายไปขวา 2 * / % 3 + -

10 += , -= , *= , /= , %= ทำหน้าที่คล้ายกัน เป็นการลดรูป
= += -= *= /= %= = คือนำผลลัพธ์ทางขวามือมาใส่ในตัวแปรทางซ้ายมือ (ทำจากขวาไปซ้าย) เช่น a = / 4 ; += , -= , *= , /= , %= ทำหน้าที่คล้ายกัน เป็นการลดรูป Count += 2 ; ลดรูปจาก Count = Count + 2 ; Score – = 2.53 ; ลดรูปจาก Score = Score – 2.53 ; Stock *= value ; ลดรูปจาก Stock = Stock * value ; Divisor /= 10.0 ; ลดรูปจาก Divisor = Divisor / 10.0 ; remind %= 10 ; ลดรูปจาก remind = remind % 10 ;

11 ++ -- ++ ใช้แทนคำสั่ง a += 1 -- ใช้แทนคำสั่ง a -= 1
++ ใช้แทนคำสั่ง a += 1 -- ใช้แทนคำสั่ง a -= 1 สามารถวาง ++ , -- ไว้ก่อนหรือหลังตัวแปรก็ได้ ถ้าวางไว้หลัง (เช่น a++ , a--) หมายถึง นำ a ไปใช้งานก่อน แล้วจึงทำ a += 1 หรือ a -= 1 ถ้าวางไว้ก่อน (เช่น ++a , --a) หมายถึง ทำ a += 1 หรือ a -= 1 ก่อนแล้วจึงนำ a ไปใช้งาน

12 i = 3 ; b = i ; i = i + 1 ; i = 3 ; b = i++; มีค่าเท่ากับ
a++ หมายถึง นำค่าที่อยู่ในตัวแปร a ไปใช้งานก่อน แล้วจึงทำการเพิ่มค่าของ a ขึ้นมาอีก 1 i = 3 ; b = i ; i = i + 1 ; i = 3 ; b = i++; มีค่าเท่ากับ ได้ผลลัพธ์เป็น b = 3 , i = 4

13 i = 3 ; i = i + 1 ; b = i; i = 3 ; b = ++i; มีค่าเท่ากับ
++a หมายถึง เพิ่มค่าที่เก็บอยู่ในตัวแปร a ขึ้นมาอีก 1 แล้วจึงค่อยนำตัวแปร a ไปใช้งาน i = 3 ; i = i + 1 ; b = i; i = 3 ; b = ++i; มีค่าเท่ากับ ได้ผลลัพธ์เป็น b = 4 , i = 4

14 i = 3 ; b = i; i = i - 1 ; i = 3 ; b = i--; มีค่าเท่ากับ
a-- หมายถึง นำค่าที่อยู่ในตัวแปร a ไปใช้งานก่อน แล้วจึงทำการลดค่าของ a ลงไปอีก 1 i = 3 ; b = i; i = i - 1 ; i = 3 ; b = i--; มีค่าเท่ากับ ได้ผลลัพธ์เป็น b = 3 , i = 2

15 i = 3 ; i = i - 1 ; b = i; i = 3 ; b = --i; มีค่าเท่ากับ
--a หมายถึง ลดค่าที่เก็บอยู่ในตัวแปร a ลงไปอีก 1 แล้วจึงค่อยนำตัวแปร a ไปใช้งาน i = 3 ; i = i - 1 ; b = i; i = 3 ; b = --i; มีค่าเท่ากับ ได้ผลลัพธ์เป็น b = 2 , i = 2

16 > , < , >= , <= , == , !=
ใช้ในการเปรียบเทียบ มักเจอในการทำงานแบบมีเงื่อนไข เช่น ให้พิมพ์คำว่า “pass” เมื่อผู้ใช้ได้คะแนนตั้งแต่ 50 ขึ้นไป ให้พิมพ์คำว่า “fail” เมื่อผู้ใช้ได้คะแนนน้อยกว่า 50 > หมายถึงการเปรียบเทียบ “มากกว่า” < หมายถึงการเปรียบเทียบ “น้อยกว่า” >= หมายถึงการเปรียบเทียบ “มากกว่าหรือเท่ากับ” <= หมายถึงการเปรียบเทียบ “น้อยกว่าหรือเท่ากับ” == หมายถึงการเปรียบเทียบ “เท่ากับ” != หมายถึงการเปรียบเทียบ “ไม่เท่ากับ”

17 ex4.cpp #include <stdio.h> void main() { int num1,num2;
printf("Enter 2 integer, and I will tell you\n"); scanf("%d%d",&num1,&num2); if (num1 < num2) printf("%d is less than %d\n",num1,num2); } } // end program

18 ลองเพิ่มคำสั่งต่อท้ายว่า
if (num1 > num2) { printf("%d is greater than %d\n",num1,num2); } แล้วรันโปรแกรมทดสอบ ลองเพิ่มคำสั่ง if ในการเช็คเงื่อนไข <= , >= , == , != แล้วรันโปรแกรมทดสอบ


ดาวน์โหลด ppt รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม

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


Ads by Google