หน่วยที่ นิพจน์ในภาษา C

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมทดสอบที่1 ทดสอบการแสดงผลข้อความ
Advertisements

ชนิดของข้อมูลในโปรแกรม Interactive C
บทที่ 2 รหัสควบคุมและการคำนวณ
บทที่ 2 รหัสควบคุมและการคำนวณ
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
ประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator (บทที่ 3)
BC320 Introduction to Computer Programming
Introduction to C Programming
ครั้งที่ 8 Function.
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
ชนิดของข้อมูลและตัวดำเนินการ
LAB # 3 Computer Programming 1
บทที่ 2 Operator and Expression
Week 6 ประกาศค่าตัวแปร.
รับและแสดงผลข้อมูล.
Lab 3: คำสั่งพื้นฐานสำหรับการรับและการแสดงผลข้อมูล
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
Lecture no. 2: Overview of C Programming
หน่วยที่ 5 ตัวดำเนินการ (Operators)
Arrays.
C Programming Lecture no. 6: Function.
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 ตัวดำเนินการ และ นิพจน์
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
จำนวนทั้งหมด ( Whole Numbers )
บทที่ 11 การเขียนโปรแกรมภาษาซี
การใช้งานเบื้องต้นของเครื่องคิดเลขทางการเงิน
บทที่ ไลบรารีฟังก์ชัน
หน่วยที่ 1 พื้นฐานภาษา C
อาร์เรย์และข้อความสตริง
ตัวแปร (variable) ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ใน หน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผล การตั้งชื่อตัวแปร ชื่อตัวแปรในภาษา.
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
ตัวดำเนินการ(Operator)
การเขียนโปรแกรมภาษาซี
Chapter 3 เครื่องหมายและการคำนวณ
ตัวแปรกับชนิดของข้อมูล
ง40208 การเขียนไดนามิกเว็บเพจ ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
นิพจน์และตัวดำเนินการ
ตัวดำเนินการในภาษาซี
การรับและพิมพ์ข้อมูลเบื้องต้น
ทบทวน กันก่อน .....กระบวนการแปลโปรแกรม
บทที่ 8 ตัวดำเนินการ และ นิพจน์
คำสั่งควบคุมขั้นตอน Flow control statements
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
คำสั่งเงื่อนไข (Condition Statement)
บทที่ 4 นิพจน์ทางคณิตศาสตร์.
ค21201 คณิตศาสตร์เพิ่มเติม 1
Overview of C Programming
กองซ้อน ยอดกองซ้อน (stack).
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
โครงสร้างภาษาซี #include <stdio.h> void main() {
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
อ. วชิระ หล่อประดิษฐ์. ตัว ดำเนินกา ร ศัพท์เฉพาะตัวอย่ าง ผลลัพธ์ ให้ a=3; b=2; Greater thana > b;True
พื้นฐานการเขียนโปรแกรมด้วย C#
บทที่ 7 เงื่อนไขในภาษาซี
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
บทที่ 5 รหัสควบคุมและ การคำนวณ C Programming C-Programming.
การกระทำทางคณิตศาสตร์
ตัวแปร และชนิดข้อมูล.
การเขียนโปรแกรม (ภาษาซี)
การรับและแสดงผลข้อมูล (Input/Output)
CHAPTER 2 Operators.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

หน่วยที่ 3 นิพจน์ในภาษา C

ภาษาซี คณิตศาสตร์ x = 2 + 3*4 + 11*7 – 8/5 x = 2 + 12 + 11*7 – 8/5 ความแตกต่างของนิพจน์ทางคณิตศาสตร์กับนิพจน์ในภาษาซี ภาษาซี คณิตศาสตร์ x = 2 + 3*4 + 11*7 – 8/5 x = 2 + 12 + 11*7 – 8/5 x = 2 + 12 + 77 - 8/5 x = 2 + 12 + 77 – 1 x = 14 + 77 – 1 x = 91 – 1 x = 90 x = 2 + 3*4 + 11*7 – 8/5 x = 2 + 12 + 77 – 1.8 x = 89.2

คุณสมบัติของนิพจน์ในภาษาซี ค่าของนิพจน์ นิพจน์ในภาษาซีจะให้ค่าออกมาค่าหนึ่งเสมอ เช่น 2 + 3*4 + 11*7 – 8/5 /* A program showing a use of expression */ #include <stdio.h> void main(void) { printf("The number is %d.", 2 + 3*4 + 11*7 - 8/5); } The number is 90.

/* A program showing the use of expression*/ #include <stdio.h> void main(void) { int x; x = 2 + 3*4 + 11*7 - 8/5; printf("Value of x is %d.", x); } Value of x is 90.

Value of the expression is 90. Value of x is 90. /* A program showing a use of expression */ #include <stdio.h> void main(void) { int x; printf("Value of the expression is %d.\n", x = 2 + 3*4 + 11*7 - 8/5); printf("Value of x is %d.", x); } Value of the expression is 90. Value of x is 90.

