226101 Computer Programming การเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 4 โอเปอร์เรเตอร์และตัวดำเนินการ
วัตถุประสงค์ เข้าใจหลักการเปลี่ยน data type ในการแสดงผล สามารถใช้งานโอเปอเรเตอร์ในการเขียนโปรแกรมภาษาซีได้ สามารถคำนวณค่าจาก ตัวดำเนินการและโอเปอเรเตอร์ที่มีได้ เข้าใจโอเปอเรเตอร์ระดับบิต เข้าใจหลักการโอเปอเรเตอร์แบบสั้น
โอเปอเรเตอร์และการดำเนินการ การเปลี่ยนชนิดข้อมูล int i = 5; printf(‘digit is %d’,i); float j = 5; printf(‘digit is %f’,j); int k = 5.5; printf(‘digit is %d’,k); float l = 5.5; printf(‘digit is %f’,l); จะได้ผลลัพธ์เป็นอย่างไร ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ตัวดำเนินการ (operator) หมายถึง + การบวก - การลบ * หารคูณ / การหาร % มอดูเลชั่น(การหารเอาเศษ) ++ การเพิ่ม -- ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ตัวอย่าง นิพจน์ ค่า 10 + 3 13 10 – 3 7 10 * 3 30 10 / 3 3.333 10 % 3 1 นิพจน์(int) ค่า 7 / 8 9 / 8 1 1 / 3 10 / 3 3 10 % 3 นิพจน์(float) ค่า 7 / 8 0.875 9 / 8 1.125 1 / 3 0.333 10 / 3 3.333 10 % 3 1 ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ int i = 1, j = 1; j = i++; printf(“value of i,j is %d,%d”,i,j); ---------------------------------------------------------------------------------------- j = ++i; ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ลำดับความสำคัญของเครื่องหมายโอเปอเรเตอร์ ลำดับความสำคัญ โอเปอเรเตอร์ ( ) ++ หรือ -- หน้าตัวเลข * , / , % + , - ซ้ายไปขวา ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ลำดับความสำคัญของเครื่องหมายโอเปอเรเตอร์ 1 * 3 / 3 * 4 % 5 = ? 4 (2+3*2) / (1+8*2-9) = ? 1 (2+3*2) / (1+8%2/2*3-9) = ? -1 (2+3*2) / (1+2/(8%2) *3-9) = ? error devide by zero 1+++3*(2-1)---1 = ? 4 ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ลำดับความสำคัญของชนิดข้อมูล ชนิดข้อมูล ลำดับความสำคัญ long double สูงสุด ต่ำสุด double float unsigned long int long int unsigned int int short char ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ลำดับความสำคัญของชนิดข้อมูล char a = ‘A’; int b = 10; float c = 200.0; double d = 93.2; b = b + a; c = c + a; d = d + a; b = ? c = ? d = ? ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ความสัมพันธ์และโอเปอเรเตอร์ทางตรรกะ โอเปอเรเตอร์ หมายถึง < น้อยกว่า <= น้อยกว่าหรือเท่ากับ > มากกว่า >= มากกว่าหรือเท่ากับ == เท่ากับ != ไม่เท่ากับ && และ || หรือ ! นิเสธ(กลับโอเปอเรเตอร์ให้ตรงข้าม) ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ ความสัมพันธ์และโอเปอเรเตอร์ตรรกะ ตัวดำเนินการ ค่า 1 < 2 1 1 <= 2 1 > 2 1 >= 2 1 == 2 1 != 2 1 && 2 1 || 2 !true ICT, University of Phayao
การกำหนดค่าแบบย่อ โดยปกติ i = i + 1; สามารถเขียนเป็น i += 1; โดยให้ operator ติดกับเครื่องหมายเท่ากับ สามารถใช้ได้กับเครื่อง - * / และ % ด้วย เช่น j -= 1; k *= 1; i /= 2; i %= 3;
โอเปอเรเตอร์และการดำเนินการ โอเปอเรเตอร์ระดับบิต ตัวดำเนินการ ความหมาย & Bitwise AND | Bitwise OR ^ Bitwise XOR (exclusive OR = เหมือนกันเป็น 0 ต่างกันเป็น 1 ) ~ Bitwise NOT >> เลื่อนบิตไปทางขวา (Shift Right) << เลื่อนบิตไปทางซ้าย (Shift Left) ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ โอเปอเรเตอร์ระดับบิต A B A & B A | B ~A A^B 1 ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ สังเกตการ shift บิตด้านซ้าย โอเปอเรเตอร์ระดับบิต 10 = 0 0 0 0 1 0 1 0 2 = 0 0 0 0 0 0 1 0 10 & 2 = 0 0 0 0 0 0 1 0 = 2 10 = 0 0 0 0 1 0 1 0 2 = 0 0 0 0 0 0 1 0 10 | 2 = 0 0 0 0 1 0 1 0 = 10 10 = 0 0 0 0 1 0 1 0 2 = 0 0 0 0 0 0 1 0 10 >> 2 = 0 0 0 0 0 0 1 0 1 0 = 2 10 = 0 0 0 0 1 0 1 0 2 = 0 0 0 0 0 0 1 0 10 << 2 = 0 0 1 0 1 0 0 0 = 40 100>>3 = 12 100<<3 = 800 100<<6 = 6400 100^3 = 103 100^3 = 96 100^3 = 97 ICT, University of Phayao
โอเปอเรเตอร์และการดำเนินการ โอเปอเรเตอร์แบบเงื่อนไข result = เงื่อนไข ? ค่าที่ 1 : ค่าที่ 2 เงื่อนไขเป็นจริง จะได้ผลลัพธ์เป็น ค่าที่ 1 เท็จ เป็นค่าที่ 2 Example Conditional Operator Value ( 5 < 0 ) ? 0 : 1 1 ( 5 > 0 ) ? 0 : 1 ( 1+3 < 3+2 ) ? 3 : 4 3 ( 1*3 != 3+2 ) ? 4 : 4 4 ICT, University of Phayao
ตัวอย่างโปรแกรม เขียนโปรแกรมปัดเศษทศนิยม ตามนัยสำคัญ รับค่าตัวเลข แสดงผลตัวเลขที่ได้ คิดนัยสำคัญ 2 ตำแหน่ง ตัวอย่าง รับค่า 12.589 แสดงผล 12.59 รับค่า 0.455 แสดงผล 0.46 รับค่า 0.445 แสดงผล 0.44 รับค่า 0.4551 แสดงผล 0.46 รับค่า 0.4455
ตัวอย่างโปรแกรม เขียนโปรแกรมหาผลบวกของเลข 4 หลัก รับค่าตัวเลข แสดงผลบวก ตัวอย่าง รับค่า 1256 แสดงผล 14 รับค่า 1000 แสดงผล 1 รับค่า 1234 แสดงผล 10