23
โอเปอร์เรเตอร์และการดาเนินการต่างๆ อ.พินันทา ฉัตรวัฒนา ภาควิชาเทคโนโลยีวิศวกรรมอิเล็กทรอนิกส์ วิทยาลัยเทคโนโลยีอุตสาหกรรม

บทที่ 4 คำสั่งเงื่อนไข และคำสั่งวนรอบ · การคูณ การหาร หารคิดเฉพาะเศษ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

โอเปอร์เรเตอร์และการด าเนินการต่างๆ

อ.พินันทา ฉัตรวัฒนา

ภาควิชาเทคโนโลยีวิศวกรรมอิเล็กทรอนิกส์ วิทยาลัยเทคโนโลยีอุตสาหกรรม

โอเปอร์เรเตอร์

• โอเปอร์เรเตอร์ (Operator) คือตัวด าเนินการ ซึ่งอาจเป็นตัวด าเนินการทางคณิตศาสตร์ เช่น +, -, *, /, &&, ||, <, > เป็นต้น

• โอเปอร์แรนด์ (Operand) คือตัวถูกกระท า อาจเป็นค่าคงท่ี ตัวแปร นิพจน์ หรือฟังก์ชั่น

• นิพจน์ (Expression) คือการน าเอาโอเปอร์เรเตอร์ และโอเปอร์แรนด์หลายๆ ตัวมารวมเข้าด้วยกันเป็นประโยคเดียว

เครื่องหมายคณิตศาสตร์

• ในการเขียนโปรแกรมย่อมมีการค านวณทางคณิตศาสตร์ ดังนั้นจ าเป็นที่จะต้องทราบตัวกระท าทางคณิตศาสตร์เพื่อใช้ในการเขียนโปรแกรมค านวณ

ตัวกระท าทางคณิตศาสตร์ + - * / % ++ --

ความหมาย การบวก การลบ การคูณ การหาร

หารคิดเฉพาะเศษ เพิ่มค่าขึ้น 1 ลดค่าลง 1

ตารางที่ 1 ตัวกระท าทางคณิตศาสตร์

ตัวอย่างที่ 1 โปรแกรมสูตรคูณมาตรา 4

#include <stdio.h> main() { int num=4; printf("%d*1=%d\n",num,1*num); printf("%d*2=%d\n",num,2*num); printf("%d*3=%d\n",num,3*num); printf("%d*4=%d\n",num,4*num); printf("%d*5=%d\n",num,5*num); printf("%d*6=%d\n",num,6*num); printf("%d*7=%d\n",num,7*num); printf("%d*8=%d\n",num,8*num); printf("%d*9=%d\n",num,9*num); }

ผลรันของโปรแกรม 4 * 1 =4 4 * 2 =8 4 * 3 =12 4 * 4 =16 4 * 5 =20 4 * 6 =24 4 * 7 =28 4 * 8 =32 4 * 9 =36

วิธีการคิด 1. ก าหนดมาตราสูตรคูณให้กับตัวแปร 2. น าค่าในตัวแปรมาคูณแล้วแสดงผล

ตัวอย่างที่ 2 โปรแกรมค านวณหาค่าของเลขยกก าลัง

/* Square Number Program */ #include <stdio.h> main() {float x,sx; printf("Enter Number x="); scanf("%f",&x); sx=x*x; //sx = pow(x,2) ; printf("Square x=%.2f",sx); }

วิธีการคิด 1. รอรับค่าตัวเลขที่จะน ามายกก าลัง 2. น าเลขที่ได้มายกก าลังตามสูตรเลขยก ก าลัง sx=x*x 3. แสดงผลการค านวณของเลขยกก าลัง

ผลการรันโปรแกรม Enter Number x=5 Square x=25

หมายเหตุ : การหาค่ายกก าลัง โดยใช้ Function Pow ควรท าการก าหนดชนิดข้อมูลให้เป็นทศนิยม เนื่องจากการประมวลผลบางครั้งอาจเกิดการผิดพลาดได้