ค่าของนิพจน์ขึ้นอยู่กับตัวดำเนินการและตัวถูกกระทำ หากตัวถูกกระทำเป็นเลขจำนวนเต็มทั้งสองตัว จะได้ผลลัพธ์เป็นเลขจำนวนเต็ม เช่น (3*3)/4 เท่ากับ 9/4 เท่ากับ 2 3*(3/4) เท่ากับ 3*0 เท่ากับ 0 หากตัวถูกกระทำตัวใดตัวหนึ่งเป็นเลขทศนิยม จะได้ผลลัพธ์เป็นเลขทศนิยม เช่น (3*3)/4.0 เท่ากับ 9/4.0 เท่ากับ 2.25 3*(3/4.0) เท่ากับ 3*0.75 เท่ากับ 2.25

ค่าของนิพจน์แบบ จริง/เท็จ (True/False) แต่เมื่อนิพจน์นั้นเป็นการกระทำโดยใช้ตัวดำเนินการเปรียบเทียบ ผลลัพธ์ที่เป็นจริงจะให้ค่าเป็น 1 และผลลัพธ์ที่เป็นเท็จ จะให้ค่าเป็น 0 เช่น 3 > 5 เท่ากับ 0 หรือ false 6 == 8-2 เท่ากับ 1 หรือ true

ในการบวกลบในสมการนั้น จะกระทำจากซ้ายไปขวา + - * / % ในการบวกลบในสมการนั้น จะกระทำจากซ้ายไปขวา 1 2+3-4+5-6 2 5-4+5-6 3 1+5-6 4 6-6 5

การหารเลขจำนวนเต็ม ผลลัพธ์จะเป็นเลขจำนวนเต็มที่ปัดเศษทิ้ง เช่น 23 / 7 มีค่าเท่ากับ 3 เครื่องหมาย % เรียกว่าการมอดูลัส (Modulus) เป็นการหารเลขจำนวนเต็มที่ผลลัพธ์เป็นเศษของการหาร เช่น 23 % 7 มีค่าเท่ากับ 2 ( 23 หาร 7 เท่ากับ 3 เหลือเศษเท่ากับ 2 ) ในการหารเลขทศนิยม ก็จะได้ผลลัพธ์เป็นเลขทศนิยม เช่น 23.0 / 7.0 มีค่าเท่ากับ 3.825714 การหารเลขประเภทต่างกันนั้น เช่น real/int คอมไพเลอร์จะเปลี่ยน int ให้เป็น real ก่อน แล้วจึงทำการหาร ได้ผลลัพธ์เป็น real เช่น 7/2.0  7.0/2.0  3.5

ในการคูณหารและมอดูลัสในสมการนั้น จะกระทำจากซ้ายไปขวา ขั้นตอน การทำงาน 1 8 * 4 / 3 * 5 % 6 2 32 / 3 * 5 % 6 3 10 * 5 % 6 4 50 % 6 5

การใช้เครื่องหมาย +, - , *, /, % ในนิพจน์เดียวกันต้องคำนึงถึงลำดับความสำคัญดังนี้ 1 *, /, % ซ้ายไปขวา 2 +, - ขั้นตอน การทำงาน 1 7 * 5 – 24/2 + 8 2 35 – 24/2 + 8 3 35 - 12 + 8 4 23 + 8 5 31

ให้ผลลัพธ์ของสมการเป็นค่านั้นออกมาด้วย เครื่องหมาย = ให้ตัวแปรที่อยู่ทางซ้ายมือมีค่าเท่ากับค่าที่อยู่ทางขวามือ ให้ผลลัพธ์ของสมการเป็นค่านั้นออกมาด้วย ขั้นตอน การทำงาน a z y x 1 a = z = y = x = 5 - 2 a = z = y = 5 5 3 a = z = 5 4 a = 5

เครื่องหมาย = ลำดับความสำคัญน้อยกว่า +, - , *, /, % ขั้นตอน การทำงาน 1 x = 7 * 5 - 3 * 4 + 8 2 x = 35 - 3 * 4 + 8 3 x = 35 - 12 + 8 4 x = 23 + 8 5 x = 31 6 31

5 < 2 มีค่าเท่ากับ 0 (เป็นเท็จ) 5 <= 7 มีค่าเท่ากับ 1 (เป็นจริง) ตัวดำเนินการ ความหมาย > มากกว่า < น้อยกว่า >= มากกว่าหรือเท่ากับ <= น้อยกว่าหรือเท่ากับ 5 < 2 มีค่าเท่ากับ 0 (เป็นเท็จ) 5 <= 7 มีค่าเท่ากับ 1 (เป็นจริง)

