การเขียนโปรแกรมคอมพิวเตอร์ - ผู้ปฏิบัติงาน
ตัวดำเนินการในภาษาโปรแกรมคือสัญลักษณ์ที่บอกให้คอมไพเลอร์หรือล่ามดำเนินการทางคณิตศาสตร์เชิงสัมพันธ์หรือเชิงตรรกะที่เฉพาะเจาะจงและสร้างผลลัพธ์สุดท้าย บทนี้จะอธิบายแนวคิดของoperators และจะนำคุณผ่านตัวดำเนินการทางคณิตศาสตร์และเชิงสัมพันธ์ที่สำคัญที่มีอยู่ใน C, Java และ Python
ตัวดำเนินการเลขคณิต
โปรแกรมคอมพิวเตอร์ใช้กันอย่างแพร่หลายสำหรับการคำนวณทางคณิตศาสตร์ เราสามารถเขียนโปรแกรมคอมพิวเตอร์ซึ่งสามารถคำนวณง่ายๆเช่นการบวกตัวเลขสองตัว (2 + 3) และเรายังสามารถเขียนโปรแกรมซึ่งสามารถแก้สมการที่ซับซ้อนได้เช่น P (x) = x 4 + 7x 3 - 5x + 9 หากคุณเคยเป็นนักเรียนที่ยากจนคุณต้องทราบว่าในนิพจน์แรก 2 และ 3 เป็นตัวถูกดำเนินการและ + เป็นตัวดำเนินการ มีแนวคิดที่คล้ายกันในการเขียนโปรแกรมคอมพิวเตอร์
ดูสองตัวอย่างต่อไปนี้ -
2 + 3
P(x) = x4 + 7x3 - 5x + 9.
คำสั่งทั้งสองนี้เรียกว่านิพจน์เลขคณิตในภาษาโปรแกรมและ plus, minusที่ใช้ในนิพจน์เหล่านี้เรียกว่าตัวดำเนินการทางคณิตศาสตร์และค่าที่ใช้ในนิพจน์เหล่านี้เช่น 2, 3 และ x เป็นต้นเรียกว่าตัวถูกดำเนินการ ในรูปแบบที่ง่ายที่สุดนิพจน์ดังกล่าวจะให้ผลลัพธ์ที่เป็นตัวเลข
ในทำนองเดียวกันภาษาโปรแกรมจะให้ตัวดำเนินการทางคณิตศาสตร์ต่างๆ ตารางต่อไปนี้แสดงรายการตัวดำเนินการทางคณิตศาสตร์ที่สำคัญบางตัวที่มีอยู่ในโปรแกรมภาษาซี สมมติว่าตัวแปร A ถือ 10 และตัวแปร B ถือ 20 จากนั้น -
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
+ | เพิ่มสองตัวถูกดำเนินการ | A + B จะให้ 30 |
- | ลบตัวถูกดำเนินการที่สองจากตัวแรก | A - B จะให้ -10 |
* | คูณตัวถูกดำเนินการทั้งสอง | A * B จะให้ 200 |
/ | หารตัวเศษด้วยตัวเศษ | B / A จะให้ 2 |
% | สิ่งนี้ให้ส่วนที่เหลือของการหารจำนวนเต็ม | B% A จะให้ 0 |
ต่อไปนี้เป็นตัวอย่างง่ายๆของการเขียนโปรแกรม C เพื่อทำความเข้าใจตัวดำเนินการทางคณิตศาสตร์ข้างต้น -
#include <stdio.h>
int main() {
int a, b, c;
a = 10;
b = 20;
c = a + b;
printf( "Value of c = %d\n", c);
c = a - b;
printf( "Value of c = %d\n", c);
c = a * b;
printf( "Value of c = %d\n", c);
c = b / a;
printf( "Value of c = %d\n", c);
c = b % a;
printf( "Value of c = %d\n", c);
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
ตัวดำเนินการเชิงสัมพันธ์
พิจารณาสถานการณ์ที่เราสร้างตัวแปรสองตัวและกำหนดค่าบางอย่างดังนี้ -
A = 20
B = 10
ที่นี่เห็นได้ชัดว่าตัวแปร A มีค่ามากกว่า B ดังนั้นเราต้องการความช่วยเหลือจากสัญลักษณ์บางอย่างในการเขียนนิพจน์ดังกล่าวซึ่งเรียกว่านิพจน์เชิงสัมพันธ์ ถ้าเราใช้โปรแกรมภาษาซีจะเขียนดังนี้ -
(A > B)
ที่นี่เราใช้สัญลักษณ์> และเรียกว่าตัวดำเนินการเชิงสัมพันธ์และในรูปแบบที่ง่ายที่สุดพวกเขาสร้างผลลัพธ์บูลีนซึ่งหมายความว่าผลลัพธ์จะเป็นจริงหรือเท็จ ในทำนองเดียวกันภาษาโปรแกรมจะให้ตัวดำเนินการเชิงสัมพันธ์ต่างๆ ตารางต่อไปนี้แสดงรายการตัวดำเนินการเชิงสัมพันธ์ที่สำคัญบางตัวที่มีอยู่ในโปรแกรมภาษาซี สมมติตัวแปรA ถือ 10 และตัวแปร B ถือ 20 แล้ว -
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
== | ตรวจสอบว่าค่าของตัวถูกดำเนินการสองค่าเท่ากันหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง | (A == B) ไม่เป็นความจริง |
! = | ตรวจสอบว่าค่าของตัวถูกดำเนินการสองค่าเท่ากันหรือไม่หากค่าไม่เท่ากันเงื่อนไขจะกลายเป็นจริง | (A! = B) เป็นจริง |
> | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง | (A> B) ไม่เป็นความจริง |
< | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง | (A <B) เป็นจริง |
> = | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายมากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง | (A> = B) ไม่เป็นความจริง |
<= | ตรวจสอบว่าค่าของตัวถูกดำเนินการด้านซ้ายน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการด้านขวาหรือไม่ถ้าใช่เงื่อนไขจะกลายเป็นจริง | (A <= B) เป็นจริง |
ที่นี่เราจะแสดงตัวอย่างหนึ่งของการเขียนโปรแกรม C ซึ่งใช้ประโยชน์จาก if conditional statement. แม้ว่าข้อความนี้จะถูกกล่าวถึงในอีกบทหนึ่งในภายหลัง แต่ในระยะสั้นเราใช้if statement เพื่อตรวจสอบเงื่อนไขและถ้าเงื่อนไขนั้นเป็นจริงร่างกายของ if statement จะถูกดำเนินการมิฉะนั้นร่างกายของ if statement ถูกข้ามไป
#include <stdio.h>
int main() {
int a, b;
a = 10;
b = 20;
/* Here we check whether a is equal to 10 or not */
if( a == 10 ) {
/* if a is equal to 10 then this body will be executed */
printf( "a is equal to 10\n");
}
/* Here we check whether b is equal to 10 or not */
if( b == 10 ) {
/* if b is equal to 10 then this body will be executed */
printf( "b is equal to 10\n");
}
/* Here we check if a is less b than or not */
if( a < b ) {
/* if a is less than b then this body will be executed */
printf( "a is less than b\n");
}
/* Here we check whether a and b are not equal */
if( a != b ) {
/* if a is not equal to b then this body will be executed */
printf( "a is not equal to b\n");
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
a is equal to 10
a is less than b
a is not equal to b
ตัวดำเนินการทางตรรกะ
ตัวดำเนินการทางตรรกะมีความสำคัญมากในภาษาโปรแกรมใด ๆ และช่วยให้เราตัดสินใจตามเงื่อนไขบางประการ สมมติว่าเราต้องการรวมผลลัพธ์ของสองเงื่อนไขจากนั้นตัวดำเนินการตรรกะ AND และ OR จะช่วยเราในการสร้างผลลัพธ์สุดท้าย
ตารางต่อไปนี้แสดงตัวดำเนินการทางตรรกะทั้งหมดที่ภาษา C สนับสนุน สมมติตัวแปรA ถือ 1 และตัวแปร B ถือ 0 แล้ว -
ตัวดำเนินการ | คำอธิบาย | ตัวอย่าง |
---|---|---|
&& | เรียกว่าตัวดำเนินการ Logical AND ถ้าตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์เงื่อนไขจะกลายเป็นจริง | (A && B) เป็นเท็จ |
|| | เรียกว่า Logical OR Operator หากตัวถูกดำเนินการสองตัวใดตัวหนึ่งไม่ใช่ศูนย์เงื่อนไขจะกลายเป็นจริง | (A || B) เป็นจริง |
! | เรียกว่า Logical NOT Operator ใช้เพื่อย้อนกลับสถานะตรรกะของตัวถูกดำเนินการ หากเงื่อนไขเป็นจริงตัวดำเนินการ Logical NOT จะสร้างเท็จ | ! (A && B) เป็นเรื่องจริง |
ลองใช้ตัวอย่างต่อไปนี้เพื่อทำความเข้าใจตัวดำเนินการทางตรรกะทั้งหมดที่มีในโปรแกรมภาษาซี -
#include <stdio.h>
int main() {
int a = 1;
int b = 0;
if ( a && b ) {
printf("This will never print because condition is false\n" );
}
if ( a || b ) {
printf("This will be printed print because condition is true\n" );
}
if ( !(a && b) ) {
printf("This will be printed print because condition is true\n" );
}
}
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -
This will be printed print because condition is true
This will be printed print because condition is true
ตัวดำเนินการใน Java
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Java การเขียนโปรแกรม C และ Java จัดเตรียมชุดตัวดำเนินการและประโยคเงื่อนไขที่เหมือนกันเกือบทั้งหมด โปรแกรมนี้จะสร้างตัวแปรสองตัวa และ bคล้ายกับการเขียนโปรแกรม C มากจากนั้นเรากำหนด 10 และ 20 ในตัวแปรเหล่านี้และสุดท้ายเราจะใช้ตัวดำเนินการทางคณิตศาสตร์และเชิงสัมพันธ์ที่แตกต่างกัน -
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ซึ่งจะต้องเหมือนกับผลลัพธ์ที่สร้างขึ้นจากตัวอย่างข้างต้น
public class DemoJava {
public static void main(String []args) {
int a, b, c;
a = 10;
b = 20;
c = a + b;
System.out.println("Value of c = " + c );
c = a - b;
System.out.println("Value of c = " + c );
c = a * b;
System.out.println("Value of c = " + c );
c = b / a;
System.out.println("Value of c = " + c );
c = b % a;
System.out.println("Value of c = " + c );
if( a == 10 ) {
System.out.println("a is equal to 10" );
}
}
}
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
a is equal to 10
ตัวดำเนินการใน Python
ต่อไปนี้เป็นโปรแกรมเทียบเท่าที่เขียนด้วย Python โปรแกรมนี้จะสร้างตัวแปรสองตัวa และ bและในเวลาเดียวกันให้กำหนด 10 และ 20 ในตัวแปรเหล่านั้น โชคดีที่การเขียนโปรแกรม C และภาษาโปรแกรม Python มีชุดตัวดำเนินการที่เหมือนกันเกือบทั้งหมด โปรแกรมนี้จะสร้างตัวแปรสองตัวa และ bคล้ายกับการเขียนโปรแกรม C มากจากนั้นเรากำหนด 10 และ 20 ในตัวแปรเหล่านี้และสุดท้ายเราจะใช้ตัวดำเนินการทางคณิตศาสตร์และเชิงสัมพันธ์ที่แตกต่างกัน
คุณสามารถลองรันโปรแกรมต่อไปนี้เพื่อดูผลลัพธ์ซึ่งจะต้องเหมือนกับผลลัพธ์ที่สร้างขึ้นจากตัวอย่างข้างต้น
a = 10
b = 20
c = a + b
print "Value of c = ", c
c = a - b
print "Value of c = ", c
c = a * b
print "Value of c = ", c
c = a / b
print "Value of c = ", c
c = a % b
print "Value of c = ", c
if( a == 10 ):
print "a is equal to 10"
เมื่อโปรแกรมด้านบนถูกเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -
Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 0
Value of c = 10
a is equal to 10