ตัวอย่างที่ 3 โปรแกรมค านวณหาค่าพ้ืนท่ีของวงกลม

/* Area Circle Program */ #include <stdio.h> main( ) { float r,area; printf("Enter Radian = "); scanf("%f",&r); area=3.14*r*r; printf("Area Circle = %.2f",area); }

ผลการรันโปรแกรม Enter Radian = 2 Area Circle = 12.56

วิธีการคิด 1. รอรับค่ารัศมีของวงกลม 2. ค านวณตามสูตรพื้นที่วงกลม=3.14*r*r 3. แสดงผลการค านวณพื้นที่ของวงกลม

ตัวอย่างที่ 4 โปรแกรมค านวณหารากท่ีสอง (sqrt)

/* Sqrt Of x Program */ #include<stdio.h> #include<math.h> main( ) { float x, z; printf("Enter X = "); scanf("%f",&x); z = sqrt(x); printf(“Sqrt Of x is = %.2f",z); }

ผลการรันโปรแกรม Enter X = 20 Sqrt Of x is = 4.47

หมายเหตุ การหารากที่สอง (Function Sqrt)ต้องท าการก าหนดชนิดข้อมูลให้เป็นทศนิยม เนื่องจากผลลัพธ์สามารถปรากฎเป็นจุดทศนิยมได้

นิพจน์คณิตศาสตร์

ตัวอย่าง (2+3)*5 = 25 เอา 2 บวก 3 ได้ 5 แล้วคูณด้วย 5 ได้ 25 2+3*5 = 17 เอา 3 คูณ 5 ได้ 15 แล้วบวกด้วย 2 ได้ 17

นิพจน์คณิตศาสตร์

• กฎเกณฑ์ในการเขียนนิพจน์ – 1.ห้ามเขียนตัวแปร 2 ตัวติดกันโดยไม่มีเครือ่งหมาย เช่น ab ในภาษา C ต้อง

เขียน a * b จะเขียนเป็น ab ไม่ได้ เพราะจะถือเป็น ช่ือตัวแปรตัวเดียวช่ือ ab ไม่ใช่ค่า a คูณ b

– 2. ถ้าเขียนนิพจน์โดยมีค่าของตัวแปรหรือค่าคงท่ีต่างชนิดกันในนิพจน์ เดียวกัน ภาษา C จะเปลี่ยนข้อมูลชนิดที่มีขนาดเลก็ให้เป็นชนิดของข้อมูลที่ใหญ่ขึ้น

การเปลี่ยนชนิดตัวแปร

การเปลี่ยนชนิดตัวแปร แบ่งออกเป็น 2 กฎเกณฑ์ ดังนี้ เปลี่ยนชนิดตัวแปรโดยอัตโนมัติ (Implicit casting) ถ้าเขียนนิพจน์โดยมีค่าของตัวแปรหรือค่าคงท่ีต่างชนิดกันในนิพจน์ เดียวกัน ภาษา C จะเปลี่ยนข้อมูลชนิดที่มีขนาดเล็กให้เป็นชนิดของข้อมูลท่ีใหญ่ข้ึน

เปลี่ยนชนิดของตัวแปรโดยใช้ค าสั่ง (Explicit casting)

การเปลี่ยนชนิดตัวแปร

เปลี่ยนชนิดตัวแปรโดยอัตโนมัติ (Implicit casting)

ตัวแปรชนิดที่ 1 ตัวแปรชนิดที่ 2 ตัวแปรชนิดที่ 3

char

int

Int

Int

Int

Float

Long

double

int

long

Unsigned int

Float

Double

Double

Double

Long double

char -> int

Int -> long

Int -> unsigned int

Int -> float

Int -> double

Float -> double

Long -> double

Double -> long double

การเปลี่ยนชนิดตัวแปร

เปลี่ยนชนิดตัวแปรโดยอัตโนมัติ (Implicit casting) ตัวอย่าง