= กำหนดค่า ผลลัพธ์เป็นค่าที่กำหนด ตัวดำเนินการ ความหมาย == เท่ากับ != ไม่เท่ากับ 5 != 2 มีค่าเท่ากับ 1 (เป็นจริง) 5 == 2 มีค่าเท่ากับ 0 (เป็นเท็จ) เครื่องหมายเท่ากับ = กำหนดค่า ผลลัพธ์เป็นค่าที่กำหนด == เปรียบเทียบ ผลลัพธ์เป็นจริงหรือเท็จ

&& หมายถึง AND A B A && B 0 (เท็จ) 1 (จริง) 0 < 6 && 100>50*3

|| หมายถึง OR A B A || B 0 (เท็จ) 1 (จริง) 0 < 6 || 100 > 50*3

! หมายถึง NOT A !A 0(เท็จ) 1(จริง) ! (0 < 6 || 100 > 50 *3)

+=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= x ก่อนกระทำ นิพจน์ x หลังกระทำ หมายเหตุ 10 x += 2 12 คือการทำ x = x + 2 จึงมีค่าเป็น 10 + 2 เท่ากับ 12 x -= 2 8 คือการทำ x = x -2 จึงมีค่าเป็น 10 - 2 เท่ากับ 8 x *= 2 20 คือการทำ x = x * 2 จึงมีค่าเป็น 10 * 2 เท่ากับ 20 x /= 2 5 คือการทำ x = x / 2 จึงมีค่าเป็น 10 / 2 เท่ากับ 5 x %= 2 คือการทำ x = x % 2 จึงมีค่าเป็น 10 % 2 เท่ากับ 0

จะทำให้ x มีค่าเป็น 11 ซึ่งมีความหมายเดียวกับ x = x+1 ตัวดำเนินการ ++ เรียกว่าตัวดำเนินการเพิ่มค่า (Increment) เสมือนการบวกหนึ่งเข้าไปในค่านั้น เช่น สมมติว่า x มีค่าเท่ากับ 10 เมื่อมีการกระทำ x++ หรือ ++x จะทำให้ x มีค่าเป็น 11 ซึ่งมีความหมายเดียวกับ x = x+1 ตัวดำเนินการ - - เรียกว่าตัวดำเนินการลดค่า (Decrement) เสมือนการลบหนึ่งออกจากค่านั้น เช่น สมมติว่า x มีค่าเท่ากับ 10 เมื่อมีการกระทำ x- - หรือ - -x จะทำให้ x มีค่าเป็น 9 ซึ่งมีความหมายเดียวกับ x = x-1

ลำดับความสำคัญ เครื่องหมาย ถ้ามีติดกันหลายตัว 1 ฟังค์ชั่นต่างๆ ซ้ายไปขวา 2 ++, - -, และเครื่องหมาย Unary +, -, !, ~ ขวาไปซ้าย 3 *, /, % 4 เครื่องหมายบวกลบ +, - 5 >>, << 6 >, <, <=, >= 7 ==, != 8 & 9 ^ 10 | 11 && 12 || 13 =, *=, /=, %=, +=, -=, &=, ^=, |=, <<=, >>=

นิพจน์ในวงเล็บ ( ) ขั้นตอน การทำงาน 1 2+3-4+5-6 2 5-4+5-6 3 1+5-6 4 นิพจน์ในวงเล็บ ( ) ขั้นตอน การทำงาน 1 2+3-4+5-6 2 5-4+5-6 3 1+5-6 4 6-6 5 ขั้นตอน การทำงาน 1 2+3-(4+5)-6 2 5-(4+5)-6 3 5 – 9 -6 4 -4 - 6 5 -10

ขั้นตอน การทำงาน หมายเหตุ 1 2 + 3 - ( 4 + (5 - 6)) ถูกมองเป็น 2 + 3 - K1 ซึ่งต้องทำ + ก่อน 2 5 - ( 4 + (5 - 6)) ถูกมองเป็น 5 - K1 ซึ่งต้องหาค่า K1 ก่อน จึงจะทำได้ 3 5- ( 4 + -1) ถูกมองเป็น 5 – (4+ K2) ซึ่งต้องหาค่า K2 ก่อน ซึ่งเท่ากับ 5-6 4 5 - 3 K1 มีค่าเป็น 4 + -1 เท่ากับ 3 5

การเปลี่ยนค่าของข้อมูล (type-name) ( expression ) (int) 3.25 จะเปลี่ยนค่าเป็น 3 ซึ่งเป็นชนิด int (float) 20 จะเปลี่ยนค่าเป็น 20.0 ซึ่งเป็นชนิด float

Please Enter 4 scores: 100 80 90 88  Your average score is 89. #include <stdio.h> void main(void) { int score1, score2, score3, score4, average1; float average2; printf(“Please enter 4 scores: ”); scanf(“%d %d %d %d”, &score1, &score2, &score3, &score4); average1 = (score1+score2+score3+score4)/4; printf(“Your average score is %d. ”, average1); average2 = ((float)(score1+score2+score3+score4))/4; printf(“Your average score is %0.1f. ”, average2); } Please Enter 4 scores: 100 80 90 88  Your average score is 89. Your average score is 89.8.