บทที่ 2 กระบวนการวิจัยและการวิเคราะห์ปัญหาการวิจัย · บทที่ 1 ความรู้เบื้องตน้เกี่ยวกบัการวิจยั
บทที่ 4 คำสั่งเงื่อนไข...
Transcript of บทที่ 4 คำสั่งเงื่อนไข...
โอเปอร์เรเตอร์และการด าเนินการต่างๆ
อ.พินันทา ฉัตรวัฒนา
ภาควิชาเทคโนโลยีวิศวกรรมอิเล็กทรอนิกส์ วิทยาลัยเทคโนโลยีอุตสาหกรรม
โอเปอร์เรเตอร์
• โอเปอร์เรเตอร์ (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)