#include<stdio.h> int x=5; float y= 2.5; float z; main() { z = x+y; printf(“z = %f\n”,z); }

#include<stdio.h> int x=5; float y= 2.5; int z; main() { z = x+y; printf(“z = %d\n”,z); }

การเปลี่ยนชนิดตัวแปร

เปลี่ยนชนิดของตัวแปรโดยใช้ค าสั่ง (Explicit casting)

รูปแบบ (typecast) variable; typecast : ชนิดของตัวแปรที่ต้องการจะเปลี่ยนไปใช้ variable : ตัวแปรหรือข้อมูลที่ต้องการจะเปลีย่นชนิด

การเปลี่ยนชนิดตัวแปร

เปลี่ยนชนิดของตัวแปรโดยใช้ค าสั่ง (Explicit casting) ตัวอย่าง

#include<stdio.h> int x=35; float y= 2.5; char z = ‘C’; main() { printf(“y = %d\n”,(int)y); printf(“z = %d\n”,(int)z); printf(“%d\n”,(int)-4.246); printf(“%d\n”,(int)’A’); printf(“%f\n”,(float)x); }

เครื่องหมายเปรียบเทียบ

เครื่องหมายตรรกะ [เพิ่มเติมตัวอย่าง]

• เป็นเครื่องหมายท่ีใช้ในการเปรียบเทียบและตัดสินใจโดยการเอาเงื่อนไข ตั้งแต่ 2 เงื่อนไขมาเปรียบเทียบกัน ผลที่ได้จากการเปรียบเทียบจะได้ผลเป็น 2 กรณี เช่นเดียวกับเครื่องหมายเปรียบเทียบของลอจิกเกต ซึ่งมีเครื่องหมายคือ

ตัวกระท าทางคณิตศาสตร์ && || !

ความหมาย AND OR

NOT

ตารางที่ 2 เคร่ืองหมายตรรกะ

ค าสั่งเปรียบเทียบและท างานตามเงื่อนไข

ตัวอย่าง เครื่องหมายตรรกะ

จากโจทย ์ ก าหนดให ้int A = 2 , B = 5 , C = 2 ;

ผลลัพธ ์

A == B ผลลัพธ์ไม่จริง (0)

A == C ผลลัพธ์จริง (1)

A > B * 2 ผลลัพธ์ไม่จริง (0)

A * B <= B+B ผลลัพธ์จริง (1)

Special Assignment

• ในภาษา C ยังพิเศษกว่าภาษาอ่ืนๆ โดยมี Operators เพ่ือให้สามารถท างานได้เร็วขึ้น

n ++ มีความหมายเช่นเดียวกับ n = n + 1 n -- มีความหมายเช่นเดียวกับ n = n - 1 n + = 4 มีความหมายเช่นเดียวกับ n = n + 4 n - = 4 มีความหมายเช่นเดียวกับ n = n - 4 n * = 4 มีความหมายเช่นเดียวกับ n = n * 4

ฟังก์ชั่นมาตรฐานทางคณิตศาสตร์ (math.h)

• ในภาษา C ยังพิเศษกว่าภาษาอ่ืนๆ โดยมี Operators เพ่ือให้สามารถท างานได้เร็วขึ้น

ฟังก์ชั่นมาตรฐานทางคณิตศาสตร์ (math.h)

• ในภาษา C ยังพิเศษกว่าภาษาอ่ืนๆ โดยมี Operators เพ่ือให้สามารถท างานได้เร็วขึ้น

LAB

• ให้เขียนโปรแกรมแลกเงิน โดยป้อนจ านวนเงินเป็นจ านวนเต็ม หลังจากนั้นให้รายงานว่ามีจ านวนแบงค์ 1000 กี่ใบ แบงค์ 500 กี่ใบ แบงค์ 100, 50, 20 เหรียญ 5 และเหรียญ 1 บาทก่ีเหรียญ (Change_money.c)

จบเนื้อหาบทที่ 5 โอเปอร์เรเตอร์และการด าเนินการต่างๆ